Contents

 Chapter 9. DNS 서비스의 개요와 역할

9-1. DNS(Domain Name System)
 DNS는 다른 호스트에 접근하고자 할 때 기억하기 어려운 IP 주소 대신에 좀 더 이해하기 쉬운
계층적인 호스트 이름을 사용할 수 있도록 하는 기반 서비스이자 프로토콜이다. 이는 사용자들
이 개별 호스트의 IP 주소를 일일이 기억할 필요가 없다는 것을 의미한다. 사실 우리가 라이코
스를 찾아가고자 할 때 lycos.co.kr이라는 도메인을 기억하지 203.231.22.56 이라는 IP 주소를
기억하지는 않는다. DNS는 호스트 이름에 대한 분산 데이터베이스이다. 이 말은 데이터베이스
에존재하는 이름들은 단순한 나열이 아니라 하나의 논리적인 구조를 형성하고 있다는 것을 말
한다. 이들 호스트들은 하나의 도메인으로 그룹화되어 있고, 이들은 내부에 다른 도메인을 포함
할 수 있다. 하나 또는 복수의 도메인들은 관리 목적상 하나의 Zone에 소속될 수 있다. 도매인 
이름은 도메인이 자신의 이름 계층에서 어떤 위치에 있는지를 나타내며, 해당 도메인에 소속된
호스트는 자신의 호스트 이름에 부가해서 도메인의 이름을 포함한다. 즉, 호스트 이름에 대한
도메인 이름은 호스트가 위치하는 이름 체계에 있어서의 상대적 위치를 나타낸다.(일반적으로
Tree 구조로 표현된다) 따라서 도메인상의 개별 호스트에 접근하기 위해서는 우리는 FQDN
(Fully Qualified Domain Name)을 사용한다. 즉 FQDN은 해당 호스트에 대한 이름 공간에서의
절대적인 경로를 나타내고 호스트 이름을 제외한 나머지 이름 영역, 즉 도메인 이름은 그 호스
트가 위치하는 상대 경로를 나타낸다고 보면 된다. 예를 들어서 myhome.shinbiro.com의 경우
맨 앞의 myhome은 호스트 이름을, shinbiro는 도매인 이름을, 마지막의 com은 이를 포괄하는 
대분류의 상위 도메인을 나타낸다. 
               
 위의 그림은 도메인 이름 단계를 모식적으로 그린 것이다. 루트 도메인과 최상위 도메인(com,
edu, gov, int, org....)은 모두 InterNIC에서 관리되며, 이들의 하위 도메인들은 도메인을 얻은
기관에서 자체적으로 관리하게 된다. 
 
9-2. Zone의 개념
 Zone은 DNS 서버 위에 만들어 놓은 데이터베이스로서 DNS가 관리하는 물리적 파일이다.
Zone은 기본적으로 하나의 DNS 서버가 관리하는 도메인 이름 영역을 나타낸다. Zone은 기본
적으로 하나 이상의 도메인을 포함하는데,이 때 Zone이 관리하는 가장 상위의 도메인을 해당
Zone에 대한 루트도메인이라고 한다. 
 
9-3. Name Server가 갖는 역할 분류
 1) 주 이름 서버(Primary Name Server)
    로컬 파일로부터 자신이 관리하는 Zone에 대한 데이터를 얻는다. 도메인
    을 추가하거나 또는 호스트 추가 등은 전부 이 주 이름 서버에서 처리된다. 
 2) 보조 이름 서버(Secondary Name Server)
    Zone에 대한 정보를 네트워크를 통해서 다른 서버로부터 얻는다. 이 때 
    보저 이름 서버로 Zone에 대한 정보가 전달되는 것을 Zone Transfer라고
    한다. 
 3) 캐시 서버(Cache Server)
    모든 DNS 서버는 이름 풀기한 결과를 자신의 캐시에 저장한다. 이름 풀기
    완료된 결과를 자신의 캐시에 저장하고, 도메인 이름 요청이 들어오면 캐
    시를 참조해서 그 결과를 알려주는 서버이다. 
 4) 마스터 이름 서버(Master Name Server)
    마스터 이름 서버는 주 이름 서버가 될 수도 있고, 다른 보조 이름 서버가 
    될 수도 있다. 
 5) 전달 서버(Forwarder)와 슬레이브(Slave)