我已经在Ubuntu服务器(Linux)上设置了本地BIND / DNS服务。 它正在正常工作,并让我接收在我们的Apache Web服务中设置的多个主机名的新域请求。 因此,只要这些域的注册机构指向此服务器上的我的域名服务器IP,我就可以托pipeexample1.com,example2.com等站点。
当我查看/etc/resolv.conf时,它会显示“nameserver 127.0.0.1”。
除了每隔一段时间,我的服务器都不能ping通别人的全新域名(前两天创build),而在其他计算机上,它可以ping通。 但是,当我重新启动Ubuntu服务器,它回来了,现在可以ping新的域名就好了。
我们的BINDconfiguration有什么问题?
您需要debugging,下一次主机名称不响应通过发出命令检查问题是否实际上是DNSparsing问题
dig domain_name.ext @127.0.0.1
从服务器,根据输出,你将确定你是否得到一个响应,如果不是,你需要看看日志,看看绑定是否仍在运行。
你的系统没有给你一个解决scheme,他已经给你一个解决办法 。
一个解决scheme将确定为什么你的本地recursion服务器有时不工作,然后解决这个问题。 尝试从@topdog的build议,以certificate这是本地DNS服务器正在播放。 如果是,只需重新启动BIND – 不是整个服务器!
对于它的价值,这听起来像是一种负面的caching效果(参见RFC 2308)。 如果(并且只有)你以前查了一个新的名字,BIND会记住它不存在,并且从其否定的答案caching中返回NXDOMAIN。
负面答案的caching过期时间由两件事情来控制:
minttl字段 bind.conf的max-ncache-ttl设置。 后者设置将SOA中收到的任何值限制为最大值,BIND的默认值为3小时。 你的设置是什么?
无论如何,在同一服务器进程上混合recursion和权威的 DNS并不是最佳实践。
如果您希望在同一个系统上拥有recursion和权限,请将它们作为两个独立的进程运行。 让recursion服务器仅在回送(127.0.0.1)接口上进行监听,使面向公众的权威服务器只服务于其权威的域。
我的sysop终于跟我说,我所要做的就是编辑我的/etc/resolv.conf并在“nameserver 127.0.0.1”之前添加一个额外的条目,所以,我的/etc/resolv.conf现在看起来像这个:
# 8.8.8.8 is Google's free DNS nameserver 8.8.8.8 nameserver 127.0.0.1
这将让我的服务器解决DNS的东西,它不能处理自己。