今天早上醒来一堆以下内容:
root@foo:/etc/bind# dig @1.2.3.4 foo.example.com ; <<>> DiG 9.6.1-P2 <<>> @1.2.3.4 foo.example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 36121 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;;foo.example.com. IN A ;; Query time: 0 msec ;; SERVER: 1.2.3.4#53(1.2.3.4) ;; WHEN: Thu Apr 1 09:57:59 2010 ;; MSG SIZE rcvd: 31
虚拟“1.2.3.4”的一些背景。 这是我的域名服务器“farm”中的从属名称服务器。 从技术上讲,我有ns1(作为主)和ns2 / ns3。 目前ns1 / ns2因为维护而closures,所以我把ns3留给了现场stream量。 这就是要点,DNS应该是有弹性的。
现在奇怪的是,“1.2.3.4”在为过去4-5天的服务请求。 今天早上,我接到一个电话,说它没有响应。 经过调查,我看到你在上面看到的消息,SERVFAIL。
我看着区域文件,看到以下内容:
example.com IN SOA ns1.example.com. hostmaster.mail.example.com. (
我想知道,在这一点上,名称服务器认为它不是权威的example.com,并将其调整为以下内容:
example.com IN SOA ns3.example.com. hostmaster.mail.example.com. (
之后,它开始响应example.com的所有权威查询。 我不知道为什么。 我以为这些东西应该从ns1 – > ns3的区域传输归一化?
有人可以请示例为什么发生这种情况,以及如何防止在未来发生? 我从来没有遇到类似的问题,因为我不太了解,所以在这个问题上可能会漏掉一些重要的信息。 所以请让我知道,如果我可以进一步添加任何细节,以使事情更清晰。
还有一点需要注意:我有其他的域名,我认为他们的SOA仍然在说ns1.example.com。 而不是ns3.example.com。 这些域服务请求就好! 他们也停下来是否是时间问题,我必须将SOA更改为ns3.example.com? 这也只是因为ns1和ns2目前离线?
您可能会遇到SOAlogging中“EXPIRE”字段的错误 – 从RFC 1035的 §3.3.13开始:
EXPIRE A 32 bit time value that specifies the upper limit on the time interval that can elapse before the zone is no longer authoritative.
如果主服务器不再响应,该字段将告知辅助服务器服务区域的时间。
在“ns3”上更改区域文件时,是否还重新configuration了BIND,以使该区域被列为“主”而不是“从属”? 如果是这样,那就是改变,而不是实际修复它的第一个SOA领域的变化。