Domain Name System

Oh Joon·2020년 12월 4일
0

Roadmap Internet

목록 보기
4/6
post-thumbnail

Domain name

간단하게 넓은 의미로는 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미한다.

호스트 컴퓨터 이름, 소속기관 이름, 소속기관의 종류, 소속 국가명 순으로 구성 되며, 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미한다.


도메인 이름의 구조

Root / Top-level / Second-level / sub

도메인에 있는 각각의 부분들을 담당하는 독자적인 DNS서버 컴퓨터들이 존재한다. 전담하는 파트가 다르다.

Root 도메인을 담당하는 서버는 하위 Top-level 도메인을 담당하는 서버들의 목록을 알고 있어야 한다. Top-level 도메일을 담당하는 서버는 Second-level 도메일을 담당하는 서버들의 목록을 알고 있다. 즉, 상위가 하위를 알고 있어야 한다. 하지만 Root는 Second-level의 목록을 알지 못한다. 직속(?) 하위파트만 알고 있으면 된다.


DNS 원리

  • DNS란?
    우리가 인터넷을 편리하게 쓰게 해주는 것으로, 영문/한글 주소를 IP 네트워크에서 찾아갈 수 있는 IP로 변환해 준다.

도메인 이름과 IP 주소를 서로 변환하는 역할을 한다.

사용자는 먼저 도메인 이름을 통해 웹사이트에 접속 요청을 하고 DNS 서버에서 해당 도메인 이름에 연결된 IP 주소로 응답을 보내고 다시 사용자 컴퓨터는 해당 IP 주소로 데이터 요청을 하고 실제 데이터 처리를 하는 서버에서 데이터를 응답 받게 된다.

순서에 따라 예시를 들어 설명

  1. PC 브라우저에서 www.naver.com을 입력합니다. 그러면 PC는 미리 설정되어 있는 DNS에게 "www.naver.com이라는 hostname"에 대한 IP 주소를 물어봅니다.

  2. Local DNS에는 "www.naver.com에 대한 IP 주소"가 있을 수도 없을 수도 있습니다. 만약 있다면 Local DNS가 바로 PC에 IP 주소를 주고 끝나지만 본 설명에서는 Local DNS에 "www.naver.com에 대한 IP 주소"가 없다고 가정합니다.

  3. Local DNS는 이제 "www.naver.com에 대한 IP 주소"를 찾아내기 위해 다른 DNS 서버들과 통신(DNS 메시지)을 시작합니다. 먼저 Root DNS 서버에게 "너 혹시 www.naver.com에 대한 IP 주소 아니?"라고 물어봅니다. 이를 위해 각 Local DNS 서버에는 Root DNS 서버의 정보 (IP 주소)가 미리 설정되어 있어야 합니다.

  4. Root DNS 서버는 "www.naver.com의 IP 주소"를 모릅니다. 그래서 Local DNS 서버에게 "난 www.naver.com에 대한 IP 주소 몰라. 나 말고 내가 알려주는 다른 DNS 서버에게 물어봐~"라고 응답을 합니다.(이 다른 DNS 서버는 "com 도메인"을 관리하는 DNS 서버입니다.)

  5. 이제 Local DNS 서버는 "com 도메인을 관리하는 DNS 서버"에게 다시 "너 혹시 www.naver.com에 대한 IP 주소 아니?"라고 물어봅니다.

  6. 역시 "com 도메인을 관리하는 DNS 서버"에도 해당 정보가 없습니다. 그래서 이 DNS 서버는 Local DNS 서버에게 "난 www.naver.com에 대한 IP 주소 몰라. 나 말고 내가 알려주는 다른 DNS 서버에게 물어봐~"라고 응답을 합니다. (이 다른 DNS 서버는 "naver.com 도메인"을 관리하는 DNS 서버입니다.)

  7. 이제 Local DNS 서버는 "naver.com 도메인을 관리하는 DNS 서버"에게 다시 "너 혹시 www.naver.com에 대한 IP 주소 있니?"라고 물어봅니다.

  8. "naver.com 도메인을 관리하는 DNS 서버"에는 "www.naver.com 호스트네임에 대한 IP 주소"가 있습니다. 그래서 Local DNS 서버에게 "응! www.naver.com에 대한 IP 주소는 222.122.195.6이야~"라고 응답을 해 줍니다.

  9. 이를 수신한 Local DNS는 www.naver.com에 대한 IP 주소를 캐싱을 하고(이후 다른 넘이 물어보면 바로 응답을 줄 수 있도록) 그 IP 주소 정보를 단말(PC)에 전달해 줍니다.

Local DNS 서버가 여러 DNS 서버를 차례대로 (Root DNS 서버 -> com DNS 서버 -> naver.com DNS 서버) 물어봐서 그 답을 찾는 과정을 Recursive Query라고 부릅니다.


참조
https://na27.tistory.com/149
https://opentutorials.org/course/3276
https://ijbgo.tistory.com/27
https://www.netmanias.com/ko/post/blog/5353/dns/dns-basic-operation

profile
Front-end developer

0개의 댓글