병훈's Blog

네트워크 뿌수기 - DNS는 네트워크의 전화번호부 본문

Computer/Network

네트워크 뿌수기 - DNS는 네트워크의 전화번호부

thdqudgns 2022. 12. 25. 10:28

네트워크의 공통 언어로 되어 있는 TCP/IP로 통신할 때는

IP 헤더에 통신 상대방의 IP 주소를 반드시 지정해야만 합니다.

 

통신에는 IP 주소가 필요

 

이름해석

 

IP 주소가 필요하다고는 해도, 애플리케이션을 이용하는 일반 사용자가 IP 주소를 이해하긴 어렵습니다.

그래서, 애플리케이션이 동작하는 서버는 클라이언트 PC 등의 호스트에

사용자가 이해하기 쉬운 이름호스트명을 붙입니다.

 

애플리케이션을 이용하는 사용자가 의식하는 것은 웹사이트 주소인 URL메일 주소 등입니다.

URL과 메일 주소에는 호스트명 자체나 호스트 이름을 구하기 위한 정보가 포함됩니다.

 

사용자가 URL 등으로 애플리케이션의 주소를 지정하면,

호스트 이름에 대응하는 IP 주소를 자동으로 구하는 것이

DNS(Domain Name System)의 역할입니다.

 

이처럼 호스트명에서 IP 주소를 구하는 방법이름해석이라고 부릅니다.

DNS는 가장 자주 이용되는 이름해석 방법입니다.

 


 

네트워크의 전화번호부

 

DNS는 보통 우리가 이용하는 휴대전화의 전화번호부와 같은 이미지입니다.

 

전화를 걸려면 전화번호가 필요합니다.

하지만, 전화번호를 몇 개씩이나 기억하기는 어렵기 때문에,

미리 연락처에 이름과 전화번호를 등록해 둡니다.

 

전화를 걸 때 상대방의 이름을 지정하면,

자동으로 해당하는 전화번호로 전화가 걸립니다.

 

TCP/IP 통신도 이와 같은 역할을 합니다.

TCP/IP 통신에 필요한 IP 주소는

TCP/IP 네트워크의 전화번호부인 DNS에 문의해서 조사합니다.

 

DNS는 전화번호부

 


 

DNS 서버

 

DNS를 이용하려면 DNS 서버가 필요합니다.

DNS 서버에 미리 호스트명과 IP 주소의 대응 관계를 등록해 둡니다.

 

DNS 서버에는 그밖의 여러 정보들도 등록합니다.

DNS 서버에 등록하는 정보를 리소스 레코드라고 부릅니다.

리소스 레코드의 주요 종류는 다음과 같습니다.

 

종류 의미
A 호스트명에 대응하는 IP 주소
AAAA 호스트명에 대응하는 IPv6 주소
CNAME 호스트명에 대응하는 별명
MX 도메인명에 대응하는 메일 서버
NS 도메인명을 관리하는 DNS 서버
PTR IP 주소에 대응하는 호스트명

 


 

DNS의 이름해석

 

DNS의 이름해석 원리를 살펴보겠습니다.

 

우선, DNS 서버에 필요한 정보(리소스 레코드)를 바르게 등록하는 것이 대전제입니다.

DNS 서버는 루트를 정점으로 한 계층 구조로 되어 있습니다.

 

그리고, 애플리케이션이 동작하는 호스트에는 DNS 서버의 IP 주소를 설정해 둡니다.

애플리케이션을 이용하는 사용자가 호스트 이름을 지정하면,

자동으로 DNS 서버에 대응하는 IP 주소를 질의합니다.

DNS 서버에 질의하는 기능은 OS에 내장되어 있고, DNS 리졸버라고 부릅니다.

 

질의한 호스트명에 관한 정보가 반드시 가까운 DNS 서버에 있다고는 할 수 없습니다. (DNS서버는 계층구조)

자신이 관리하는 도메인 이외의 호스트명을 찾으려면

루트에서부터 더듬어 가며 여러 번 질의를 반복해야 합니다.

 

DNS가 이처럼 이름해석을 반복해서 묻는 것을 재귀질의라고 부릅니다.

하지만, 매번 루트에서부터 재귀질의를 하는 것은 효율적이지 않습니다.

그래서 DNS 서버와 리졸버는 질의한 정보를 한동안 캐시에 보존합니다.

 

얼마나 오래 캐시에 보존할지는 설정하기 나름이지만,

과거에 질의한 결과가 캐시에 남아있으면 루트에서부터 찾지 않아도 이름해석을 할 수 있습니다.

 

DNS 리졸버의 루트 DNS 서버부터의 재귀질의 예시

 


 

Point

 

  • TCP/IP로 통신할 때에는 반드시 IP 주소를 지정해야만 한다.
  • IP 주소로는 이해하기 어려우므로 호스트명을 이용해서 통신 상대를 지정하는 경우가 많다.
  • 호스트명에서 IP 주소를 구하는 것을 이름해석이라고 부르고, DNS를 이용하는 경우가 대부분이다.
  • DNS 서버에 호스트명과 IP 주소 등의 리소스 레코드를 등록해 둔다.
  • DNS 서버에 질의하는 기능을 DNS 리졸버라고 부른다.
  • DNS 서버로 IP 주소를 질의할 때는 루트에서부터 질의를 반복한다.

 

 

 

 

728x90
728x90