IT/Network

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.2 Overview of How DNS Works

wookiist 2018. 1. 10. 16:12

2.4.2 Overview of How DNS Works

가령 사용자의 host에서 동작하는 웹 브라우저나 메일 앱이 hostname을 IP address로 변환할 필요가 있다고 가정하자. 이 애플리케이션은 변환되어야 하는 hostname을 담아 client side의 DNS를 호출할 것이다. 호출된 사용자의 host에 위치한 DNS는 네트워크로 query message를 보낼 것이다. 모든 DNS query와 reply message는 port 53을 통해 UDP datagram이 되어 전송된다. 수 ms에서 sec의 시간이 흐른 잠시 후, 사용자의 host에 위치한 DNS는 가장 바람직한 mapping을 DNS reply message를 통해 받는다. 그리고 해당 mapping을 자신을 호출한 애플리케이션으로 리턴한다.

가장 기본적인 DNS 구조는 모든 mapping 정보를 가진 single DNS server일 것이다. 그러나 엄청나게 많은 수의 host가 존재하는 오늘날의 인터넷에는 부적합한 디자인이다. 다음과 같은 문제점이 존재한다.

A single point of failure. DNS에 문제가 생기면, 인터넷도 그러할 것이다.
Traffic volume. 단일 DNS 서버로는 그 많은 host의 DNS queries를 모두 처리할 수 없다.
Distant centralized database. 단일 DNS 서버로부터 먼 지역의 사용자는 그만큼 지연시간도 커진다.
Maintenance. 유지보수가 어렵다. 정비를 위해 잠깐이라도 DNS 서버를 중지하는 경우, 인터넷 망은 마비된다.

이렇게 a centralized database in a single DNS server는 간단히 말해, doesn't scale 하다.

A Distributed, Hierarchical Database

규모 (scale)의 문제를 해결하기 위해 DNS는 대단히 많은 서버를 이용하며, 각 서버는 계층적인 방법으로 조직되어 있고, 전세계적으로 분산되어 있다. 그 어떤 DNS server도 모든 mapping을 가지고 있지는 않다. 대신, DNS server 전체가 mapping을 갖도록 분산되었다.

DNS는 크게 세 클래스의 DNS server로 나눠진다. - root DNS servers, top-level domain (TLD) DNS servers, authoritative DNS servers.

이를 잘 이해하기 위해 DNS client가 www.amazon.com 의 IP address를 알아내려 한다고 가정하자.

Client는 root server에 가장 먼저 연락한다. root server는 com TLD server의 IP address를 알려준다. 다시 Client는 com TLD server에 연락하여, amazon.com의 authoritative DNS server의 IP address를 알려준다.

Root DNS servers. 전세계에는 400여 대가 넘는 root name server가 흩어져 있다. root name server는 13 개의 각기 다른 조직에 의해 관리 된다.
Top-level domain (TLD) servers. 각 top-level domain (com, org, net, edu, gov ...) 과 country top-level domain (kr, fr, ca, uk ...)에는 TLD server (또는 서버 클러스터)가 있다.
Authoritative DNS servers. 인터넷에서 공개된 호스트(웹 서버)를 가진 모든 조직들은 반드시 공개적으로 접근이 가능한 hostname과 IP address를 연결하는 DNS records를 제공해야 한다.

DNS 서버들 사이의 상호작용은 다음 그림과 같이 이루어진다.

728x90
반응형