1. 程式人生 > >DNS 05-rndc介紹及使用

DNS 05-rndc介紹及使用

config 而不是 情況 bind9 cpu 記錄 list 帶來 -m

rndc簡介

  • rndc -- Remote Name Domain Controllerr
  • 一個遠程管理bind的工具。
  • 通過這個工具可以在本地或者遠程了解當前服務器的運行狀況。
  • 可以對服務器進行關閉、重載、刷新緩存、增加刪除zone等操作。

rndc原理

  • 使用rndc可以在不停止DNS服務器工作的情況進行數據的更新,使修改後的配置文件生效。
  • 在實際情況下,DNS服務器是非常繁忙的,任何短時間的停頓都會給用戶的使用帶來影響。因此,使用rndc工具可以使DNS服務器更好地為用戶提供服務。
  • 在使用rndc管理bind前需要使用rndc生成一對密鑰文件,一半保存於rndc的配置文件中,另一半保存於bind主配置文件中。
  • rndc的配置文件為/etc/rndc.conf,在CentOS或者RHEL中,rndc的密鑰保存在/etc/rndc.key文件中。
  • rndc默認監聽在953號端口(TCP),其實在bind9中rndc默認就是可以使用,不需要配置密鑰文件。
  • rndc與DNS服務器實行連接時,需要通過數字證書進行認證,而不是傳統的用戶名/密碼方式。
  • 在當前版本下,rndc和named都只支持HMAC-MD5認證算法,在通信兩端使用預共享密鑰。 在當前版本的rndc和named中,唯一支持的認證算法是HMAC-MD5,在連接的兩端使用共享密鑰。
  • 它為命令請求和名字服務器的響應提供 TSIG類型的認證。所有經由通道發送的命令都必須被一個服務器所知道的 key_id 簽名。
  • 為了生成雙方都認可的密鑰,可以使用rndc-confgen命令產生密鑰和相應的配置,再把這些配置分別放入named.conf和rndc的配置文件rndc.conf中。

rndc常用命令

查看幫助

rndc -h

顯示bind服務器的工作狀態

rndc status

重新加載配置文件和區域文件

rndc reload

重新加載指定區域

rndc reload zone_name

重讀配置文件並加載新增的區域

rndc reconfig

關閉或開啟查詢日誌

rndc querylog

將高速緩存轉儲到轉儲文件 (named_dump.db)

rndc dumpdb
  • 需要設置cache文檔輸入目錄,在named.conf裏面設置dump-file "/var/named/data/cache_dump.db"即為dns cache輸入文檔。
  • 註意了這些設置,運行rndc -dumpdb命令後就會在/var/named/data/目錄下導出DNS cache內容,用more cache_dump.db進行查看。

暫停更新所有動態zone

rndc freeze

暫停更新一個動態zone

rndc freeze zone [class [view]]

刷新服務器的所有高速緩存

rndc flush [view]

為某一視圖刷新服務器的高速緩存

rndc flushname name

將服務器統計信息寫入統計文件中

rndc stats

將暫掛更新保存到主文件並停止服務器

rndc stop

停止服務器,但不保存暫掛更新

rndc halt

打開debug, debug有級別的概念,每執行一次提升一次級別

rndc trace

指定 debug 的級別, trace 0 表示關閉debug

  • 調試:顯示程序運行中的詳細信息(會產生I/O,正常情況下建議關閉)
  • 調試級別:0,1,2,3...
  • 提升調試級別:
rndc trace
rndc trace LEVEL

打開查詢日誌:記錄查詢動作(會增加磁盤I/O)

rndc querylog

將調試級別設置為 0

rndc notrace

重新啟動服務器(尚未實現)

rndc restart

增加一個zone

rndc addzone zone [class [view]] { zone-options }

刪除一個zone

rndc delzone zone [class [view]]

刪除一個TSIG key

rndc tsig-delete keyname [view]

詢當前有效的TSIG列表

rndc tsig-list

開啟/關閉dnssec

rndc validation newstate [view]

rndc遠程連接

  • 命令後面可以跟"-s"和"-p"選項連接到遠程DNS服務器,以便對遠程DNS服務器進行管理
  • 但此時雙方的密鑰要一致才能正常連接。
  • 在設置rndc.conf時一定要註意key的名稱和預共享密鑰一定要和named.conf相同,否則rndc工具無法正常工作。
rndc -c /etc/rndc.conf -s 127.0.0.1 -p 953 status

rndc實例

1、查看DNS狀態

[root@dns01 log]# 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.62.rc1.el6_9.5
CPUs found: 8
worker threads: 8
number of zones: 2
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
[root@dns01 log]#

2、使用rndc動態添加一個zone,並在主配置文件named.conf全局配置options下添加 allow-new-zones yes;

# 創建zone文件
vi /var/named/zone/abc.com.zone

# 添加zone
rndc  addzone abc.com ‘{ type master; file  "zone/abc.com.zone";};‘

# 可以使用如下指定view:
addzone abc.com IN view_name ‘{type master; file "zone/abc.com.zone";keys{key;};};‘

# 檢查dig @192.168.36.54 www.abc.com A

DNS 05-rndc介紹及使用