Mam serwer z systemem CentOS 6 z Bind 9.8.2, który nie rozpoznaje DNS dla jednego konkretnego hosta, który nie jest nawet jedną ze stref obsługiwanych przez ten serwer. Wszystkie pozostałe zapytania działają poprawnie, w tym zapytania dotyczące innych hostów w domenie, z którą mam problem.
Z serwera problemów
$ 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
Z innych serwerów (zarówno w tej samej sieci, jak i poza nią)
$ 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
Jak wyśledzić, dlaczego to zapytanie powoduje, że SERVFAIL pozwala na następny logiczny krok, rozwiązując problem.