我们遇到过这样的情况:主 DNS 服务器的记录未在从属 DNS 服务器中更新,因为从属 DNS 服务器的序列号高于主 DNS 服务器的序列号。这怎么可能呢?您有什么看法吗?
答案1
从属设备仅从主设备获取数据。因此,如果从属设备具有串行,123456
那是因为主设备曾经向其发送了具有串行的区域123456
。换句话说,过去某个时间有人在主设备上放置了错误的(高)串行,而从属设备拾取了它,此后从属设备将拒绝所有串行小于其串行的更新。有人注意到了错误并更正了主设备上的串行,但他/她已经太迟了,因为更改已经传播。
可能的解决方案包括:
(更好)更新主服务器,使其具有比所有从服务器的所有序列更高的新序列。然后它将自动传播并修复所有从服务器。不幸的是,这可能意味着放弃推荐的 YYYYMMDDX 序列格式(或不放弃 - 取决于确切的问题。它可以稍后通过环绕修复来修复)。
(更糟糕的是)手动删除损坏的从属服务器上的区域并重新启动其名称服务器。然后它们将从主服务器获取具有序列的区域并正常进行。但请注意,在这种情况下,全球缓存名称服务器将保留 SOA 记录中指定的时间的陈旧数据,这可能是一个问题,具体取决于您的情况。