zone 傳輸(AXFR / IXFR) 有關的指令為 rndc。
確認 slave 的狀態
在slave的主機中
sudo rndc status
version: 9.9.4-RedHat-9.9.4-61.el7_5.1 <id:8f9657aa>
CPUs found: 8
worker threads: 8
UDP listeners per interface: 8
number of zones: 834
debug level: 0 <== 見下面說明
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 25/0/1000
tcp clients: 4/100 <== 連線中/最大 連線tcp用戶數
server is up and running
debug level: 0
0:表示沒有開除錯模式(預設值)。
如果你用 rndc trace 或 rndc trace N(例如 rndc trace 3)開啟除錯層級,這個值就會變高。
可以用 rndc notrace 關閉除錯。
xfers running: 0
xfers = zone transfers(區域傳輸)。這表示目前正在進行的 zone 傳輸數量。
0 → 沒有正在同步的 zone。
如果 slave 正在從 master 抓 zone(AXFR / IXFR),這個數字會暫時變成 1 或更多。
可用 rndc status 觀察同步是否卡住。
xfers deferred: 0
這表示等待中的 zone 傳輸數量。
有時候同時要同步的 zone 太多,或 transfers-in 限制太低(見 named.conf),
其他 zone 傳輸就會被「暫緩(deferred)」。
0 表示目前沒有等待的 zone 傳輸。
若看到非 0(例如 3),就代表有 3 個 zone 正在排隊等待同步。
可以在 options 區塊調整:
options {
transfers-in 10; // 預設是 10
};
recursive clients: 25/0/1000
格式:目前遞迴查詢數 / 被拒絕的遞迴請求 / 最大可容許的遞迴查詢量
確認slave 單一個zone
使用 rndc zonestatus 指令來查看單一個zone的更新情況,很適合拿來糾錯,例如要查詢 example.com 這個網域目前情況。
這個指令可在 slave 或master下。
[MASTER]
name: example.com
type: primary
files: host/example.com.static
serial: 2022112751
nodes: 788
last loaded: Tue, 11 Nov 2025 03:53:29 GMT
secure: no
dynamic: yes
frozen: no
reconfigurable via modzone: no
[SLAVE]
name: example.com
type: slave
files: slave/example.com.hosts
serial: 2022112751
nodes: 788
last loaded: Thu, 20 Nov 2025 05:03:32 GMT
next refresh: Tue, 09 Dec 2025 11:45:34 GMT
expires: Thu, 08 Jan 2026 02:39:42 GMT
secure: no
dynamic: no
reconfigurable via modzone: no
上面欄位的意思:
dynamic: yes/no
表示 這個 zone 是否允許動態更新(Dynamic DNS, DDNS)。
✔ dynamic = no
不允許 使用 nsupdate 或 DHCP 自動更新 DNS 記錄。
區域檔案是 靜態 zone file(例如 .hosts),只有手動修改 zone file + reload 才會更新。
不會產生 .jnl 日誌檔(journal file)。
✔ dynamic = yes
表示此 zone 是 動態區域。
允許以下方式修改 DNS:
- nsupdate
- DHCP server 更新區域記錄
- TSIG 驗證的動態更新
frozen: yes/no
frozen: yes/no 是專門針對 dynamic zone(動態區域) 的狀態標記
frozen: no 時這個 zone 處於正常狀態,允許動態更新(如果 dynamic=yes)、允許寫入 .jnl 檔、zone file 可以被 BIND 自動更新。
也就是 正常可寫、可動態更新。
當 zone 變成 frozen(凍結)時:
- BIND 停止寫入 .jnl(journal 檔案)
- zone 變成唯讀(read-only)
- 不允許動態更新(nsupdate)
- BIND 也不會把 .jnl 的內容寫回 zone file
凍結zone
rndc freeze example.com
解凍zone
rndc thaw example.com
reconfigurable via modzone: yes / no
表示這個 zone 是否能透過 named 自身的 “inline reconfiguration” 來修改 zone 設定。
這通常與 BIND 的 modzone API / Inline Signing / Dynamic Update 有關。
✔ reconfigurable via modzone = no
此 zone 的設定(如 master/slave, allow-update, options)
不能透過 rndc 或動態方式直接修改。
若要變更設定,你需要:
修改 named.conf
reload / restart named
✔ reconfigurable via modzone = yes
表示 zone 設定可以在 BIND 運作中修改,例如:
自動新增 NSEC/NSEC3 設定
inline signing 自動調整
動態套用某些 zone options
不需修改 named.conf
刪除 zone 快取再 reload
sudo rndc freeze example.com
sudo rm /var/named/slaves/db.example.com
sudo rndc thaw example.com
這是比較暴力但有效的方法。
freeze:暫停該 zone 的寫入活動。
thaw:解除 freeze 並重新讀取 zone(會觸發 zone 重新同步)。
其它指令
手動加入更新的排程
rndc refresh example.com
強制重抓 zone
rndc retransfer example.com
重新載入設定
rndc reload