본문 바로가기
CS/네트워크

[네트워크] DNS(Domain Name Service)

by 노잼인간이라불립니다 2022. 5. 31.

DNS를 한 마디로 정의하자면 호스트명과 IP주소를 매핑하는 역할을 하는 프로토콜이다.

 

TCP/IP 네트워크 아키텍처 기준 애플리케이션 계층에 위치하는 프로토콜이다.

 

호스트명 -> IP주소로 매핑하는 것을 "이름해석" 이라고 한다.

 

DNS를 이용하려면 DNS 서버가 필요한데 DNS서버에는 호스트명과 IP주소가 맵핑되어 등록이 되어 있어야 한다.

 

이외에도 DNS서버에는 여러가지 정보들이 저장 될 수있다. 이렇게 서버에 저장되는 정보를 "리소스 레코드"라고 부른다.

 

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

 

주소 질의 과정은 아래의 그림과 같이 이루어 지게 된다.(재귀질의).

사용자가 호스트의 이름을 지정하면 -> DNS 리졸버가 루트에서 부터 질의 한다.

 

매번 이렇게 질의하는 것은 리소스를 많이 낭비하게 되므로, DNS리졸버란 녀석이 질의한 정보를 한동안 캐시에 저장해 재사용한다.

 

 

- DNS Resolver

우리가 네트워크를 사용할 경우에는 반드시 DNS 서버를 설정해주어야 한다.(대부분 자동으로 설정된다.)

 

이렇게 우리가 사용하고 있는 호스트(네트워크에 연결되어 있는 컴퓨터)에는 DNS서버의 IP주소가 설정되어 있게 된다.

 

설정을 다 마치고 통신을 할 준비가 되었다고 가정하고,

 

사용자가 호스트의 이름을 지정하게 되면(도메인 입력), 자동으로 DNS서버에 호스트명(도메인)에 대응하는 IP주소를 찾게 된다..

 

이렇게 도메인이 입력되면 자동으로 질의를 하는 녀석을 DNS리졸버라고 부른다.