WEB #3. DNS

김상웅·2022년 5월 19일
0

[WEB]

목록 보기
3/3

WEB1_IP Address에서 하나하나의 호스트 (컴퓨터)들이 다른 호스트와 통신을 하기 위해 필요한 것이 IP주소라고 언급한 적이 있습니다.

이렇게 설명하면서 자신이 만든 웹 사이트를 IP주소/index.html 의 방식으로 다른 네트워크의 호스트가 해당 IP주소의 컴퓨터에 있는 index.html 파일에 접근하여 웹 브라우저에서 볼 수 있게 되는 것이라고 설명했었습니다.

하지만 다음과 같은 방식으로 발생하는 문제점들이 있을 수 있는데요.
1) 매번 IP주소를 기억하거나 복사를 해야돼?
2) IP를 공유하면 진짜 털릴 수도 있는 거 아니야? (보안 문제가 아예 없는 것은 아님)
3) 유동 IP에서 비롯되는 통신 오류 (어라 IP주소 바뀜? 왜 접속이 안돼?)

그러다가 1983년 Jon Postel와 Paul Mockapetris라는 분들이 DNS라는 대안을 만들게 되는데,,,

📌 DNS


Domain Name System을 일컫습니다.
IP주소를 갖고 있는 서버인 DNS server가 사용자를 쉽게 기억하고 찾을 수 있도록 도와줍니다.


1. DNS의 원리


호스트A : sangwoong.com (123.456.78.90) 이거 내 주소임!
DNS server : 접수 완료.
호스트B : 저 님 사이트 구경하고 싶은데
호스트A: ㄴㄴ 저한테 요청 안해도 됨 이제
DNS server : B님 주소 말해주면 IP 연결해드림 내가 다 기억하고 있음.

기존에는 IP주소와 도메인 주소 변경에 따라 hosts파일을 관리해야했다면, DNS server에서 변경된 내용을 관리해주기 때문에 더욱 효율적이라고 할 수 있습니다.


2. DNS 이름 구조와 등록 과정


www.naver.com.

www 호스트명으로서 서브도메인(sub domain)입니다.
naver 도메인명 (second-level domain)입니다.
.com 최상위 도메인(Top-level domain)입니다.
. 생략되어있지만 존재합니다. 루트 도메인 (Root domain)입니다.

계층구조는 root > top-level > second-level > sub 순입니다.
각 요소는 인접해있는 하위 계층 요소의 정보 (목록, IP주소 등)을 알고 있으며, 인접하지 않은 요소에 대해서는 정보를 갖고 있지 않습니다.

[등록 과정]

출처: 생활코딩_WEB2-Domain Name System-9.도메인 이름 등록 과정과 원리

등록자(Registrant)

↓ 도메인 주소와 IP주소를 넘겨줍니다.

등록대행자(Registrar) NS(Name Server)를 제공합니다. 도메인 주소 IP정보를 갖습니다.

↓ 도메인 주소의 NS서버를 넘겨줍니다.

등록소(Registry) Top-level 도메인을 관리하고 도메인 NS 정보를 갖습니다.

↓ Top-level 도메인 NS서버를 넘겨줍니다.

ICANN Root 도메인을 관리합니다. Top-level 도메인 정보를 갖습니다.


[도메인 접근 과정]

출처: 생활코딩_WEB2-Domain Name System-9.도메인 이름 등록 과정과 원리

하단 부분의 노트븍 사용자 host가 example.com이라는 도메인에 접속을 요청하면 다음과 같은 과정을 거칩니다.

host가 인터넷을 연결하면서 자동적으로 생성되는 DNS server를 통해 example.com 도메인 주소를 root도메인부터 하위 요소로 접근합니다.

  1. "." = root NS에 접근하여 top-level 정보를 제공합니다.
  2. ".com" = top-level NS에 접근하여 NS 정보를 제공합니다.
  3. exmaple = name server에 접근하여 IP정보를 제공합니다.
  4. IP정보를 얻은 host의 DNS server는 해당 IP주소로 접속을 시도합니다.

📌 Summary & References


도메인 등록에 대한 영상도 있지만,,, 실제로 개인 서비스를 하게 된다면 도메인을 구입하여 안정적으로 사용하는 것이 나은 것 같습니다.

그게 아니라면 개발자로서 열심히 회사 서버를 유지해주는 수밖에.

좀 더 공부해보고 도메인도 실제로 받아서 사용해보고 난 이후에 업데이트를 해야겠습니다.

[참고자료]

생활코딩_WEB2-Domain Name System

profile
누구나 이해할 수 있도록

0개의 댓글