反向DNS查找需要5秒钟放弃

我有一个Debian 2.6.26-2-xen-amd64系统,在第二个和第三个失败的反向DNS查询之间需要5秒钟。 所有(大多数?)其他类似的系统在这里做三个查询,他们之间没有什么等待。

我试图找出可能导致差异的原因,但到目前为止,我一直无法这样做。 它可能是什么?

编辑

虽然我用sshdlogin到机器时发现了这个问题,但是知道缓慢的时候,反向dns通常会出现问题,我使用host进行了testing。 这由包host版本20000331-9

这是两台机器上testing的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) 

好的,问题是libnss-mdns软件包,它是作为Java推荐的软件包安装的。

ServFail是一个不正常的情况。 也许更高版本的BIND或parsing器库为ServFail实施更积极的拥塞避免策略? 两台服务器是否运行不同版本的BIND或parsing器库?

由于ServFailexception,指示一些DNS服务器没有响应,发送第三次尝试的延迟通常不应该引起任何额外的问题。 根据我的经验,DNS服务的丢失通常会导致多秒的延迟。

我怀疑,如果你得到NXDOMAIN响应,你可能不会看到许多秒的延迟。

如果问题地址的反向域名的DNS服务器是可联系和响应的,这不会是一个问题?