Linux
在動態 BIND 設置上添加靜態 DNS 條目
我有一個 DNS (BIND9) 和 DHCP (ISC-DHCP-SERVER) 設置,當主機獲取 IP 地址時,DHCP 伺服器會動態更新 DNS。我目前正在對我的網路中目前未由 DHCP 處理的部分進行重新子網劃分,並且客戶端可以訪問此子網中的伺服器至關重要。為避免客戶端中斷,我希望創建指向各種伺服器的靜態條目,以便客戶端可以通過其 FQDN 而不是 IP 訪問它們,一旦我更改這些伺服器所在的子網(並且伺服器開始獲取 DHCP 地址)客戶端將不會不必修改任何內容,因為 FQDN 將指向新地址。
由於 DNS 是針對區域動態更新的,因此我無法在區域文件中手動創建記錄,因為它們只會被覆蓋。我想知道的是如何在動態更新的區域中創建(永久直到刪除)靜態條目?在子網更改之前,這些條目將被刪除,然後由 DHCP 使用正確的地址動態重新添加。
要直接回答您的問題,無法在動態區域內將記錄標記為只讀。(至少我知道)
兩種解決方法:
- 如果您絕對確定 DNS 客戶端不會覆蓋您手動創建的記錄,您可以使用
rndc freeze
寫出日誌文件並暫時禁用更新。然後,您可以修改該區域,並使用 重新啟用更新rndc thaw
。問題是,您失去了在凍結期間觸發的所有動態 DNS 更改。您可能已經考慮過這種可能性並已將其駁回。- 醜陋的解決方法:如果您聲明比動態區域更具體的其他區域(即“zone foo.bar.com”比“bar.com”更具體),每個區域都將優先於不太具體的區域。巨大的痛苦,因為它弄亂了你的配置,除了單個記錄之外,每個區域文件都需要
SOA
和記錄。NS``A