[精讚] [會員登入]
97

DNS slave 要怎麼更新zone,和zone更新有關的指令。

DNS slave 要怎麼更新zone?

分享此文連結 //n.sfs.tw/16559

分享連結 DNS slave 要怎麼更新zone,和zone更新有關的指令。@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2025-12-09 11:25:47 最後編修
2025-11-11 16:38:29 By 張○○
 

自動目錄

zone 傳輸(AXFR / IXFR) 有關的指令為 rndc。

 

確認 slave 的狀態

在slave的主機中

sudo rndc status

# 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]

# sudo rndc zonestatus example.com
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]

# rndc zonestatus example.com
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

 

 

 

 

END

你可能感興趣的文章

ical 的欄位(RFC2445) 最近研究 iCalendar,發現這是一個RFC2445,為了把ics塞到資料庫,得花點時間研究一下RFC。

[Centos7] 升級gcc/gcc-c++ 由5.8版升級到9.3版 Centos7 使用yum安裝的gcc只到4.8.5(2015年版本),想辦法網級到 9.3

[MAC] 香草輸入法 openvanilla+無蝦米 香草輸入法,一個能包含注音、倉頡、大易、無蝦米等眾多輸入法的輸入法

在CISCO上設定NAT和 DHCP 在CISCO上設定NAT和 DHCP

[Analytics GA4] Google analytics 如何新增資源 Google analytics GA4中要怎麼新增資源?

[TCP] TCP關閉的四步程序 TCP關閉的四個步驟

隨機好文

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

為什麼要重造輪子? 什麼輪子?造什麼輪子?我為什麼要重造輪子?

魔球中小女孩唱的歌 The show 魔球中小女孩唱的歌 The show

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper

問問題 問問題其實內涵很深,我悟了很久才懂。 有人問題的目的並不一定是想要得到答案,有時只是純粹想問問題..