列出动态添加的 DNS 记录

Pat*_*icF 2 domain-name-system bind dynamic-dns

我不知道如何列出动态添加的 DNS 记录。假设我添加了这样的记录:

~$ nsupdate
> update add test.domain.com 3600 A 1.2.3.4
> send
Run Code Online (Sandbox Code Playgroud)

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

~$ dig test.domain.com
Run Code Online (Sandbox Code Playgroud)

我得到了正确的信息。但此条目不会像手动添加的记录一样显示在区域文件中。

如果我在任何地方都看不到记录,我如何知道动态添加了哪些记录?

使用绑定 9.10.3

HBr*_*ijn 5

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

\n

简而言之:区域文件并不是允许动态更新的绝对真理。

\n
\n

使用动态更新对区域所做的所有更改都存储在区域的日志文件中。当第一次动态更新发生时,该文件由服务器自动创建。除非特别覆盖,否则日志文件的名称是通过将扩展名附加.jnl到相应区域文件的名称来形成的。日志文件是二进制格式,不应手动编辑。

\n

服务器偶尔也会将更新区域的完整内容写入(“转储”)到其区域文件中。这并不是在每次动态更新后立即执行,因为当大区域频繁更新时,这会太慢。相反,转储最多会延迟 15 分钟,以便进行其他更新。

\n
\n

....

\n
\n

动态区域的区域文件通常无法手动编辑,因为它们不能保证包含最新的动态更改 \xe2\x80\x94 这些仅在日志文件中。确保动态区域的区域文件是最新的唯一方法是运行rndc stop.

\n

如果您必须手动对动态区域进行更改,则可以执行以下过程:使用 禁用对区域的动态更新rndc freeze zone。这还将删除区域的 .jnl 文件并更新主文件。编辑区域文件。运行rndc thaw zone以重新加载更改的区域并重新启用动态更新。

\n
\n