我有一台运行 CentOS 6 和 Bind 9.8.2 的服务器,它无法解析 1 个特定主机的 DNS,而该主机甚至不是此服务器托管的区域之一。所有其他查询均运行正常,包括查询我遇到问题的域中的其他主机。
从问题服务器
$ dig www.example.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 6139
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.example.com. IN A
$ nslookup -debug www.example.com
Server: x.x.x.x
Address: x.x.x.x#53
------------
QUESTIONS:
www.example.com, type = A, class = IN
ANSWERS:
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
** server can't find www.example.com: SERVFAIL
Server: x.x.x.x
Address: x.x.x.x#53
$ dig en-es.example.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> en-es.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4755
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 1
;; QUESTION SECTION:
;en-es.example.com. IN A
;; ANSWER SECTION:
en-es.example.com. 600 IN A z.z.z.z
来自其他服务器(同一网络内及外部)
$ dig www.example.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58315
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.example.com. IN A
;; ANSWER SECTION:
www.example.com. 324 IN CNAME my.cname.net.
my.cname.net . 20 IN A y.y.y.y
我如何追踪为什么此查询导致 SERVFAIL,从而允许执行下一个逻辑步骤,修复问题。
答案1
今天问题解决了,原来是该域的区域文件出了问题。显然,客户进行了修改,涉及他们所谓的“容器”(假设是区域委派),经过一些 DNS 健康检查后,返回了一些奇怪的错误。他们撤消了更改,一切恢复正常。似乎他们已经委派了子域 www,但没有添加需要适当权限的记录。我相信这导致了某种 DNSSEC 问题,我们的服务器无法解决。