네트워크

11. Name Resolution in Practice

YJH3968 2021. 7. 4. 16:31
728x90

1. Resource Record Type

  • DNS는 여러 resource record type으로 작동한다. 이로 인해 여러 종류의 DNS 해석이 발생한다.
  • A record
    • domain name을 IPv4 IP 주소로 가리키기 위해 사용된다.
    • 이전까지 다루었던 내용은 DNS resolver가 domain name에 대한 A record를 요청한다고 가정한 결과이다.
    • 보통 하나의 A record는 하나의 domain name으로 구성되지만, 하나의 domain name이 여러 A record를 가질 수 있다.
    • 이는 여러 IP를 통해 트래픽을 분산시키기 위해 사용하는 DNS round robin이라는 기술로 가능하다. round robin은 순서대로 목록 내 항목을 하나씩 반복한다.
    • ex) Microsoft.com domain의 authoritative name server에서 www.microsoft.com에 대해 4개의 A record를 구성해서, DNS resolver가 www.microsoft.com의 조회를 수행하면 4개의 IP가 모두 먼저 구성된 순서대로 반환한다.
  • Quad A record
    • A record와 유사하지만 IPv4 주소 대신 IPv6 주소를 반환한다.
  • CNAME record
    • 하나의 domain에서 다른 domain으로 트래픽을 redirect하는데 사용한다.
    • ex) Microsoft가 웹 서버를 www.microsoft.com에서 운영하는데, 웹 브라우저에서 microsoft.com을 입력해도 적절히 redirect되길 원할 때, www.microsoft.com으로 해석하는 microsoft.com에 대한 CNAME record를 구성한다.
    • CNAME은 한 곳에서 한 server의 표준 IP 주소만 바꾸면 되기 때문에 매우 유용하다. 
  • MX record
    • MX는 mail exchange를 의미하고 적절한 server에 이메일을 보내기 위해 사용한다.  
    • 많은 기업이 웹과 메일 서버를 다른 IP를 가진 다른 기계에서 운영하는데, MX record는 이메일이 기업의 메일 서버에 가도록 보장한다.
  • SRV record
    • service record로 다양한 특정 서비스의 위치를 정의하는데 사용한다.
    • ex) CalDAV는 달력과 계획 서비스의 record를 반환하기 위해 사용한다.
  • TXT record
    • TXT는 text를 의미하고 사람이 쓰는 domain name을 텍스트와 연관짓기 위해 사용한다.
    • 네트워크의 특성에 대해 알기 위해 읽을 수 있는 노트나 메세지를 남길 수 있다.
    • 그러나 인터넷이 점점 복잡해짐에 따라 text record는 다른 컴퓨터에게 추가 데이터를 전송하기 위해 사용한다.
    • text record가 자유로운 형식을 가지고 있기 때문에, 이를 DNS와 같은 시스템으로 통신할 목적이 아닌 데이터를 통신하기 위해 사용한다.
  • NS or SOA record
    • DNS zone에 대한 권한 정보를 정의하기 위해 사용한다.

2. Anatomy of a Domain Name

  • domain name은 크게 세 부분으로 나눌 수 있다.
  • TLD
    • domain name의 마지막 부분 ex) www.google.com에서 com
    • 원래 정의된 TLD는 한정적이었지만 요즘은 TLD의 수가 늘어나고 있다.
    • 가장 흔한 TLD로는 .com, .net, .edu 등이 있다. 국가를 나타내는 TLD도 있다. .de는 독일을, .cn은 중국을 나타낸다.
    • TLD에 대한 관리와 정의는 ICANN(Internet Corporation for Assigned Names and Numbers)가 맡고 있다. ICANN은 IANA의 자매 기업으로 글로벌 IP 공간과 DNS 시스템을 정의하고 관리한다.
  • domain
    • 보통 domain name의 두 번째 부분을 말한다. ex) www.google.com에서 google
    • domain은 TLD name server에서 authoritative name server로 제어가 이동하는 위치를 구분하는데 사용한다.
    • 이는 보통 독립된 단체나 ICANN 외부의 누군가의 제어 하에 있다.
    • domain은 어느 개인이나 기업이 등록하고 선택해도 되지만 사전에 정의된 TLD 중 하나로 끝나야 한다.
  • subdomain
    • www.google.com에서 www 부분에 해당하고, 하나의 host에만 할당된 경우 host name을 지칭하기도 한다. 
  • 위 세 부분을 모두 모으면 fully qualified domain name, 즉 FQDN이 된다.
  • registrar에 domain을 공식적으로 등록하는 것은 비용이 들지만 subdomain은 등록된 domain을 제어하는 누구나 자유롭게 정하고 할당할 수 있다.
    * registrar : 등록되지 않은 domain name을 판매하기로 ICANN와 계약한 회사를 말한다.
  • 여러 개의 subdomain name을 갖는 것이 가능하다. DNS는 기술적으로 하나의 FQDN에 127단계의 domain까지 지원한다.
  • 각 개별 section은 63개의 character까지 가질 수 있고 FQDN은 255개의 character까지 가질 수 있다.

