我的企业最近为企业内的所有系统部署了DNSfunction。 由于我们的某些服务器出现偶发exception路由错误,我们发现即使服务禁用了反向DNS查找(例如Postfix中的“disable_dns_lookups”和SSH中的“UseDNS no”),RHEL 5似乎仍然执行某种查找服务器自己的/etc/resolv.conf文件中已configuration的名称服务器。
我们期待的configuration是允许名称服务器条目保留在/etc/resolv.conf文件中,但禁用DNS查找可以在各种服务中被禁用。
我知道这些条目是造成这个问题; 当从/ etc / resolv / conf文件中删除名称服务器条目时,系统会非常快速地响应SMTP和SSH(秒)。 当启用域名服务器时,会有10秒的延迟。 我希望通过禁用服务中的DNS查找来解决这个问题。
下面是我看到的行为的一个例子:使用没有名称服务器条目的SSH:
在名称服务器条目中使用SSH:
使用SMTP进行的另一个testing是,当使用TELNET访问PostFix下的服务器的SMTP接口时,在为“RCPT TO”字段指定了有效值之后,接口在返回游标之前暂停10秒,以便协议可以继续,即刻当相同的名称服务器条目被注释掉。
configuration文件中是否还有其他地方,可能在networking或内核级别,这可能会受到影响? 可以启用IPV6导致这个问题?
我认识到这是一个广泛的问题,因为我不能提供有关我的环境的太多细节,并且在Linux服务器本身中有相当多的configuration参数。 如果有人遇到类似的问题,任何帮助或指导解决这个问题将不胜感激。
我只能说Postfix。
disable_dns_lookups=yes将查找委托给getaddrinfo()系统函数。 而且这本身使用DNS系统来检索信息: http : //en.wikipedia.org/wiki/Getaddrinfo
因此,如果使用/etc/resolv.conf和/etc/nsswitch.confconfigurationLinux / UNIX系统,Postfix甚至会使用DNS名称服务器。
没有DNS的邮件服务器是无用的,因为你失去了进行反向查找,RBL查找,域validation和许多其他反垃圾邮件机制的能力。
解决scheme是修复您的DNS设置,以便能够解决除本地主机之外的任何公共Internet域/ IP。
有时候会有安装组播的dns监听器,在ubuntu上删除libnss-mdns包。 系统函数也会使用它,并且可能会造成未parsing地址的延迟。