Software Courses/Network

Application : DNS

김 정 환 2020. 12. 30. 16:57
반응형
본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 Pearson/Addison Wesley에서 출판한 Computer networking : a top-down approach입니다.

 

 

 

DNS

    - Domain Name System

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

    - 역할 : Domain Name과 IP 주소를 연결. 마치 전화번호부에서 이름으로 전화번호를 찾는 것과 동일

    - 예시

        * Name : Domain name

        * Value : IP address

        * Type : 어떻게 기록할 것인지 (밑에서 설명)

        * TTL : 만료 기간을 기록하여 만료가 끝나면 폐기. 그래서 DNS 데이터의 일관성 유지

Name Value Type TTL
www.naver.com 125.209.222.142 ... ...
www.google.com 216.58.193.78 ... ...

 

    - 전송계층에서 UDP 사용

        * DNS의 메시지는 host name, IP address 등으로 구성되기 때문에 굉장히 작다. 따라서 유실될 확률이 적다. 유실되더라도 빠르게 재요청을 하면 된다.

        * HTTP 이전에 사용하기 때문에 빨라야 한다. 사용자가 원하는 것은 HTTP로 전송되는데, DNS에서 느려지면 체감상 사용하기 굉장히 불편하다. 마치, 친구에게 5분 전화 통화를 하기 위해서 전화번호부를 2분 뒤적이는 것과 유사하다.

 

 

DNS 구조

1) 간단한 구조

    - 하나의 List를 만들어서 어느 서버에 놓고 사용

Name Value Type TTL
... ... ... ...
... ... ... ...
... ... ... ...

 

    - 문제

        * 저장하고 있는 서버에 문제가 생기면 IP 주소를 찾을 수 없음

        * 항목의 개수는 헤아릴 수 없을 정도로 많을 것이기 때문에 탐색 속도가 느림

 

 

 

2) 트리 구조

    - 규모가 거대하므로 분산시켜서 계층화

    - 계층화에 따른 각 서버의 역할

        * TLD (Top Level Domain) server

            + .com, .org, .edu 등과 같은 최상위 도메인을 관리하는 서버

 

        * Authoritative DNS server

            + 기관이 DNS server를 운영하여 기관 내의 DNS 관리

            + 예시 : 어느 대학교 Authoritative DNS server에는 대학교 내의 병원, 도서관 DNS 관리

 

        * Local DNS server

            + Local에 DNS 정보를 저장하여 사용

            + Proxy server와 비슷한 역할

 

 

    - 계층화에 따른 DNS record 필요

        * DNS record

Name Value Type TTL

            + Type = A 일 때

                ~ Name = host name

                ~ Value = IP address

 

            + Type = NS 일 때

                ~ 주어진 호스트에 대한 공식적인 이름 서버를 알려줌

                ~ Name : domain name (e.g. www.naver.com). 서버

                ~ Value : host name

 

        * 계층에 적용

            + Root DNS server를 보면, .edu server에 있는 호스트 dns.edu의 IP address는 2.2.2.2

            + 이하 과정 그림에 설명

 

 

 

 

동작

    - 상황 : cis.poly.com 호스트는 gias.cs.umass.edu의 IP 주소를 얻고 싶은 상황

 

    - 1. local DSN server에 gias.cs.umass.edu의 IP주소가 있는지 요청

    - 2. local DNS server에 없어서 root DNS server에 요청

    - 3. root DSN server에 없는데 요청 정보에 대해 아는 server IP주소를 알려줌

    - 4. TLD(.edu) server에 와서 요청

    - 5. 어디에 IP 주소로 가면 알 수 있다고 알려줌

    - 6. authoritative DNS server에 와서 요청

    - 7. 드디어 찾고자 하는 IP 주소 획득

    - 8. IP 주소 가져옴

 

 

 

 

 

 

 

 

 

반응형

'Software Courses > Network' 카테고리의 다른 글

Transport : Multiplexing, Demultiplexing  (0) 2020.12.31
Application : Socket programming  (0) 2020.12.31
Application : Proxy server  (0) 2020.12.30
Application : HTTP  (0) 2020.12.29
Application layer : 개요  (0) 2020.12.29