1. DNS 란
DNS는 도메인의 계층 구조로 구성된 컴퓨터 및 네트워크 서비스를 명명하는 시스템으로, 도메인 이름 시스템이라고도 한다. DNS는 인터넷과 같은 TCP/IP 네트워크에서 사용자에게 친숙한 이름을 통해 컴퓨터와 서비스를 찾는 데 사용된다. 사용자가 응용 프로그램에서 DNS 이름을 입력하면 DNS 서비스는 이름과 연결된 다른 정보(IP 주소 등)로 이름을 확인한다. 예를 들어 대부분의 사용자는 네트워크에서 메일 서버나 웹 서버 등의 컴퓨터를 찾을 때 naver.com과 같은 친숙한 이름을 선호한다. 친숙한 이름은 쉽게 배우고 기억할 수 있으나 네트워크에서 통신할 때 컴퓨터는 숫자로 된 주소를 사용한다. DNS와 같은 이름 시스템은 네트워크 리소스를 좀 더 쉽게 사용할 수 있도록 컴퓨터나 서비스의 친숙한 이름을 숫자로 된 주소에 매핑하는 방법을 제공한다. 아래 그림은 컴퓨터의 이름에 기반하여 IP 주소를 찾는 DNS의 기본 용도를 보여준다.
이 예에서 클라이언트 컴퓨터는 DNS 서버를 쿼리하여 host-a.example.microsoft.com이라는 DNS 도메인 이름을 사용하는 컴퓨터의 IP 주소를 요청한다. DNS 서버는 로컬 데이터베이스를 사용하여 이 쿼리에 응답할 수 있기 때문에 클라이언트에게 요청한 정보가 포함된 응답을 보낸다. 이 응답에는 host-a.example.microsoft.com의 IP 주소 정보를 가진 호스트(A) 리소스 레코드가 포함되어 있다.
DNS(Domain Name System)는 RFC(Request for Comment) 1034 및 1035에서 정의되었다. 이 문서는 DNS 관련 소프트웨어의 모든 구현에 공통되는 아래와 같은 요소를 지정한다.
① 이름을 구성하는 데 사용되는 도메인의 구조화된 계층 구조를 명시하는 DNS 도메인 네임스페이스
② 네임스페이스에서 이름을 등록하거나 확인할 때 사용할 특정 종류의 리소스 정보에 DNS 도메인 이름을 매핑하는 리소스 레코드
....