BIND의 DNS 테스트 환경 구축 메모

5310 단어 바인드dns

BIND의 DNS 테스트 환경 구축 메모



CentOS에 BIND의 DNS 테스트 환경을 구축 할 때 메모를 남깁니다.
또 본 DNS 서버의 MX 레코드를 참조해 메일을 배송하는 Postfix를 구축해, 이하 엔트리로 구축한 테스트 환경 Postfix에 메일을 배송합니다.

BIND의 DNS 테스트 환경 목적



이 테스트 환경의 목적은 환경 내부의 DNS에 의한 이름 확인 및 BIND의 동작 확인입니다.
다음의 동작이 확인 가능한 환경의 구축 및 동작 확인을 실시합니다.
  • DNS 레코드의 dig 명령에서 참조

  • 이 엔트리에서는, 이하에서 구축한 OSX상의 CentOS6에 구축합니다.
    htps : // 코 m / 케이 k 모비 / ms / 2c1 세 c8b875387 아 83 아 71
    SElinux는 무효라고 가정합니다.

    BIND의 DNS 테스트 환경 및 동작 확인 정책



    상기 목적을 실현하기 위한 DNS 환경 구성·설정값·동작 확인의 방침·전제 조건을 기술합니다.

    DNS 테스트 환경 프로세스 구성 정책



    본 DNS 테스트 환경은 다음의 프로세스 구성을 취하는 방침으로 합니다.
  • 위의 모든 프로세스는 동일한 Cent OS에서 구성됩니다.
  • 다음은 각 컴퍼넌트의 이미지. ( htp : //p ぁんつ ml. 코m/ )


  • @startuml
    [dig,nslookup] -right-> [named] : DNS query
    [smtp-source,telnet] -right-> [Postfix] : SMTP
    [Postfix] -up-> [named] : DNS query
    [Postfix] -right-> [smtp-sink] : SMTP (Relay)
    @enduml
    

    DNS 테스트 환경 설정 구성 정책



    BIND의 동작을 설정하는 설정값은 다음의 방침으로 결정합니다.
  • 도메인은 example.com을 사용한다. ( htps : // 및 ls. 아니 tf. rg / html / rfc2606 # Sec Chion-3 )
  • DNS 서버는 테스트 환경에서만 참조 가능하다.
  • 재귀 쿼리를 비활성화합니다.

  • 동작 확인 정책



    본 테스트 환경의 동작 확인은 다음의 방침으로 실시합니다.
  • DNS 서버의 동작을 확인한다. 이하의 확인 관점에서 실시한다.
  • dig 명령의 응답을 확인합니다.


  • BIND의 DNS 테스트 환경 구축 절차



    BIND 설치



    yum에서 bind를 설치하고 rpm으로 설치되었는지 확인합니다. dig 명령도 설치됩니다.
    chkconfig에서 부팅 설정을 활성화합니다.
    $ sudo yum -y install bind
    ...
    $ rpm -qa | egrep 'bind'
    ...
    $ chkconfig named on
    

    BIND 설정 (named.conf)



    앞에서 설명한 BIND 설정 구성 정책에 따라 BIND를 설정합니다.
    named.cf의 다음 설정 값을 다시 씁니다.
  • /etc/named.comf

  • 이 설정에서는 options 문, zone 문을 편집합니다.

    options 문


    설정
    설정값
    Note


    listen-on
    포트 53 {127.0.0.1;};
    DNS 서버 인터페이스, 포트를 지정합니다. 테스트 환경에서만 참조하기 위해 인터페이스는 127.0.0.1을 지정합니다. 포트는 53을 지정합니다.

    allow-query
    {localhost;};
    DNS 쿼리를 허용할 호스트를 지정합니다. 로컬만 허용하기 위해 localhost를 지정합니다.

    recursion
    no;
    재귀적 쿼리의 사용 불가능을 지정합니다. 유효하지 않기 위해 no를 지정합니다.

    options {
        listen-on port 53 { 127.0.0.1; };
    #   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";
        allow-query     { localhost; };
        recursion no;
    
        dnssec-enable yes;
        dnssec-validation yes;
    
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
    
        managed-keys-directory "/var/named/dynamic";
    };
    

    zone 문
    zone "example.com" IN {
            type master;
            file "/var/named/example.com.zone";
    };
    
  • /var/named/example.com.zone

  • /etc/named.conf의 zone 문에서 설명한 example.com 영역 파일을 만듭니다.
    $TTL 86400
    @       IN SOA example.com. example.com(
                                2018010901      ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                3600000         ; Expire
                                3600            ; Negative Cashe TTL
    )
            IN NS example.com.
    @       IN MX 10 mail.example.com.
    @       IN TXT "v=spf1 ip4:192.168.33.10 -all" ; SPF record
    @       IN A  192.168.33.10
    

    named 재부팅



    service 명령으로 named를 다시 시작합니다.
    $ sudo service named restart
    

    BIND의 DNS 서버 동작 확인



    dig 명령에서 example.com의 DNS 레코드를 참조할 수 있는지 확인합니다.
    $ dig @127.0.0.1 example.com any
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.5 <<>> @127.0.0.1 example.com any
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5289
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; QUESTION SECTION:
    ;example.com.           IN  ANY
    
    ;; ANSWER SECTION:
    example.com.        86400   IN  SOA example.com. example.com.example.com. 2018010901 10800 3600 3600000 3600
    example.com.        86400   IN  NS  example.com.
    example.com.        86400   IN  MX  10 mail.example.com.
    example.com.        86400   IN  TXT "v=spf1 ip4:192.168.33.10 -all"
    example.com.        86400   IN  A   192.168.33.10
    
    ;; ADDITIONAL SECTION:
    example.com.        86400   IN  A   192.168.33.10
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Mon Sep 17 14:32:31 2018
    ;; MSG SIZE  rcvd: 186
    
    $
    

    좋은 웹페이지 즐겨찾기