Domain-Name-System

列出動態添加的 DNS 記錄

  • November 28, 2019

我不知道如何列出動態添加的 DNS 記錄。假設我添加了這樣的記錄:

~$ nsupdate
> update add test.domain.com 3600 A 1.2.3.4
> send

在此之後,我可以使用以下命令查找子域 test.domain.com:

~$ dig test.domain.com

我得到了正確的資訊。但是這個條目不像手動添加的記錄那樣顯示在區域文件中。

如果我在任何地方都看不到它們,我如何知道動態添加了哪些記錄?

使用綁定 9.10.3

我很抱歉逐字引用手冊,但他們可能是比我更好的作家https://ftp.isc.org/www/bind/arm95/Bv9ARM.ch04.html

簡而言之:當允許動態更新時,區域文件並不是絕對的。

使用動態更新對區域所做的所有更改都儲存在區域的日誌文件中。該文件在第一次動態更新發生時由伺服器自動創建。日誌文件的名稱是通過將擴展.jnl名附加到相應區域文件的名稱來形成的,除非特別被覆蓋。日誌文件為二進制格式,不應手動編輯。

伺服器偶爾也會將更新區域的完整內容寫入(“轉儲”)到其區域文件中。這不會在每次動態更新後立即完成,因為當頻繁更新大區域時,這會太慢。相反,轉儲最多延遲 15 分鐘,從而允許進行其他更新。

….

動態區域的區域文件通常不能手動編輯,因為它們不能保證包含最新的動態更改——這些僅在日誌文件中。確保動態區域的區域文件是最新的唯一方法是執行rndc stop.

如果您必須手動更改動態區域,以下過程將起作用: 使用 禁用對區域的動態更新rndc freeze zone。這也將刪除區域的 .jnl 文件並更新主文件。編輯區域文件。執行rndc thaw zone以重新載入更改的區域並重新啟用動態更新。

引用自:https://serverfault.com/questions/937847