rndc介紹:
rndc是BIND安裝包提供的一種控制域名服務運行的工具,可以實現在不重啓BIND的情況下對zone及解析記錄等配置進行更新。
軟件包安裝:
首先要安裝BIND軟件包才可以使用rndc工具,rndc和BIND可以不在同一台服務器上部署。
[root@localhost ~]# yum install -y bind
rndc配置部分:
生成rndc的通信密鑰及配置文件,/dev/urandom是Linux下用來生成隨機數的一個文件,這裏使用-r選項調用它是為了生成通信密鑰。
[root@localhost ~]# rndc-confgen -r /dev/urandom > /etc/rndc.conf
編輯剛剛生成的配置文件。
[root@localhost ~]# vim /etc/rndc.conf
轉到第9行,其定義了要管理的BIND服務器的地址,按照需求對其進行修改,本實驗中我的BIND服務器的地址是192.169.1.101.
default-server 192.168.1.101;
BIND配置部分:
使用vim打開rndc的配置文件,轉到第十四行,此行直到末尾都是要加入到/etc/named.conf文件中的,加入後可以按照自己的需求進行修改,比如説第21行的inet選項是用來定義監聽本服務器的哪些接口的(當然是監聽和rndc相連的接口啦),如果想監聽所有接口則將其改為0.0.0.0。第22行是定義此BIND服務器允許接受哪些rndc的管理,將127.0.0.1改成運行rndc的設備的IP地址就行。最後別忘了把註釋去掉,否則配置文件是不生效的。
14 # Use with the following in named.conf, adjusting the allow list as needed: 15 # key "rndc-key" { 16 # algorithm hmac-md5; 17 # secret "YAkaS9u8kADIcBMslszUaw=="; 18 # }; 19 # 20 # controls { 21 # inet 127.0.0.1 port 953 22 # allow { 127.0.0.1; } keys { "rndc-key"; }; 23 # }; 24 # End of named.conf
以下是我的/etc/named.conf文件的完整配置(第40行到末尾是新增的配置),僅供參考,切勿複製。
運行BIND的服務器的IP:192.168.1.101
運行rndc的服務器的IP:192.168.1.100
1 // 2 // named.conf 3 // 4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 5 // server as a caching only nameserver (as a localhost DNS resolver only). 6 // 7 // See /usr/share/doc/bind*/sample/ for example named configuration files. 8 // 9 10 options { 11 listen-on port 53 { any; }; 12 listen-on-v6 port 53 { ::1; }; 13 directory "/var/named"; 14 dump-file "/var/named/data/cache_dump.db"; 15 statistics-file "/var/named/data/named_stats.txt"; 16 memstatistics-file "/var/named/data/named_mem_stats.txt"; 17 allow-query { any; }; 18 recursion yes; 19 20 dnssec-enable yes; 21 dnssec-validation yes; 22 dnssec-lookaside auto; 23 24 /* Path to ISC DLV key */ 25 bindkeys-file "/etc/named.iscdlv.key"; 26 27 managed-keys-directory "/var/named/dynamic"; 28 }; 29 30 logging { 31 channel default_debug { 32 file "data/named.run"; 33 severity dynamic; 34 }; 35 }; 36 37 include "/etc/named.rfc1912.zones"; 38 include "/etc/named.root.key"; 39 40 # Use with the following in named.conf, adjusting the allow list as needed: 41 key "rndc-key" { 42 algorithm hmac-md5; 43 secret "YAkaS9u8kADIcBMslszUaw=="; 44 }; 45 # 46 controls { 47 inet 192.168.1.101 port 953 48 allow { 192.168.1.100; } keys { "rndc-key"; }; 49 }; 50 # End of named.conf
保存後重啓named服務器
[root@localhost ~]# server named restart
使用rndc連接BIND並進行管理
在使用rndc連接BIND前一定要確保兩台Linux服務器的時間同步,否則會報錯(我做實驗的時候卡在這個坑裏整整一天)
可以手工修改系統時間也可以與NTP服務器同步,若你的實驗用機器無法鏈接外網,又不想手工配置時間,則可以參考下面這篇文章,將其中一台機器配置為NTP,供另一台機器同步。
啓動rndc並連接BIND。
[root@localhost ~]# rndc status WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf) version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 CPUs found: 1 worker threads: 1 number of zones: 19 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running
可以看到,上面的輸出信息中包含了一條警告,這個其實沒什麼影響的,如果你有強迫症可以使用下面這條命令開啓動rndc,這樣就不會看到那條警告了。
[root@localhost ~]# rndc -c /etc/rndc.conf status
rndc常用管理命令:
status #顯示bind服務器的工作狀態 reload #重新加載配置文件和區域文件 reload zone_name #重新加載指定區域 reconfig #重讀配置文件並加載新增的區域 querylog #關閉或開啓查詢日誌 dumpdb #將高速緩存轉儲到轉儲文件 (named_dump.db) freeze #暫停更新所有動態zone freeze zone [class [view]]#暫停更新一個動態zone flush [view] #刷新服務器的所有高速緩存 flushname name #為某一視圖刷新服務器的高速緩存 stats #將服務器統計信息寫入統計文件中 stop #將暫掛更新保存到主文件並停止服務器 halt #停止服務器,但不保存暫掛更新 trace #打開debug, debug有級別的概念,每執行一次提升一次級別 trace LEVEL #指定 debug 的級別, trace 0 表示關閉debug notrace #將調試級別設置為 0 restart #重新啓動服務器(尚未實現) addzone zone [class [view]] { zone-options } #增加一個zone delzone zone [class [view]] #刪除一個zone tsig-delete keyname [view]#刪除一個TSIG key tsig-list #查詢當前有效的TSIG列表 validation newstate [view]#開啓/關閉dnssec