DNS 서버에게 IP 주소를 문의할 때, 가장 가까이에 있는 DNS 서버에게 요청하면 된다. 그러면 왜 어떤 DNS 서버를 선택하더라도 동일한 결과를 응답받을 수 있는 것일까?

1. DNS 서버의 기본 동작

DNS 서버의 기본 동작은 클라이언트에서 조회 메시지를 받고 조회의 내용에 응답하는 형태로 정보를 회답하는 일이다. DNS 서버로 보내는 조회 메시지에는 다음과 같은 정보가 포함되어 있다.

9CA949A9-7CD8-4E8F-9DD8-36AD0386200A.jpeg

예를 들어, 표의 첫번째 칸에 있는 정보를 찾으려 한다고 가정해보자. 클라이언트는 다음의 정보를 포함한 조회 메시지를 DNS 서버에 보낸다.

그러면 DNS 서버는 등록된 정보를 찾아서 이름, 클래스, 타입의 세 가지가 일치하는 것을 찾는다. 표에서 세 가지 정보가 모두 일치하는 것을 찾아 응답으로 192.0.2.226 정보를 클라이언트에게 회답한다.

표의 두번째 칸에 있는 정보는 메일 타입의 예시이다. 예를 들어 [email protected] 이라는 메일 주소로 정보를 보내기 위해 IP 를 찾는다 가정하자. 클라이언트의 조회 메시지는 다음과 같다.

그러면 DNS 서버는 10 과 mail.cyber.co.kr 이라는 두 개의 항목에 회답한다. 타입이 MX 인 경우에는 메일 서버의 우선 순위와 메일 서버의 이름이라는 두 항목이 등록되어 있기 때문이다. 또한 MX 의 경우에는 회답뿐만 아니라 mail.cyber.co.kr 이라는 메일 서버의 IP 주소도 함께 회답한다. 이 서버의 IP 주소는 세번째 칸에 표시되어 있다. 그럼 192.0.2.227 을 찾아 메일 서버의 IP 주소로 회답할 수 있게 된다.

이와 같이 이름과 타입에 따라 조사하는 정보를 지정하고, 그것에 따라 해당하는 것을 찾아 클라이언트에 회답하는 것이 DNS 서버의 기본 동작이다. DNS 서버의 동작은 조회 메시지 속의 이름과 타입에 해당하는 정보를 찾아내어 회답한다는 단순한 원리지만, 타입을 구분해서 사용해야 하므로 다양한 정보를 취급할 수 있다.

2. 도메인의 계층

전세계적으로 컴퓨터의 개수는 측정할 수 없을 정도로 많다. 많은 개수의 도메인 정보를 하나의 DNS 에서 관리하기에는 어렵다. 그래서 정보를 분산시켜 다수의 DNS 서버에 등록하고, 다수의 DNS 서버가 연대하여 어디에 정보가 등록되어 있는지를 찾아내는 구조를 사용한다.