Posted
Filed under Linux
■ CentOS 에서 네임서버 설치 , 운영

Tip .
0. 소스로 설치 할 경우
http:/www.isc.org 에서 소스 다운 받아 설치 하면 된다.

0. bind 9.2 까지는 named.conf 파일을 사용
0. bind 9.3 부터는 name.caching-nameserver.conf 사용


1. 필요 패키지


  • bind / 기본 패키지
  • bind-libs / 라이브러리
  • bind-utils / 유틸리티
  • caching-nameserver / bind운영에 필요한 환경 설정파일 모음


  • 2. 패키지 준비
    패키지 확인
    #  rpm -qa | grep bind                 
    bind-libs-9.3.3-10.el5
    ypbind-1.19-8.el5
    bind-utils-9.3.3-10.el5
    # yum install bind
    ....
    Dependencies Resolved
    =============================================================================
     Package                 Arch       Version          Repository        Size
    =============================================================================
    Installing:
     bind                    i386       30:9.3.4-6.0.2.P1.el5_2  updates           9
    58 k
    Updating for dependencies:
     bind-libs               i386       30:9.3.4-6.0.2.P1.el5_2  updates           8
    46 k
     bind-utils              i386       30:9.3.4-6.0.2.P1.el5_2  updates           1
    67 k
    Transaction Summary
    =============================================================================
    Install      1 Package(s)        
    Update       2 Package(s)        
    Remove       0 Package(s)        
    Total download size: 1.9 M
    Is this ok [y/N]: y
    ....
    Installed: bind.i386 30:9.3.4-6.0.2.P1.el5_2
    Dependency Updated: bind-libs.i386 30:9.3.4-6.0.2.P1.el5_2 bind-utils.i386 30:9.3.4-6.0.2.P1.el5_2
    Complete!
    # rpm -qa | grep bind
    bind-9.3.4-6.0.2.P1.el5_2
    bind-utils-9.3.4-6.0.2.P1.el5_2
    ypbind-1.19-8.el5
    bind-libs-9.3.4-6.0.2.P1.el5_2
    # yum install caching-nameserver
    ....
    installed: caching-nameserver.i386 30:9.3.4-6.0.2.P1.el5_2
    Complete!
    # rpm -qa | grep caching
    caching-nameserver-9.3.4-6.0.2.P1.el5_2
    #

    3. 운영을 위한 환경 설정 파일
    bind 9.3 버전 부터 name.caching-nameser.conf 파일을 사용한다.
    # vi /etc/named.caching-nameserver.conf
    // named.caching-nameserver.conf
    ...
    options {
    //    listen-on port 53 { 127.0.0.1; };
    // 기본적으로 port 53 으로 자신만이  접근 가능하게 되어있다.
    // 외부접근 가능 하게 any로 바꾼다.
          listen-on port 53 { any; };
    //        listen-on-v6 port 53 { ::1; }; 
    // ip v6 에 대한 것으로 차후 서비스를 위해 ~..주석처리.
            directory       "/var/named";
    // zone file에 대한 기본 디렉토리 설정
            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    port 53;   
    // 쿼리를 받아 들일 소스포트
            // query-source-v6 port 53;
    //     allow-query     { localhost; };
            allow-query     { any; };
    // 쿼리 허용할 ip 대역
    };
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    // 실행에 있어 디버깅시 참고 할 수 있는 로그파일 생성 위치
    view localhost_resolver {
    //        match-clients      { localhost; };
    //        match-destinations { localhost; };
            match-clients      { any; };
            match-destinations { any; };
    // 로컬 리졸버 허용 클라이언트 지정

            recursion yes;
            include "/etc/named.rfc1912.zones";
    };

    4. 구동 시작
    # /etc/rc.d/init.d/named start
    named를 시작 중:                                           [  OK  ]
    [root@fedora ~]# tail /var/named/data/named.run
    zone 0.in-addr.arpa/IN/localhost_resolver: loaded serial 42
    zone 0.0.127.in-addr.arpa/IN/localhost_resolver: loaded serial 1997022700
    zone 255.in-addr.arpa/IN/localhost_resolver: loaded serial 42
    zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/localhost_resolver: loaded serial 1997022700
    zone localdomain/IN/localhost_resolver: loaded serial 42
    zone localhost/IN/localhost_resolver: loaded serial 42
    running
    //정상 구동되었다.
    #

    5. zone 파일 구성

    # vi /etc/named.rfc1912.zones
    // named.rfc1912.zones:
    //
    // Provided by Red Hat caching-nameserver package
    //
    // ISC BIND named zone configuration for zones recommended by
    // RFC 1912 section 4.1 : localhost TLDs and address zones
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    zone "." IN {
            type hint;
            file "named.ca";
    };
    ...
    zone "linux.com" IN {
            type master;
            file "linux.com.zone";
            allow-update { none; };
    };
    //추가
    # cd /var/named
    # ls
    // 기본 포멧 파일을 이용
    # cp localdoamin.zone linux.com.zone
    # vi linux.com.zone
    TTL    86400
    @               IN SOA  ns.linux.com. root.linux.com ( 
                                            2008121601      ; serial (d. adams)
                                            3H              ; refresh
                                            15M             ; retry
                                            1W              ; expiry
                                            1D )            ; minimum
                    IN NS           ns.linux.com.
                    IN MX 10        mail.linux.com.
                    IN A            192.168.10.200
    ns              IN A            192.168.10.200
    www             IN A            192.168.10.200
    mail            IN CNAME        www
    ftp             IN CNAME        @
    *               IN CNAME        @

    // 생성 후 저장

    //zone 파일과 conf 파일 체크
    # named-checkconf /etc/named.rfc1912.zones
    # named-checkconf /etc/named.caching-nameserver.conf
    # named-checkzone linux.com /var/named/linux.com.zone
    zone linux.com/IN: loaded serial 2008121601
    OK
    #

    // 모든게 정상으로 나왔다. 서버 재구동
    /etc/rc.d/init.d/named restart
    named를 정지 중:                                           [  OK  ]
    named를 시작 중:                                           [  OK  ]
    # vi /etc/resolv.conf
    search localdomain
    nameserver      192.168.10.10
    nameserver      168.126.63.1
    // 기존에 있던 nameserver외에 추가로 자신의 ip로 된 nameserver ip를 추가
    // 192.~ 대의 dns를 먼저 검색 하며 검색된 정보가 없을경우 다음 dns에게 물어 본다.
    # nslookup
    > linux.com
    Server:  [192.168.10.10]
    Address:  192.168.10.10
    Name:    linux.com
    Address:  192.168.10.100
    ...
    > ftp.linux.com
    >q
    // 잘나오는것을 확인 할 수 있다.

    6. zone file 설명
    TTL    86400
    time to live의 약자 다른 네임서버에서 읽어간 정보가 살아있는 시간이다. 초단위

    @              
    ORIGIN 의 의미 public domain을 의미 즉  @ = linux.com.

    IN
    IN 다음 의 설정을 이용

    SOA  ns.linux.com. root.linux.com
    SOA start of authority 해당 도메인의 정보를 가지고 있고 root@linux.com 이 관리자를 나타낸다.
    (  
                                           
    2008121601      ; serial (d. adams)
    해당 정보의 시리얼 보통 날짜정보 + 카운터로 표시된다.

                                         3H              ; refresh
    리프레쉬 타임 주기

                                            15M             ; retry
    M-> S로의 장애 발생시 재 접속  시간

                                            1W              ; expiry
    존파일 유효기간, 만약 Expiry 시간안에 M에서 응답을 못받을 경우 S는 데이터에 대한 유효성을 더이상 인정 하지 않겠다는뜻

                                            1D )            ; minimum
    TTL과 같은 의미 다른 서버에서 zone 데이터를 가져갔을때 그 데이터에 대한 유효기간

                    IN NS           ns.linux.com.
    // 네임서버 이름 지칭
                    IN MX 10        mail.linux.com.
    // mailserver 이름 지칭
                    IN A            192.168.10.200
    // ip 할당
    ns              IN A            192.168.10.200
    // nameserver의 ip는     ""
    www             IN A            192.168.10.200
    // www.linux.com ip할당
    mail            IN CNAME        www
    // mail server의 ip는 www의 설정을 가져온다.
    ftp             IN CNAME        @
    // ORIGIN 변수의 값을 그대로 사용
    *               IN CNAME       


    6.1 nameserver를 이용한 부하분산
    www             IN A            192.168.10.200
    www             IN A            192.168.10.201
    www             IN A            192.168.10.202
    // A 레코드 여러개 적어 부하 분산!

    크리에이티브 커먼즈 라이선스
    Creative Commons License
    2013/12/05 13:52 2013/12/05 13:52