혼자 정리

[네트워크이론] 2.4 DNS 본문

네트워크

[네트워크이론] 2.4 DNS

tbonelee 2023. 12. 30. 00:15

(Computer Networking a top-down Approach 7th 내용입니다)

Domain Name System

  • distributed database implemented in hierarchy of many name servers
  • 애플리케이션 계층 프로토콜 : 호스트, DNS 서버들이 name을 resolve하기 위해 통신
    • 애플리케이션 계층 프로토콜로 구현된 코어 인터넷 기능
    • 네트워크 가장자리의 complexity

      DNS services

  • hostname-to-IP-address translation
  • host aliasing
    • canonical names(정식 네임), alias names
  • mail server aliasing
  • load distribution

분산, 계층 구조

  • Root / Top Level Domain(TLD) / Authoritative
  • ex)
    • 클라이언트가 www.amazon.com 의 IP 주소를 알고 싶다면..
      • Root 서버에 .com DNS 서버를 쿼리
      • .com DNS 서버에 amazon.com DNS 서버를 쿼리
      • amazon.com DNS 서버에 www.amazon.com IP 주소를 쿼리

        Root 네임 서버

  • official, contact-of-last-resort by name servers that can not resolve name

    TLD 서버

  • .com, .org, .net, .edu, .aero, .jobs, .museums 와 모든 top-level 국가 도메인(ex. .cn, .uk, .fr, .ca, .jp)를 담당

    Authoritative DNS 서버

  • 책임 하의 hostname을 IP로 맵핑하는 정보를 제공하는 서버
  • 기관 또는 서비스 프로바이더에 의해 유지됨

Local DNS name servers

  • 호스트가 DNS 쿼리를 날리면 local DNS 서버로 보내짐
    • Local DNS 서버는 :
      • 캐시에 있는 정보를 찾아서 응답하거나
      • resolution을 위해 DNS 계층에 request를 날린다
    • 각 ISP는 local DNS name 서버를 갖는다.
      • 관련 커맨드 :
        • MacOS : scutil --dns
        • Windows: ipconfig /all
  • Local DNS 서버는 계층에 엄격하게 속하지 않는다

DNS name resolution

Iterative query

  • 접촉한 서버가 다음 접촉할 서버 정보를 알려줌
  • "내가 모르니 얘네한테 물어봐"
  • ex) 'local -> root' & 'local -> TLD' & 'local -> authoritative DNS server'

    Recursive query

  • 접촉한 네임 서버에서 name resoltuion의 짐을 지게 하는 것
  • 상위 계층에 heavy load
  • ex) 'local -> root -> TLD -> authoritative'

Caching DNS Information

  • DNS 서버는 알게 된 네임 정보는 캐시
    • TTL 후에 만료
    • TLD 서버는 보통 로컬 네임 서버에 캐시됨
  • named host가 IP 주소를 변경한다면 모든 TTL이 만료되기 전까지는 인터넷 전체에 알려지지 않을 수 있다.

DNS records

  • DNS는 Resource Records(RR)을 저장한 분산 데이터베이스
  • RR format : (name, value, type, ttl)

    type=A

  • name은 hostname
  • value는 IP 주소

    type=NS

  • name은 도메인 (ex. foo.com)
  • value는 해당 도메인의 authoritative 네임 서버 hostname

    type=CNAME

  • name은 어떤 "canonical(정식)" name에 대한 alias
    • ex) www.ibm.com은 실제로는 servereast.backup2.ibm.com
  • value는 canonical name

    type=MX

  • valuename과 연관된 SMTP 메일 서버의 네임

DNS 프로토콜 메시지

  • DNS 프로토콜 메시지는 query 메시지와 reply 메시지가 있고, 둘의 포맷은 동일