네임서버 는 Microsoft Windows Server의 DNS 서버를 이용해서 구성할 수 도 있고 Linux/Unix 계열에서는 BIND를 이용을 할 수 있다.

우선적으로 DNS 서버를 구성하려면 자신이 등록한 도메인의 네임서버를 설정해야 한다. 자신의 도메인 이름이 example.com 을 등록을 했으면 일반적으로 ns.example.com 을 네임서버로 등록을 한다. 네임 서버등록은 도메인을 등록한 등록 대행 업체에 도메인 정보 변경을 이용한다.

사용자 삽입 이미지


ex> nepc.name 의 네임서버 호스트 명을 ns로 설정하고 IP주소를 자신의 서버 IP를 적어 넣는다. 위 그림에서는 192.168.0.1 을 적었으나 실제 등록에는 공인 IP주소를 입력한다.

정보 등록을 한 후 DNS서버의 네임서버가 적용이 될려면 1~2일 정도 시일이 걸린다.

이제 네임서버 를 등록한 후에는 BIND를 설치한다.

레드햇 계열이라면 yum install bind 를 이용해 설치를 할 수 있으며 또는 소소 또는 rpm 배포판 등을 이용하여 설치를 할 수 있다.

ISC BIND 사이트 (http://www.isc.org/products/BIND)

아래 예제는 가장 간단한 예제이다.
/etc/named.conf

options {
        directory “/var/named”;             // Zone 파일의 베이스 디렉토리
        dump-file “/var/tmp/named_dump.db”; // Dump 파일이 생성되는 경로
        statistics-file “/var/tmp/named.stats”; // 통계 파일이 생성되는 경로
        pid-file  “/var/run/named.pid”;     // 프로세스 ID가 담긴 파일 생성 경로
};

** Options
네임서버 구동에 필요한 디렉토리 또는 rndc key 등 BIND 구설 설정을 한다.

logging {   // 불필요한 정보를 로그파일에 남기지 않는다.
        category lame-servers { null; };
        category cname { null; };
        category response-checks { null; };
        category notify { null; };
};

** logging 로그에 대한 설정을 한다.

zone “.” IN {                       // 캐쉬 파일
        type hint;
        file “named.root”;
};

** 루트 존에 대한 설정이다.

zone “C.B.A.in-addr.arpa” IN { // 할당 IP 블락에 대한 Reverse Zone
        type master;
        file “zone-C.B.A.in-addr.arpa”;
};

C.B.A 는 IP 주소가 192.168.10.1 이라면 10.168.192.in-addr.arpa 으로 써준다.

zone “example.com” IN {             // 도메인 example.com 에 대한 Forward Zone
        type master;
        file “zone-example.com”;
};

example.com 도메인에 대한 마스터 서버 설정 파일은 zone-example.com 을 사용한다.

/var/named/zone-example.com

$TTL 10
@  IN  SOA  ns.example.com. root.example.com. (
                      1  ;Serial
                      21600       ;Refresh ( 6 hours)
                      1800        ;Retry   (30 minutes)
                      1209600     ;Expire  (14 days)
                      86400)      ;Minimum ( 1 day)

@   IN  NS      ns.example.com.
www IN A 192.168.10.1

@ 는 해당 도메인을 지칭한다 예를 들어 example.com 이면 @ = example.com 을 말하는 것이다.

– 시리얼은 도메인 존파일에 대한 변경 여부를 검출 하기 위해 사용된다 일반적으로 YYYYMMDDNN 을 사용한다.

– Refresh: Primary측의 Zone 데이터베이스 수정여부를 Secondary가 검사하는 주기이다. 네트워크의 변경이 잦아 Zone파일이 자주 수정된다면, 3H(10800) 정도로 설정한다. Zone이 안정되는 시점에서는 일반적으로 6H(21600) – 12H로 설정한다.

– Retry: Secondary측에서, Primary와 연결이 안될 경우, 재 시도 시간 주기이다. Refresh 기간 보다 적을때 의미가 있으며, 대부분의 경우 30M(1800) – 1H로 설정한다

– Expire: Secondary가 Expire로 지정된 시간동안 Primary에 연결하지 못할 경우, 오래된 백업카피의 자료가 더 이상 유효하지 않다고 보고, 해당 도메인에 대한 답변을 하지 않는다. 이 값을 너무 낮게 책정하는 것은 좋지 않다. 보통 1W – 2W(1209600)로 설정한다.

– Minimum: 타 네임서버가 본 Zone에 기술된 자료를 갖고 갔을 경우, 그 자료에 대한 유효기간(캐쉬에 살아있는 시간)을 설정한다. TTL(Time To Live)값이 명시되지 않은 레코드는 본 값을 기본으로 갖게 된다. 특정 레코드가 변경되었을 때, 이것이 인터넷에 전파되어 업데이트되는 주기는 전적으로 이 Minimum 값에 의존한다. 일반적으로 SOA에서는 1D(86400)를 설정하여 전체 레코드에 적용하고, 잦은 변경이 예상되는 레코드만 명시적으로 1H – 3H 정도로 낮추는 방법을 사용한다. 0은 캐싱을 하지 말라는 의미이다.