3. DNS Zones

  • root name server는 root zone을, TLD name server는 특정 TLD를 포함하는 zone을, authoritative name server는 그 아래 특정 DNS zone을 담당한다.
  • 사실 root(TLD) name server는 authoritative name server이지만 권한이 있는 zone의 특별한 경우일 뿐이다.
  • zone은 중첩되면 안 된다.
  • ex) .com TLD에 대한 TLD name server의 관리 권한은 google.com domain을 포함해선 안되고, google.com을 담당하는 authoritative server에서 끝나야 한다.
  • DNS zone은 domain의 여러 계층에서 제어를 좀더 쉽게 해준다.
  • 하나의 domain에 resource record가 늘어날 때 이를 여러 개의 zone으로 분할한다.
  • ex) domain largecompany.com을 가진 기업이 LA, 파리, 상하이에 사무실을 가지고 있고 각 사무실에 200명이 개인 컴퓨터를 가지고 있다고 할 때 총 600개의 A record가 발생한다. 이때 이를 분할해 각 사무실을 하나의 zone으로 묶어 la.largecompany.com, pa.largecompany.com, sh.largecompany.com을 subdomain으로 하고, 각 subdomain이 DNS zone을 가지도록 할 수 있다. 이제 총 4개의 authoritative name server가 setup에 필요하다. 하나는 largecompany.com, 나머지 3개는 각 subdomain에 필요하다.
  • Zone은 zone file로 구성되는데, zone file은 특정 zone에 대한 모든 resource record을 선언하는 구성 파일이다. zone file은 SOA(Start of Authority) resource record 선언을 포함해야 한다.
  • SOA record는 zone과 이에 대한 권한이 있는 name server의 이름을 선언한다.
  • SOA와 함께, NS record도 찾을 수 있는데, 이는 이 zone을 담당하는 다른 name server를 나타낸다.
    지금까지 zone을 담당하는 서버를 개별적으로 다루었지만, root, TLD 또는 domain level에서는 FQDN과 IP 주소를 포함해 여러 개의 물리적 서버가 있을 수 있다.
  • 실제로 여러 서버를 가지고 있는 경우는 흔한데, 이는 하나의 서버가 문제가 생길 경우 다른 서버가 DNS 트래픽을 담당하도록 해야 하기 때문이다.
  • SOA와 NS record 이외에도 다른 resource record type을 찾을 수도 있다.
  • subdomain이 여러 계층을 가질 수 있는 것처럼 zone 역시 이런 방식으로 구성할 수 있다.
  • reverse lookup zone file : DNS resolver가 IP를 요청하고, 그와 관련된 FQDN을 받게 한다.
    이는 zone file과 유사하지만 A와 quad A record 대신 이름을 IP로 해석하고 pointer resource record 선언을 찾는다.
  • PTR : Pointer Record로 IP를 이름으로 해석한다.
728x90

'네트워크' 카테고리의 다른 글

13. NAT  (0) 2021.07.05
12. DHCP  (0) 2021.07.04
10. Name Resolution  (0) 2021.07.04
9. Application Layer & 전체 layer의 동작 방식  (0) 2021.07.02
8. Transport Layer  (0) 2021.07.01