我已启动并运行 DNS 服务器,该服务器已为我的域配置了区域,并且allow-update
启用了该指令。我在文件中对域进行了初始配置,/var/cache/bind/db.mydomain.com
该文件中有一行$INCLUDE db.aux.mydomain.com
指令,用于从该文件加载记录。
当我使用更新区域时出现了问题,因为 bind通过删除行并将内容直接放入文件中来nsupdate
重写文件。db.mydomain.com
$INCLUDE
db.aux.mydomain.com
db.mydomain.com
我怎样才能防止这种情况发生?
答案1
我认为你无法避免这一点。
当您为区域启用动态更新时,您实际上是将区域文件内容的控制权交给了绑定;您不再被允许直接在文件中进行更改,并且绑定将需要在更新后重写它。
至于$INCLUDE
在这种情况下,如果 bind 要保留 include 语句,它应该做什么?
在进行更新时,是否需要根据需要修改所有引用的文件?
如果某些包含文件被多个区域引用该怎么办?
如果您为添加了一条记录会怎么样foo.aux.mydomain.com
?Bind 不知道文件名对您意味着什么,它不知道要专门在该文件中添加条目。
如果动态更新不应该应用于该子域,那么更好的选择实际上可能是委托并将其作为单独的区域。