Computer Science/Computer Network

[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.4 The Domain Name System

y-seo 2023. 11. 2. 21:07

 

 
 

Cahpter02. Application Layer

 

 
 

DNS : Domain Name Server

  • 많은 DNS server들의 계층 구조로 구현된 분산된 DB
  • application layer protocol : host가 통신하여 이름을 확인
  • DNS service 목록
    • hostname ↔ IP 주소 변환
    • host aliasing(별칭) : canonical(실제이름) 따로 존재
    • mail server aliasing
    • load distribution : 서버가 많을 때 골고루 서버 이름 부여, 중복 웹 서버의 경우 여러 IP 주소가 하나의 정식 호스트 이름과 연관 → DNS가 이 IP 주소 집합을 가짐
  • centralize가 아닌 이유
    • single point of failure이 있을 수 있어서 → 서버가 1대이면 다운되었을 때 서비스 불가
    • traffic volume → 서버가 1대이면 traffic 과다
    • distant centralized database → 서버가 1대이면 멀리서 오는 것은 delay 大
    • maintenance → 서버가 1대이면 관리 어려움
    • 위 이유들로 centralize는 확장성 부족

 

 
 

DNS : root name server

  • 마지막으로 물어보려고 하는 server
  • Internet function에서 엄청나게 중요하다
    • DNSSEC : 보안 제공 (인증과 데이터 무결성)
  • ICANN : root DNS domain을 관리하는 곳
  • 13개의 logical root name server들이 있다

 

 
 

TLD : authoritative servers

  • Top-Level Domain servers
    • educause는 .edu TLD에 대한 TLD 서버 담당
    • .cm .net TLD에 대한 authoritative registry
  • registry : 각각의 TLD를 관리하는 기관
  • registrar : 도메인 등록대행업체
  • Authoritative DNS servers
    • 이곳에서 정보를 얻는다
    • 호스트 이름을 IP 주소로 매핑하는 공개적인 DNS record를 제공하는 기관

 

 
 

Local DNS name servers

  • 가장 먼저 물어봐야 할 곳
  • 서버들의 계층 구조에 엄격하게 속하지는 않지만 DNS 구조의 중심에 있다
  • 각각의 ISP들이 하나씩 가지고 있다
  • host가 DNS query를 만들면 query는 local DNS server로 보내진다
    • 있으면 → 최근 name-to-address 변환 쌍의 local cache를 가진다 (최신이 아닐 수도)
    • 없으면 → proxy 역할을 수행하고 query를 계층 구조로 전달한다

 

 
 

DNS name solution : iterated query

  • DNS 동작 방법 중 하나
  • "잘 모르겠는데 000 한테 가면 돼~~~" 느낌

 

 
 

DNS name resolution : recursive query

  • DNS 동작방법 중 하나
  • "내가 물어보고 올게 ㄱㄷㄱㄷ~~~"의 느낌
  • contacted server가 알아서 해줌

 

 
 

Caching, Updating DNS Records

  • name server가 mapping을 학습하면 cache가 매핑된다
  • TTL만큼 cache를 가진다 이후 사라짐
  • root name server는 보호 되어야 해서 TTL server로 간다
  • cache는 예전 값일 수도 있다
    • name host가 IP 주소를 변경하는 경우 모든 TTL이 만료될 때까지 Internet-wide에서 알 수 없다
  • RFC 2136 : 내용이 바뀌면 notify하자 하는 것 → 내 cache값이 update 된다

 

 
 

DNS records

  • DNS : resource record들을 저장하는 분산 DB
  • resource record = RR
  • RR format : (name, value, type, ttl) → 4개의 field로 구성
  • type = A
    • name이 hostname이 된다
    • value가 IP address가 된다
    • versiont 4를 나타낸다
  • type = CNAME
    • name이 alias name이 된다
    • value가 canonical name이 된다
  • type = NS
    • NS = name server
    • name이 도메인이 된다
    • value가 이 도메인의 authoritative name server의 hostname이 된다
  • type = MX
    • name이 도메인이 된다
    • value가 name과 연관된 mailserver의 이름이 된다
  • domain : sookmyung.ac.kr
  • hostname : www.

 

 
 

DNS protocol messages

  • DNS query와 reply msg는 같은 format을 가진다

 

 
 

DNS security

  • DDos attacks
    • 다량의 패킷을 각 DNS root server로 보내어 정상적인 기능을 불가능하게 하는 공격
  • Redirect attacks
    • main-in-middle : DNS query 중간에서 채가기, 가장 알아채기 어렵다
    • DNS poisoning : 가로채고 다른 정보를 준다
  • 방지를 위해 DNSSEC 을 사용한다
  • Local name server가 root name server에 먼저 접속하게 되면 노출되기 쉬워진다. 따라서 대부분의 정보를 cache로 local name server가 가진다. 그러나 TLD가 위험해진다.