При выполнении dig
на каком-либо сайте (например, www.nasa.gov) с разных сайтов с онлайн-инструментами поиска (в данном случае http://networking.ringofsaturn.com/Tools/dig.php и http://www.kloth.net/services/dig.php), Я заметил, что у них разные ответы. Я думаю, это должно означать, что ответы, которые каждый из них получает, исходят не от корневых DNS-серверов, а от локальных (например, их интернет-провайдеров).
Я бы хотел знать, как заставить инструмент копания возвращать информацию с корневых серверов. Это вообще возможно?
Спасибо
Чтобы получить достоверную информацию с помощью dig, вы обычно используете комбинацию + trace и @server. Например, если мне нужна авторитетная информация о www.google.com, я бы сделал это так:
# dig +trace NS google.com
; <<>> DiG 9.4.2-P2 <<>> +trace NS google.com
;; global options: printcmd
. 3600000 IN NS L.ROOT-SERVERS.NET.
. 3600000 IN NS M.ROOT-SERVERS.NET.
. 3600000 IN NS D.ROOT-SERVERS.NET.
. 3600000 IN NS I.ROOT-SERVERS.NET.
. 3600000 IN NS H.ROOT-SERVERS.NET.
. 3600000 IN NS F.ROOT-SERVERS.NET.
. 3600000 IN NS C.ROOT-SERVERS.NET.
. 3600000 IN NS G.ROOT-SERVERS.NET.
. 3600000 IN NS B.ROOT-SERVERS.NET.
. 3600000 IN NS K.ROOT-SERVERS.NET.
. 3600000 IN NS E.ROOT-SERVERS.NET.
. 3600000 IN NS A.ROOT-SERVERS.NET.
. 3600000 IN NS J.ROOT-SERVERS.NET.
;; Received 244 bytes from 192.168.0.42#53(192.168.0.42) in 3 ms
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
;; Received 488 bytes from 128.8.10.90#53(D.ROOT-SERVERS.NET) in 129 ms
google.com. 172800 IN NS ns2.google.com.
google.com. 172800 IN NS ns1.google.com.
google.com. 172800 IN NS ns3.google.com.
google.com. 172800 IN NS ns4.google.com.
;; Received 164 bytes from 192.31.80.30#53(d.gtld-servers.net) in 149 ms
google.com. 345600 IN NS ns4.google.com.
google.com. 345600 IN NS ns3.google.com.
google.com. 345600 IN NS ns2.google.com.
google.com. 345600 IN NS ns1.google.com.
;; Received 164 bytes from 216.239.32.10#53(ns1.google.com) in 32 ms
Теперь у меня есть серверы имен, перечисленные для google.com, а также IP-адрес одного из них. Я могу напрямую запросить у этого сервера имен записи:
# dig www.google.com @216.239.32.10
; <<>> DiG 9.4.2-P2 <<>> www.google.com @216.239.32.10
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24224
;; flags: qr aa rd; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 604800 IN CNAME www.l.google.com.
www.l.google.com. 300 IN A 209.85.148.104
www.l.google.com. 300 IN A 209.85.148.103
www.l.google.com. 300 IN A 209.85.148.99
www.l.google.com. 300 IN A 209.85.148.105
www.l.google.com. 300 IN A 209.85.148.106
www.l.google.com. 300 IN A 209.85.148.147
;; Query time: 34 msec
;; SERVER: 216.239.32.10#53(216.239.32.10)
;; WHEN: Fri Apr 29 15:22:40 2011
;; MSG SIZE rcvd: 148
Корневые серверы не отвечают на запросы для доменов второго уровня. Серверы gTLD не отвечают на запросы для доменов второго уровня (за исключением возврата серверов имен для доменов второго уровня). Авторитарные серверы имен для домена второго уровня отвечают на запросы для этого домена второго уровня. Вы можете запросить gTLD, чтобы найти серверы имен для определенного домена, а затем запросить у этих серверов имен записи ресурсов в этом домене.
Корневые серверы
----------------> Серверы gTLD
----------------------------------> Серверы авторизации имен
-------------------------------------------------- -------------------> Записи ресурсов
Корневым серверам никогда не следует запрашивать рекурсивный запрос (т.е.) для server.example.tld, только о серверах, обрабатывающих домены верхнего уровня (.tld в примере).
Однако я думаю, что вы хотите получить ответ от авторитетного сервера. Для этого выполните:
1) Запросите NS, т.е. поле сервера имен, вместо A - IPv4-адреса для домена nasa.gov
2) Измените поле сервера на один из серверов, полученных в пункте 1).
3) Задайте вопрос об адресе www.nasa.gov.
Конечно, такая же процедура работает для любого другого домена.
Процедура работает для раскопок CLI и с http://www.kloth.net/services/dig.php интерфейс.