将 DNS 从一个提供商迁移到另一个提供商时缓存更新

Joh*_*nCC 5 domain-name-system windows-server-2003 cache recursive

这可能是 Windows DNS 特定问题或一般 DNS 最佳实践问题 - 我不确定!

我们将我们的第 3 方 DNS 条款从提供商 A 迁移到提供商 B。

我注意到我们的内部递归 Windows DNS 服务器仍然为指向提供商 A 的服务器的域缓存了 NS 记录,即使几天前我与我们的注册商更改了名称服务器,即使选择缓存记录的属性显示 TTL 为1天。

在此缓存中的 NS 记录过期 24 小时后,DNS 服务器是否会返回 TLD 服务器以更新权限,还是会优先访问 dns1.providera.com,因为这是它缓存的内容?

在这种情况下,我安排让提供商 A 的服务器运行一周以允许更改传播,因此 dns1.providera.com 仍处于活动状态,并且仍会提供表示 dns1.providera.com 的 NS 和 SOA 记录。负责这个域。鉴于这一事实,Windows DNS 服务器是否会返回 TLD 并获取权限更改,还是只是假设一切正常并在其缓存的 NS 记录上更新时间戳?

我想知道确保缓存选择它的最佳方法是什么。我是不是该:-

(1) 将提供者 A 的服务器留在原地并处于活动状态并等待缓存赶上......基本上我们现在正在做的事情似乎有问题 - 可能专门针对 Windows 服务器,或者可能更广泛。(2) 将提供者 A 的服务器留在原地,但更改它们提供的 NS 和/或 SOA 信息以告诉缓存新服务器负责。(3) 在 2*TTL 之后移除提供者 A 的服务器以强制更新剩余的缓存。

(2) 的问题在于,在提供者 A 的系统上,我似乎无法将 NS 或 SOA 信息更改为除他们的服务器之外的任何信息。

(3) 的问题是我不确定 DNS 服务器在这种情况下的行为方式。当它无法访问缓存的名称服务器时,它会刷新缓存并尝试完全递归查找,还是只会返回错误,迫使用户手动清除缓存?

提前致谢!

San*_*an4 -1

并不是真正的答案,只是一些想法。

(3) 的问题是我不确定 DNS 服务器在这种情况下会如何表现。当它无法到达缓存的名称服务器时,它会刷新其缓存并尝试完整的递归查找,还是会返回错误,迫使用户手动清除缓存?

BCP 123第 2.1.1 节建议缓存 DNS 服务器在这种情况下应仅返回错误。(顺便说一句,“用户手动清除缓存”是什么意思?用户不能做任何事情。DNS服务器运营商可以,当然管理员不会关心,甚至不会知道你的服务器无法访问(除非它是权威的) google.com).),因此 (3) 不是一个很好的选择。

至于

24小时后,当该缓存中的NS记录过期时,DNS服务器是否会返回TLD服务器以更新权限

我正要跳起来说“当然它会查询 TLD”,因为否则没有人将永远无法更改他的 DNS 托管。不过,转念一想,有以下几种可能性:

如果某些缓存 DNS 服务器在 NS TTL 过期之前没有收到对您的域的查询,然后在NS TTL 过期收到查询,则缓存服务器不得使用这些过期的 NS,并且除了查询 TLD 之外没有其他选择。但是,如果某些缓存 DNS 服务器不断查询您的域,则每次查询的旧服务器可能会发送 NS 记录的副本(在权限部分),缓存服务器可能会存储其新 TTL 的记录,因此 TTL 从技术上讲可能永远不会过期(?!)

我想 TLD 会被查询只是因为我不敢相信这样一个常见的问题没有解决方案。我希望这里的向导能够启发我们......@Alnitak。