본문으로 바로가기

DNS_2 ( Master DNS / Slave DNS )

category Linux/Linux Network 2017. 9. 11. 19:14
  • Master DNS / Slaver DNS 
DNS 서버도 다운될 수 있다. 그런 경우를 방지하기 위해 같은 도메인을 관리하는 서버를 더 만든다. 
Slave는 Master의 설정파일을 설정에 따라 받아와 유지한다. Master 서버가 다운되면 Slave 서버로 대처해 서비스가 정상적으로 이루어지게 한다.

[실습]
Master 서버, Slave 서버 두개의 서버가 필요하다.
Clone을 떠서 실습한다. 

[Clone]
MAC 주소 삭제 ( 충돌 위험 )
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth1


# poweroff ( # init 0 ) 

서버를 끄고 Clone을 뜹니다. /* link Clone */


클론 뜬 서버먼저 부팅시켜 IP와 HostName을 바꿔줍니다. ( 충돌 위험 )

# vi /etc/hosts 

192.168.17.120    linuxclone.example.com    linuxclone

# setup

- 호스트 이름 : linuxclone.example.com

- IP :     eth0 : 192.168.17.120


(주의) Master 서버와 Slave 서버의 설정이 다르므로 어떤 서버 설정인지 확인 하면서 작업


( Master DNS )

# vi /etc/named.rfc1912.zones

 

........ 

 zone "linux.example.com" IN {

        type master; 

        file "example.zone";

        also-notify { 192.168.17.120; 192.168.17.220;};

};


zone "17.168.192.in-addr.arpa" IN {

        type master; 

        file "example.rev";

        also-notify { 192.168.17.120; 192.168.17.220;};

};

 

-> 자신의 Slave DNS 서버에게 변경 사항을 알려주는 설정

이 설정이 없으면 실시간적으로 Slave DNS 서버에 업데이트가 안된다. 자신의 IP주소는 굳이 안적어도 된다. 


# vi /var/named/chroot/var/named/example.zone

 

 $TTL    4

@               IN SOA         ns1.linux.example.com. root (

                                        42              ; serial (d. adams)

                                        3H              ; refresh

                                        15M             ; retry

                                        1W              ; expiry

                                        1D )            ; minimum


                IN NS           ns1.linux.example.com.

                IN NS           ns2.linux.example.com.

ns1             IN A            192.168.17.220

ns2             IN A            192.168.17.120


 


# vi /var/named/chroot/var/named/example.rev

 

 $TTL    4

@       IN      SOA     ns1.linux.example.com.  root.linux.example.com.  (

                                      1997022700 ; Serial

                                      28800      ; Refresh

                                      14400      ; Retry

                                      3600000    ; Expire

                                      86400 )    ; Minimum

        IN      NS      ns1.linux.example.com.

        IN      NS      ns2.linux.example.com.

220     IN      PTR     ns1.linux.example.com.

120     IN      PTR     ns2.linux.example.com.


 

-> DNS 서버를 등록할때는 .rev 파일에도 반드시 추가해줘야한다. 


-확인

 # tail -f /var/log/messages

 # service named restart


 # nslookup -q=NS linux.example.com

 

 Server:         192.168.17.220

Address:        192.168.17.220#53


linux.example.com       nameserver = ns1.linux.example.com.

linux.example.com       nameserver = ns2.linux.example.com.


 


(Slave DNS)

# vi /etc/named.rfc1912.zones

 

 zone "linux.example.com" IN {

        type slave;

        masters {192.168.17.220;};

        file "slaves/example.zone";

};


zone "17.168.192.in-addr.arpa" IN {

        type slave;

        masters {192.168.17.220;};

        file "slaves/example.rev";

};

 


# service named restart


# cd /var/named/chroot/var/named/slaves

# ls -l 

 

 total 8

-rw-r--r-- 1 named named 447 Sep 11 18:52 example.rev

-rw-r--r-- 1 named named 401 Sep 11 18:52 example.zone

 

-> Master DNS 에서 설정한 zone파일과 rev 파일이 옮겨 왔다

  = Master DNS 가 다운되도 설정된 파일들을 Slave가 가지고 있기 때문에 서비스 하는것에는 문제가 없다. 


  • rndc
리눅스에서는 service 라는 스크립트로 데몬을 손쉽게 껏다 켰다 할수 있지만 유닉스에서는 없는 경우도 있다. 
rndc 는 named  데몬을 간편하게 실행시키고 끄고 할 수 있도록 만들어졌다. service 가 수행하지 못하는 기능들도 있기때문에 알아두자.

[실습]
( Master DNS )
- rndc key 생성

# rndc-confgen

 

 # Start of rndc.conf

key "rndckey" {

        algorithm hmac-md5;

        secret "6IaVCB4oFdDxa/HtFcNOvg==";

};


options {

        default-key "rndckey";

        default-server 127.0.0.1;

        default-port 953;

};

# End of rndc.conf


# Use with the following in named.conf, adjusting the allow list as needed:

# key "rndckey" {

#       algorithm hmac-md5;

#       secret "6IaVCB4oFdDxa/HtFcNOvg==";

# };

# controls {

#       inet 127.0.0.1 port 953

#               allow { 127.0.0.1; } keys { "rndckey"; };

# };

# End of named.conf


 

-> End of rndc.conf 위로 rndc.conf 파일에 밑에 내용운 named.conf 파일에 넣으면된다.

-> rndc-confgen 명령어는 키를 생성하기 때문에 명령어를 다시치면 키가 새로 생긴다. 

rndc.conf 파일의 키와 named.conf 파일의 키가 같은지 잘 확인한다.


# vi /var/named/chroot/etc/rndc.conf  /* rndc.conf 파일 생성 */

 

 key "rndckey" {

        algorithm hmac-md5;

        secret "6IaVCB4oFdDxa/HtFcNOvg==";

};


options {

        default-key "rndckey";

        default-server 127.0.0.1;

        default-port 953;

};

 

-> 복사해서 넣어줍니다. 

# ln -s /var/named/chroot/etc/rndc.conf /etc/rndc.conf

# chown root:named /var/named/chroot/etc/rndc.conf


# vi /var/named/chroot/etc/named.caching-nameserver.conf

 

...... 

 key "rndckey" {

       algorithm hmac-md5;

       secret "6IaVCB4oFdDxa/HtFcNOvg==";

 };

 

 controls {

       inet 127.0.0.1 port 953

               allow { 127.0.0.1; } keys { "rndckey"; };

 };

 

 -> 기존의 내용 맨 아래에 주석제거 후 추가합니다.

 

# service named restart


[확인]

# rndc status    /* 서버 현재 상태 확인 */


# rndc stats    /* 서버 현재 통계 정보 확인 */

# cd /var/named/chroot/var/named/data  

# ls  /* 아래 파일에 저장됨 */

.....   named_stats.txt ......


# rndc reload /*  service named restart */












'Linux > Linux Network' 카테고리의 다른 글

FTP  (0) 2017.09.13
WEB Server ( Apache )  (0) 2017.09.11
DNS_1 ( 도메인 부하분산, 도메인 위임 )  (0) 2017.09.08
이더채널 본딩 ( Ether Channel Bonding )  (0) 2017.09.07
네트워크 설정  (0) 2017.09.07