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 |