Microsoft 2003 DNS 有时无法查询某些 A 指针,因为它们的 TTL 已过期

Microsoft 2003 DNS 有时无法查询某些 A 指针,因为它们的 TTL 已过期

警告:问题很长:)

我们有一台带有 DNS 服务器的 Win 2003 服务器,它时不时无法为我们提供特定域的某些 A 指针。

我正在运行一个小脚本,它要求提供相关域的 SOA、NS 和 A 记录,有时当 TTL 过期时,DNS 无法再次获取 A 记录,清除缓存可以解决问题。

看一看

当 TTL 过期时,它就起作用了

Thu Apr 29 15:24:20 METDST 2010
dig basefarm.net soa
    basefarm.net.           64908   IN      SOA     ns01.osl.basefarm.net. hostmaster.basefarm.net. 2010042613 86400 3600 2419200 600
    ns01.osl.basefarm.net.  299     IN      A       81.93.160.4
dig basefarm.net ns
    basefarm.net.           64908   IN      NS      ns01.sth.basefarm.net.
    basefarm.net.           64908   IN      NS      ns01.osl.basefarm.net.
    ns01.sth.basefarm.net.  299     IN      A       80.76.149.76
    ns01.osl.basefarm.net.  299     IN      A       81.93.160.4
dig ns01.sth.basefarm.net a
    ns01.sth.basefarm.net.  299     IN      A       80.76.149.76

ns01.sth.basefarm.net 和 ns01.osl.basefarm.net 的 TTL 已过期,但 DNS 设法获取了新值 (TTL 3600)

Thu Apr 29 15:29:20 METDST 2010
dig basefarm.net soa
    basefarm.net.           64608   IN      SOA     ns01.osl.basefarm.net. hostmaster.basefarm.net. 2010042613 86400 3600 2419200 600
    ns01.osl.basefarm.net.  3600    IN      A       81.93.160.4
dig basefarm.net ns
    basefarm.net.           64608   IN      NS      ns01.sth.basefarm.net.
    basefarm.net.           64608   IN      NS      ns01.osl.basefarm.net.
    ns01.sth.basefarm.net.  3600    IN      A       80.76.149.76
    ns01.osl.basefarm.net.  3600    IN      A       81.93.160.4
dig ns01.sth.basefarm.net a
    ns01.sth.basefarm.net.  3600    IN      A       80.76.149.76

但另一次它失败了,我们需要清除 DNS 缓存才能让它重新开始工作......

Thu Apr 29 17:24:23 METDST 2010
dig basefarm.net soa
    basefarm.net.           57705   IN      SOA     ns01.osl.basefarm.net. hostmaster.basefarm.net. 2010042613 86400 3600 2419200 600
    ns01.osl.basefarm.net.  299     IN      A       81.93.160.4
dig basefarm.net ns
    basefarm.net.           57705   IN      NS      ns01.sth.basefarm.net.
    basefarm.net.           57705   IN      NS      ns01.osl.basefarm.net.
    ns01.sth.basefarm.net.  299     IN      A       80.76.149.76
    ns01.osl.basefarm.net.  299     IN      A       81.93.160.4
dig ns01.sth.basefarm.net a
    ns01.sth.basefarm.net.  299     IN      A       80.76.149.76

TTL 已过期,但 DNS 无法获取 ns01.sth.basefarm.net 和 ns01.osl.basefarm.net 的 IP 地址

Thu Apr 29 17:29:23 METDST 2010
dig basefarm.net soa
    basefarm.net.           57405   IN      SOA     ns01.osl.basefarm.net. hostmaster.basefarm.net. 2010042613 86400 3600 2419200 600
    ns01.osl.basefarm.net.  3600    IN      A       81.93.160.4
dig basefarm.net ns
    basefarm.net.           57405   IN      NS      ns01.sth.basefarm.net.
    basefarm.net.           57405   IN      NS      ns01.osl.basefarm.net.
dig ns01.sth.basefarm.net a
    Lookup failed

我对这一点真的很迷茫,并尝试过询问谷歌,但无济于事。

答案1

NS我似乎记得当记录和A记录没有相同的 TTL时, MS DNS 中存在一个错误,但我目前找不到它的详细信息。

目前,我建议最简单的解决方法是更改​​服务器上的 TTL 以匹配父区域中发布的 TTL NS-即 172800s。A.net

答案2

感谢您的正确指导,我想我在 m$ technet 上找到了解决方案

http://support.microsoft.com/kb/938863

明天一定要尝试一下..

答案3

这是我们遇到的一个奇怪的事情,不知道是否适用。Vista/Win7 在对内容进行 IPv6 查询的同时还对 IPv4 进行查询。当 MS-DNS 将它们转发到另一个 DNS 时,如果该 DNS 较旧,它可能会对 IPv6 请求做出“未找到”的响应,这是错误的,并导致 MS-DNS 将 IPv4 记录也标记为未找到,直到您清除缓存或 TTL 过期。

相关内容