每当做任何需要在我的CentOS服务器上进行DNS查找的事情时,我都会收到错误消息.例如.:
[root@15557 etc]# wget http://www.whitehouse.gov/sites/default/files/RSS_viewer/birth-certificate-long-form.pdf --2011-05-03 20:55:35-- http://www.whitehouse.gov/sites/default/files/RSS_viewer/birth-certificate-long-form.pdf Resolving www.whitehouse.gov... Failed: Temporary failure in name resolution. wget: unable to resolve host address `www.whitehouse.gov'
如果我重新启动服务器,那么这个问题会在短时间内消失,但一小时左右就会回来.如果我更改resolv.conf中列出的名称服务器IP,问题就不会得到解决,即使我用普通的名称服务器替换它们,如Google的8.8.8.8.如果我在更改resolve.conf后刷新主机缓存,它也不能解决问题.重新启动服务器后,resolv.conf将更改回其默认值(我猜是通过某些DHCP).
解决方法
这可能是由DHCP服务器引起的问题 – 实际上是由网络上的恶意或其他配置错误的DHCP服务器造成的.
可能会发生以下情况:当您的服务器启动时,它会设法从合法的DHCP服务器获取准确的参数(IP地址,网关,DNS服务器等),因此,在租约之前您不会遇到任何问题续约.在相对较短的时间后(取决于dhcp客户端和服务器配置),DHCP客户端将尝试通过联系合法的DHCP服务器(通过单播传输)来续订租约.如果由于某种原因失败或者您的dhcp客户端由于某种原因未从合法的DHCP服务器获得响应,它将进入重新绑定状态并将广播请求以延长租约时间.如果流氓/其他配置错误的DHCP服务器设法首先响应,它可能会向您的DHCP客户端发送不正确的参数 – 例如“错误的”DNS服务器地址,因此您将无法解析主机名.
如果我的推测是正确的,重新启动服务器并不总能解决问题,因为有时恶意DHCP服务器会首先响应,因此您会遇到您提到的问题.
在任何情况下,请尝试配置静态IP地址,禁用DHCP并手动设置DNS服务器.此外,除了您正在使用的服务器之外,您应该检查网络上是否还有其他任何DHCP服务器正在运行.