我有一个 DNS (BIND9) 和 DHCP (ISC-DHCP-SERVER) 设置,其中 DHCP 服务器在主机获取 IP 地址时动态更新 DNS。我目前正在重新划分网络中当前未由 DHCP 处理的部分,并且客户端能够访问此子网中的服务器至关重要。为了避免中断客户端,我希望创建指向各种服务器的静态条目,以便客户端可以通过其 FQDN 而不是 IP 访问它们,并且一旦我更改这些服务器所在的子网(并且服务器开始获取 DHCP 地址),客户端将不必修改任何内容,因为 FQDN 将指向新地址。
由于 DNS 是针对区域动态更新的,因此我无法手动在区域文件中创建记录,因为它们将被覆盖。我想知道如何在动态更新的区域中创建(永久的,直到被删除)静态条目?就在子网更改之前,这些条目将被删除,然后由 DHCP 使用正确的地址动态重新添加。
答案1
直接回答你的问题,没有办法将动态区域内的记录标记为只读。(至少我知道)
两种解决方法:
- 如果您绝对确定 DNS 客户端不会覆盖您手动创建的记录,则可以使用
rndc freeze
写出日志文件并暂时禁用更新。然后,您可以修改区域,并使用 重新启用更新rndc thaw
。问题是,您会丢失冻结期间触发的所有动态 DNS 更改。您可能已经考虑过这种可能性并已将其排除。 - 糟糕的解决方法:如果您声明比动态区域更具体的其他区域(即“区域 foo.bar.com”比“bar.com”更具体),则每个区域都将优先于不太具体的区域。这非常麻烦,因为它会使您的配置变得混乱,并且每个区域文件除了单个记录之外还需要
SOA
记录。NS
A