이 글은 부산대학교 탁성우 교수님의 컴퓨터 네트워크 강의 자료를 바탕으로 진행됩니다.

DNS란?

DNS(Domain Name System)란 무엇일까?

사람이 읽을 수 있는 Domain(ex) cse.pusan.ac.kr)을 IP주소로 변환하는 시스템이다.
IP를 그대로 웹 주소로 사용하면, 가독성도 떨어지고 외우기가 어렵기 때문에 DNS를 통해서 보통 알기 쉬운 도메인을 사용한다.

DNS의 특징

  • 계층 구조(Hierarchical)
    • 확장 가능성(Scalability)
    • 최상위에 Root DNS Server가 존재하고, 그 아래로 Node가 연결되어 있다.
  • 분산 데이터베이스(Distributed)
    • 하나의 Server에 몰아서 저장하지 않는다.
    • 도메인 계층마다 각각 다른 서버에 존재한다.
  • UDP를 통해서 진행된다.

DNS의 구성

  • DNS Resolver
  • Local DNS Server
  • Root DNS Server : DNS Server에서 가장 먼저 Query가 날아가는 서버.
    • 전 세계적으로 13개밖에 존재하지 않는다.
  • Top-Level DNS Server
    • kr, jp, cn.. 등 국가 식별자로 사용한다.
    • com, net, org, bix.. 등 일반적으로도 사용된다.
    • edu, gov, mil 등 특수한 경우에도 사용된다.
  • Second-Level DNS Server
    • 계층에서 제일 아래에 위치하는 Server이다.
    • www.google.co.kr 이 도메인이라면, co가 SLD가 되는 것이다.

DNS의 동작 원리

dns 동작

  1. Web Browser에서 Local DNS Server로 DNS Query 전송.
    • www.naver.com의 IP주소를 알려주세요!
    • Local DNS의 DNS Cache에 해당 IP주소가 있는가?
    • 없으면, 아래의 단계를 거쳐야 한다.
  2. Local DNS에서 Root DNS로 DNS Query 이어서 전송.
    • www.naver.com의 IP 주소를 알고 계신가요?
  3. Root DNS에서 Local DNS로 DNS Response 전송.
    • 저는 모르지만, .com 도메인을 관리하는 Name server의 이름과 IP를 알려드릴게요!
    • TLD(Top-Level DNS Server)에 전달을 하는 것이다.
  4. Response에서 받은 Name server의 IP로 DNS Query 전송.
    • 혹시 www.naver.com의 IP 주소를 아시나요?
  5. NS에서 Local DNS로 DNS Response 전송,
    • 저는 모르지만, naver.com 도메인을 관리하는 Name server의 이름과 IP를 알려드릴게요!
    • SLD(Second-Level DNS Server)에 전달을 하는 것이다.
  6. Response에서 받은 Name server의 IP로 DNS Query 전송.
    • 혹시 naver.com의 IP 주소를 아시나요?
  7. naver.com DNS가 Local DNS로 응답을 전송한다.
    • 네! 해당 IP는 XXX.XXX.XXX.X 입니다!
    • 이후 Local DNS의 Cache에 일정 시간동안 저장한다.

DNS는 계층(Hierarchical)적 구조를 갖고 있기 때문에, 다음과 같이 모든 계층을 거쳐 IP를 얻어낸다.