DNS 서버의 기본 동작은 클라이언트에서 조회 메시지를 받고 조회의 내용에 응답하는 형태로 정보를 회답하는 일입니다. 그렇다면 조회 메세지에 포함된 정보는 무엇일까요? 그리고 DNS를 통해 IP주소를 어떻게 확인할 수 있을까요?
조회 메시지에 포함된 정보
(a) 이름
서버나 메일 배송 목적지(메일 주소에서 @뒷부분의 이름)와 같은 이름입니다.
(b) 클래스
DNS의 구조를 고안했을 때 인터넷 이외에도 네트워크에서의 이용까지 검토하여 이것을 식별하기 위해 클래스라는 정보를 준비합니다. 그러나 지금은 인터넷 이외의 네트워크가 소멸되어서 클래스는 항상 인터넷을 나타내는 ‘IN’이 됩니다.
(c) 타입
이름에 어떤 타입(종류)의 정보가 지원되는지를 나타냅니다. 예를 들어 타입이 A이면 이름에 IP 주소가 지원되는 것을 나타내며, MX이면 이름에 메일 배송 목적지가 지원된다는 것을 나타냅니다. 또한 이 타입에 따라 클라이언트에 회답하는 정보의 내용이 달라집니다.
예를 들어. 이름이 www.lab.cyber.co.kr인 서버의 IP 주소를 조사할 때 클라이언트는 다음과 같은 정보를 포함한 조회 메시지를 DNS 서버에 보냅니다.
(a) 이름 = www.lab.cyber.co.kr
(b) 클래스 = IN
(c) 타입 = A
그러면 DNS 서버는 등록된 정보를 찾아 이름, 클래스, 타입이 일치하는 것을 찾습니다.
도메인의 계층
인터넷에는 막대한 수의 서버가 있으므로 이것을 전부 1대의 DNS 서버에 등록하는 것은 불가능합니다. 그렇기 때문에 조회 메시지를 받은 DNS 서버에 정보가 등록되어 있지 않은 경우도 생깁니다. 결론부터 설명하면 정보를 분산시켜 다수의 DNS 서버에 등록하고, 다수의 DNS 서버가 연대하여 어디에 정보가 등록되어 있는지를 찾아내는 구조입니다.
DNS 서버에 등록한 정보에는 모든 도메인명 이라는 계층적 구조가 있습니다. 예를 들어 www.lab.cyber.co.kr처럼 점으로 구분되어 있는데 이 점이 계층을 구분합니다.
kr 계층 아래에 co 계층 아래에 cyber 계층이 있고 lab 계층 아래에 www 계층이 있는 구조입니다.
인터넷에는 DNS 서버가 수만 대나 있으므로 닥치는 대로 뒤지면서 다닐 수는 없습니다. 그래서 하위의 도메인을 담당하는 DNS 서버의 IP 주소를 그 상위의 DNS 서버에 등록합니다. 그리고 상위의 DNS 서버를 또 그 상위의 DNS 서버에 등록하는 식으로 차례대로 등록합니다. 즉 lab.glasscom.com이라는 도메인을 담당하는 DNS 서버를 glasscom.com의 DNS 서버에 등록하고, glasscom.com의 DNS 서버를 com 도메인의 DNS 서버에 등록하는 식입니다. (최상위 위에 루트 도메인이라는 도메인이 있습니다. 루트 도메인의 DNS 서버는 인터넷에 존재하는 모든 DNS 서버에 등록되어 있습니다. 따라서 어느 DNS 서버에서든 루트 도메인에 액세스할 수 있게 됩니다.)
https://www.youtube.com/watch?v=2ZUxoi7YNgs
도메인의 조회 과정
- www.opentutorials.org이라는 웹 서버에 관한 정보를 조회하기로 합니다.
- 가장 가까운 DNS 서버에는 www.opentutorials.org가 등록되어 있지 않으므로 도메인의 계층을 위로부터 차례로 따라갑니다.
- 가장 가까운 DNS 서버에는 루트 도메인의 DNS 서버가 등록되어 있으므로 거기에 클라이언트로부터 받은 조회 메시지를 전송합니다.
- 루트 도메인에는 www.opentutorials.org이라는 이름이 등록되어 있지 않지만 이름을 보면 org 도메인의 아래에 있다는 것을 알 수 있습니다. 따라서 루트 도메인의 DNS 서버는 org 도메인의 DNS 서버의 IP 주소를 반송합니다.
- 그러면 가장 가까운 DNS 서버는 org 도메인의 DNS 서버에 조회 메시지를 보냅니다. 여기에도 www.opentutorials.org는 등록되어 있지 않으므로 opentutorials.org DNS 서버의 IP주소를 반송합니다.
- 이런식으로 www.opentutorial.org의 IP 주소를 조회하게 됩니다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 네트워크 통신 과정 기초 (1) | 2023.01.04 |
---|---|
[네트워크] 쿠키와 세션 정리 (0) | 2022.10.21 |