본문 바로가기

Server

bind 9.3.6 버전 DNS 설치및 설정 (Cent 5.5)

# yum -y install bind bind-utils bind-libs caching-nameserver
네임서버에 필요한 데몬 설치

# vi /etc/named.caching-nameserver.conf
예전 /etc/named.conf를 를 대체하는 새로운 설정파일

options {
    listen-on port 53 { any; };
// 네임서버 포트번호, 네임서버 접근가능 아이피 설정
// 내부접근만 허용할경우 127.0.0.1; 
// 외부에서 네임서버 접근허용할경우 any;

    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

    // Those options should be used carefully because they disable port
    // randomization
    query-source    port 53; // 네임서버 쿼리를 받아들이는 포트번호 설정
    query-source-v6 port 53; 
// ipv6에서 네임서버 쿼리를 받아들이는 포트번호 설정

    allow-query     { any; }; //  네임서버 쿼리를 허용 범위, 내부만 허용 = localhost; , 외부허용 = any;
    allow-query-cache { any; }; //  네임서버 쿼리(캐시)를 허용 범위, 내부만 허용 = localhost; , 외부허용 = any;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
    match-clients      { any; }; // 내부 접근가능한 호스트 설정,  내부만 허용 = localhost; ,  모두가능 = any;
    match-destinations { any; }; // 내부 접근가능한 호스트 설정,  내부만 허용 = localhost; ,  모두가능 = any;


 # vi /etc/named.rfc1912.zones

.....
.....

zone "abc.com" IN { // abc.com 쿼리가 왔을 때
        type master; // hint(루트도메인), master(1차 네임서버), slave(2차 네임서버)
        file "data/abc.com.zone"; // data/abc.com.zone 파일을 읽어 실행
        allow-update { none; }; // 보조 네임 서버와 연동
};

ps. 역방향 조회는 드물게 사용되어 정방향 조회만 기록함.
 

# vi /var/named/chroot/var/named/data/abs.com.zone

$TTL    86400 // 정보 조회후 86,400초(1일) 동안은 질의 하지 않고 아래 값으로 서비스
@       IN  SOA @   root( // @ : host네임, SOA : 권한의 시작
                10 // 2차 네임서버가 있다면 파일 수정 후 1씩 증가한다.(2차 네임서버에서 인식위해)
                3H // 위 시리얼을 2차 네임서버에서 체크 하는 시간
                15M // 2차 네임서버에서 1차 네임서버로 접근이 안될경우 재접속 시간
                1W // 2차 네임서버에서 1차 네임서버로 이 시간 동안 접근이 안될경우 해당 도메인 삭제, 파기로 간주
                1D  )  //  TTL과 같은 내용

        IN  NS      ns.abc.com. // 네임서버 끝에 . 필수
        IN  MX 10   mail.abc.com. // 메일 서버 끝에 . 필수
        IN  TXT "v=spf1 ip4:123.123.123.123 ip4:123.123.123.124 ~all" // white 도메인 설정

IN  A   1.2.3.4. // abc.com 으로 들어 오면 1.2.3.4로 연결
www    IN  A   1.2.3.4 // www.abc.com 으로 들어 오면 1.2.3.4로 연결
mail      IN  A   1.2.3.5 // mail.abc.com으로 들어 오면 1.2.3.5로 연결


Tip. 네임서버 변경 시 TTL값을 작게 하여 보다 빠르게 적용 가능

ps1.  "@ IN A 1.2.3.4" 로 해야 된다고 함. @없으면 DNS request error 난다고 함. 잘 모르겠음. ㅡㅡ;
ps2.  BIND 9.2.4에선 시작을 "@ IN SOA ns.abc.com. root.ns.abc.com. (" 으로 네임서버를 기재했는데 검색해 보니 bind 9.3.6에선  "@       IN  SOA @   root"로 간단해 진듯.
ps3. 예전엔 "rndc.key"를 사용한 듯 한데 사라진듯


# chown root.names /var/named/chroot/var/named/data/abs.com.zone // 존 파일 권한 변경
# service named restart // 네임 서버 재시작


확인.
1. 네임서버는 TCP, UDP 53번을 사용하기 때문에 해당 포트 방화벽 allow
2. /var/log/message 로그에 named[901]: network unreachable resolving './NS/IN': 2001:7fd::1#53 이라 나오면  #vi /etc/sysconfig/named 
OPTIONS="-4" // bind ipv4로만 사용
맨 아랫 줄에 추가 후 재시작