При использовании "dig host.name.here.com A" я получаю SERVFAIL и не отвечаю. Но когда я делаю «копаю host.name.here.com ЛЮБОЙ», я получаю NOERROR, и он возвращает запись A.
Есть идеи, что может быть не так с данным доменом?
Ниже приведен очищенный пример. То же самое происходит, когда я использую другие @dns_servers:
user@server1:~$ dig host.name.here.com A
; <<>> DiG 9.7.3 <<>> host.name.here.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 19887
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;host.name.here.com. IN A
;; Query time: 3719 msec
;; SERVER: 172.16.1.5#53(172.16.1.5)
;; WHEN: Fri Feb 15 01:17:10 2013
;; MSG SIZE rcvd: 39
user@server1:~$ dig host.name.here.com ANY
; <<>> DiG 9.7.3 <<>> host.name.here.com ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24213
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;host.name.here.com. IN ANY
;; ANSWER SECTION:
host.name.here.com. 20 IN A 1.2.3.4
;; Query time: 88 msec
;; SERVER: 172.16.1.5#53(172.16.1.5)
;; WHEN: Fri Feb 15 01:21:45 2013
;; MSG SIZE rcvd: 55
SERVFAIL, занимающий 3,7 секунды, интересен, он намного ниже любого обычного значения тайм-аута. dig
без @
будет использовать вашу локальную конфигурацию преобразователя. Вы должны устранить это как причину.
Непосредственно проверить все резолверы компании, в свою очередь, это должно работать в целом (но не в некоторых случаях):
for ns in $(dig +short company.com ns); do
dig @$ns host.company.com any;
done
Затем по очереди проверьте все свои резолверы:
for ns in $(awk '/nameserver/{print $2}' /etc/resolv.conf); do
dig @$ns host.company.com any;
done
Обычно наблюдается обратная проблема: проблемы с получением «ЛЮБОЙ», потому что ответ слишком велик, или межсетевой экран / IPS отбрасывает «ЛЮБОЙ» запросы.