반응형

■ 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 레코드 여러개 적어 부하 분산!

    반응형

    '리눅스' 카테고리의 다른 글

    네임서버 설치  (0) 2011.02.24
    rsync 하기  (0) 2011.01.06
    웹 서버 보안을 위한 php.ini 설정팁  (0) 2010.07.06
    Vi 에디터 사용법  (0) 2007.08.21
    리눅스 관련 사이트  (1) 2007.06.18
    리눅스의 부팅 순서  (0) 2007.06.18
    리눅스 바이러스 위험과 대책  (0) 2007.06.18
    리눅스에서 하드디스크를 구별하는 방법  (0) 2007.06.18
    리눅스의 기본 명령어  (0) 2007.06.18
    유닉스의 종류  (0) 2007.06.18

    + Recent posts