Хорошо, у меня есть поддомен news.247dist.com, если я копать любой этот домен я получаю:
; <<>> DiG 9.4.3-P3 <<>> news.247dist.com any
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36179
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;news.247dist.com. IN ANY
;; ANSWER SECTION:
news.247dist.com. 259018 IN NS b.ns.broadmail.de.
news.247dist.com. 259018 IN NS a.ns.broadmail.de.
news.247dist.com. 2382 IN SOA a.ns.broadmail.de. hostmaster.news.247dist.com. 1274182332 16384 2048 1048576 2560
;; ADDITIONAL SECTION:
a.ns.broadmail.de. 718 IN A 193.169.180.254
b.ns.broadmail.de. 718 IN A 193.169.181.254
;; Query time: 0 msec
;; SERVER: 80.67.16.6#53(80.67.16.6)
;; WHEN: Wed May 19 17:21:16 2010
;; MSG SIZE rcvd: 160
Проблема в том, что если я раскопаю какой-либо этот поддомен и спрошу один из этих серверов NS в приведенном выше раскопке, я получу:
; <<>> DiG 9.4.3-P3 <<>> any @a.ns.broadmail.de news.247dist.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3887
;; flags: qr aa rd; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;news.247dist.com. IN ANY
;; ANSWER SECTION:
news.247dist.com. 2560 IN SOA a.ns.broadmail.de. hostmaster.news.247dist.com. 1274182332 16384 2048 1048576 2560
news.247dist.com. 900 IN NS a.ns.broadmail.de.
news.247dist.com. 900 IN NS b.ns.broadmail.de.
news.247dist.com. 900 IN MX 0 mail.srv2.de.
news.247dist.com. 900 IN TXT "v=spf1 ip4:213.61.69.122/32 ip4:193.169.180.0/23 -all"
news.247dist.com. 900 IN A 193.169.180.252
;; ADDITIONAL SECTION:
a.ns.broadmail.de. 900 IN A 193.169.180.254
b.ns.broadmail.de. 900 IN A 193.169.181.254
mail.srv2.de. 900 IN A 193.169.180.201
;; Query time: 23 msec
;; SERVER: 193.169.180.254#53(193.169.180.254)
;; WHEN: Wed May 19 17:26:33 2010
;; MSG SIZE rcvd: 284
Так почему я не получаю второй результат, если я просто копай любые новости.247dist.com?
Причина разницы в том, что когда вы спрашиваете рекурсивное кеширование DNS-сервер для ANY
ответить, он может бесплатно ответить тем, что есть в его кеше в это время.
Если в кеше вообще ничего нет, он будет искать NS
записи для домена, SOA
record придет вместе с вами, и, следовательно, это все, что возвращается в ответ на ваш запрос.
Кеш не отправляет ANY
запрос до самого авторитетный серверы, которые обычно выдают как можно больше данных в ответ на такой запрос, как показано во втором примере.
Чтобы правильно увидеть этот эффект, сделайте следующее:
% dig news.247dist.com ANY
.... [as before]
% dig news.247disk.com MX
.... [get the MX records]
% dig news.247dist.com ANY
.... [list now inclues the MX records]
% dig news.247disk.com TXT
.... [get the SPF TXT records]
% dig news.247dist.com ANY
.... [list now inclues those too]
ваши серверы имен, кажется, предоставляют данные, any
запрос не раскрывает mx
записей, но если вы выполните `dig mx news.247dist.com, он вернет записи mx для вашего домена.
Я думаю, что существует разница в конфигурации используемых вами серверов имен, которая не позволяет другому DNS-серверу запрашивать DNS для вашего домена и просить его вернуть все записи.
Я не могу найти подтверждающую документацию, но предполагаю, что когда вы запрашиваете сервер имен, который не является SOA домена (начало полномочий), ответом будет всего несколько общих записей, поскольку для NS запрос на все записи из SOA, когда один сервер в конвейере может знать основные записи и иметь возможность быстрее их вернуть.
Я вижу сообщение «ВНИМАНИЕ: рекурсия запрошена, но недоступна». Странный...