我有一台 Debian 2.6.26-2-xen-amd64 系统,第二次和第三次失败的反向 DNS 查找之间间隔 5 秒。这里所有(大多数?)其他类似系统在进行三次查找时都几乎不会等待。
我试图找出导致这种差异的原因,但到目前为止,我还没有找到答案。可能是什么原因呢?
编辑
虽然我已经在使用 sshd 登录到机器时观察到了这个问题,但我知道速度慢通常是反向 DNS 的问题,我已使用 进行了测试。这是由版本 的host
软件包提供的。host
20000331-9
这是在两台机器上测试的 tcpdump 输出。
有延迟的主机:
11:47:58.883885 IP 192.168.20.127.48797 > 172.16.1.1.53: 13275+ PTR? 30.4.16.172.in-addr.arpa. (42)
11:47:58.884258 IP 172.16.1.1.53 > 192.168.20.127.48797: 13275 ServFail 0/0/0 (42)
11:47:58.884326 IP 192.168.20.127.34876 > 172.16.1.1.53: 13275+ PTR? 30.4.16.172.in-addr.arpa. (42)
11:47:58.884804 IP 172.16.1.1.53 > 192.168.20.127.34876: 13275 ServFail 0/0/0 (42)
11:48:03.892639 IP 192.168.20.127.43032 > 172.16.1.1.53: 21337+ PTR? 30.4.16.172.in-addr.arpa. (42)
11:48:03.893282 IP 172.16.1.1.53 > 192.168.20.127.43032: 21337 ServFail 0/0/0 (42)
立即主持:
11:15:58.222147 IP 192.168.21.26.50046 > 172.16.1.1.53: 2040+ PTR? 30.4.16.172.in-addr.arpa. (42)
11:15:58.222611 IP 172.16.1.1.53 > 192.168.21.26.50046: 2040 ServFail 0/0/0 (42)
11:15:58.222718 IP 192.168.21.26.51288 > 172.16.1.1.53: 2040+ PTR? 30.4.16.172.in-addr.arpa. (42)
11:15:58.223102 IP 172.16.1.1.53 > 192.168.21.26.51288: 2040 ServFail 0/0/0 (42)
11:15:58.223197 IP 192.168.21.26.36545 > 172.16.1.1.53: 20425+ PTR? 30.4.16.172.in-addr.arpa. (42)
11:15:58.223550 IP 172.16.1.1.53 > 192.168.21.26.36545: 20425 ServFail 0/0/0 (42)
答案1
好的,问题出在这个libnss-mdns
包上,它作为 Java 的推荐包安装。
答案2
ServFail
是一种异常情况。也许更高版本的 BIND 或解析器库针对 ServFail 实施了更积极的拥塞避免策略?两台服务器是否运行不同版本的 BIND 或解析器库?
由于 ServFail 是不常见的,表示某些 DNS 服务器没有响应,因此延迟发送第三次尝试通常不会给您带来任何其他问题。根据我的经验,DNS 服务中断通常会导致数秒的延迟。
我怀疑如果您收到了 NXDOMAIN 响应,您可能不会看到几秒钟的延迟。
如果所讨论地址的反向域的 DNS 服务器可联系且响应迅速,这不是问题吗?