在官方說明文件的第三章中的Tools for use with the name server daemon
有提到rndc這個指令~

The remote name daemon control (rndc) program allows the system administrator to control the operation of a name server.
也就是允許遠端控制DNS Server 啦~
那要如何實作…總不可能讓隨便任何一台主機都能控制DNS Server吧…

來看吧…~基本上這個也不難

@DNS Server(OpenSuSE11.1 32Bits 192.168.148.129)
#cat /etc/rndc.key
#rndc-confgen -a

重新產生rndc.key…前後可用cat指令觀察內容變化~
#cat /etc/rndc.key
key "rndc-key" {
       algorithm hmac-md5;
       secret "dhvS0tzh2QhK0GpWouix2A==";
};


#rndc-confgen > /etc/rndc.conf
產生/etc/rndc.conf 檔案

#cat /etc/rndc.key >> /etc/rndc.conf
將rndc.key的內容附加到rndc.conf後面…根據rndc.conf內容的註解~有一些地方要修改~

#vi /etc/rndc.conf
刪掉原有的key區段敘述…保留剛才cat過去的rndc.key的內容…也就是說把key區段的敘述改成rndc.key的內容就對了
(這個檔案是執行rndc指令時,預設帶進來的選項內容)
(default-key 等於 -k 選項)
(default-server 等於 -s 選項)
(default-port 等於 -p 選項)

接下來要修改options區段…將default-server 改成192.168.148.129

# Start of rndc.conf
key "rndc-key" {
       algorithm hmac-md5;
       secret "dhvS0tzh2QhK0GpWouix2A==";
 };


options {
        default-key "rndc-key";
        default-server 192.168.148.129;
        default-port 953;
 };

#vi /etc/named.conf
加入

key "rndc-key" {
        algorithm hmac-md5;
        secret "dhvS0tzh2QhK0GpWouix2A==";
};


controls {
        inet 192.168.148.129 port 953
                allow { 192.168.148.129;192.168.148.132; } keys { "rndc-key"; };
};

// inet 選項是打開哪個IP進行Listen動作~
//192.168.148.129 port 953 允許192.168.148.132使用rndc-key連入控制
//192.168.148.129 為Server的IP,port 953則是打開Listen port~可以連入控制

#/etc/init.d/named restart
#netstat -tlnup|grep 953
#rndc reload
(不加參數會帶入/etc/rndc.conf的內容,使用rndc-key連入192.168.148.129的port 953進行reload動作)
(在本機上使用rndc控制本機的DNS server)

如果有192.168.148.129的TCP port 953就表示Server準備就緒~


@Client(OpenSuSE11.1 32Bits 192.168.148.132)
#rndc -s 192.168.148.129 -p 953 reload
rndc: recv failed: connection reset
以上訊息表示連線被拒…無法連入192.168.148.129 port 953進行reload指令~

Server端的/var/log/messages檔案則會出現訊息~
rejected command channel message from 192.168.148.132

為何不能控制DNS server吶~?各位有想到原因嗎?就是沒有拿key去交易啦~
因為還有一些步驟~

首先必須將rndc.key經由安全的方式傳到client這台來~
#scp root@192.168.148.129:/etc/rndc.key /root/

#rndc -k /root/rndc.key -s 192.168.148.129 -p 953 reload

使用-k 選項匯入該key,就可以成功啦~

如果覺得每次都要打那麼長的選項才可以控制DNS server的話…可以這樣
#
vi /etc/rndc.conf

key "rndc-key" {
       algorithm hmac-md5;
       secret "dhvS0tzh2QhK0GpWouix2A==";
 };


options {
        default-key "rndc-key";
        default-server 192.168.148.129;
        default-port 953;
 };

#rndc reload
就可以把rndc.conf檔案預設值帶進來囉~
(使用rndc-key連入192.168.148.129的port 953進行reload動作)

後記:
呼…各位…有沒有什麼心得吶~
還有…千萬別對Server進行stop
就再也不能連進去啦~因為DNS服務停掉了…
連帶打開的953 port也停掉啦~
就得使用其它方法先啟動DNS囉~ >.<

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 creative1223 的頭像
    creative1223

    小蘇的世界

    creative1223 發表在 痞客邦 留言(0) 人氣()