상세 컨텐츠

본문 제목

Ubuntu Domain Name Server setting 및 DNS file 자세한 설명

IT : Ubuntu

by 휀스 2017. 1. 19. 23:08

본문


Ubuntu 를 DNS server 로 사용할 경우 설정파일에 대한 설명들은 많은데 각 파일의 각 line 이 어떤 역할을 하는지는 설명되어있는 곳이 없어 다시 정리합니다.




1. bind 설치


sudo apt-get install bind9 bind9utils


bind9 은 Domain name server 를 돌리는 package 이고 bind9utils 는 DNS 를 테스트하고 이슈를 해결할 수 있는 package 임.


2. bind 설정

/etc/bind/named.conf.local

구성할 DNS zone 설정파일 위치와 master 인지 slave 인지를 정하고 master 일 경우 slave 로 data 를 보낼지를 결정한다.


zone "dnstest.com" {

        type master;

        file "/etc/bind/db.dnstest.com";

        allow-transfer { 192.168.1.11; };

};


allow-transfer { 192.168.1.11; }; 항목은 slave 를 구성할 경우 slave 의 ip 를 적어주면 되고 구성하지 않을 경우 작성하지 않음

file "/etc/bind/db.dnstest.com"; 항목은 Domain Name 의 상세 내역이 저장된 파일의 위치를 나타냄.

파일 이름은 폴더를 포함하여 임의로 설정할 수 있음.


또는 slave (Secondary Master) 일 경우


zone "dnstest.com" {

        type slave;

        file "db.dnstest.com";

        master { 192.168.1.10; };

};



ip address 는 각 서버의 ip 를 사용하면 됨.


/etc/bind/db.dnstest.com file (Ubuntu 12.04 version)


;

; BIND reverse data file for local 192.168.1.XXX net

;

$TTL    604800

@       IN      SOA     dnstest.com. root.dnstest.com. (

                              2         ; Serial

                         604800         ; Refresh

                          86400         ; Retry

                        2419200         ; Expire

                         604800 )       ; Negative Cache TTL

;

@      IN      A          192.168.1.10

dnstest.com.       IN      NS      ns

dnstest.com.       IN      NS      ns2

ns      IN      A         192.168.1.44

ns2    IN      A         192.168.1.45

www  IN      A         192.168.1.22

mail   IN      A         192.168.1.66

          IN      MX 1   mail



TTL : DNS 가 갱신되었을 경우 얼마마다 갱신정보를 몇초마다 update 할 것인지 설정.

SOA

dnstest.com. : 설정할 Domain. 마지막 "." 에 유의

root.dnstest.com. : 관리자 Email root@dnstest.com 의 의미. 마지막 "." 에 유의

2 ; Serial : 정보가 갱신되면 더 큰 숫자를 써줘야함. 일반적으로 년월일시를 사용.



DNS zone 에 관련한 수정사항이 발생하면 반드시 Serial 을 기존 보다 큰 숫자로 바꾸고 아래 명령을 실행해 주어야 함.


$ sudo rndc reload


Retry, Expire, Negative Cache TTL 등은 Slave 쪽으로 어떤 방식으로 정보를 전송할 것인지 설정하는 부분.


@ 기호는 Server 자신을 나타냄


dnstest.com. IN NS ns. : ns 라는 이름의 Name server 를 나타냄. 이후에 ns 라는 A record 가 존재하여야함.


IN MX 1 mail : mail.dnstest.com 이라는 이름의 MX record 를 생성 (mail 이라는 A record 필요)


위와 같이 설정 후 아래 command 로 Test 를 합니다.



$ sudo named-checkzone dnstest.com /etc/bind/db.dnstest.com


아래와 같은 결과가 나오면 설정이 잘 된 것입니다.


db.dnstest.com

zone dnstest.com/IN: loaded serial 2

OK


실제로 동작하는지 테스트 해보려면 아래 명령을 실행하면 됩니다. (설정한 ns 의 IP 가 192.168.10.44 일 경우)


$ nslookup mail.dnstest.com 192.168.10.44

Server: 192.168.10.44

Address: 192.168.10.44#53


Name: mail.dnstest.com

Address: 192.168.10.66


Domain Name server (bind) 재시작 명령은 아래와 같습니다.


$ sudo systemctl restart bind9


또는


$ sudo service bind9 restart





관련글 더보기