Заставить инструмент копать нам ответы с корневых серверов
При выполнении dig
через какой-то сайт (например, www.nasa.gov) с разных сайтов онлайн-инструментов для раскопок (в данном случае http://networking.ringofsaturn.com/Tools/dig.php и http://www.kloth.net/services/dig.php), я заметил, что их ответы разные. Я предполагаю, что это должно означать, что ответы, которые получает каждый из них, не от корневых DNS-серверов, а от локальных (например, их интернет-провайдеров).
Что я хотел бы знать, так это как заставить инструмент dig возвращать информацию с корневых серверов. Это вообще возможно?
Спасибо
3 ответа
Чтобы получить достоверную информацию, используя 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, чтобы найти серверы имен для определенного домена, а затем запросить у этих серверов имен записи ресурсов в этом домене.
Корневые серверы
----------------> Серверы рДВУ
----------------------------------> Авторы серверов имен
---------------------------------------------------------------------> Ресурсные записи
Корневым серверам никогда не следует запрашивать рекурсивный запрос (т. Е.) Для server.example.tld, только о серверах, обрабатывающих домены верхнего уровня (в этом примере -.tld).
Однако я думаю, что вы имеете в виду, что вы хотите получить ответ от авторитетного сервера. Для этого сделайте:
1) Запросите NS, т.е. поле сервера имен, вместо A - адрес IPv4, для домена nasa.gov.
2) Измените поле сервера на один из серверов, полученных в пункте 1).
3) Задайте вопрос об адресе www.nasa.gov.
Такая же процедура работает для любого другого домена, конечно.
Процедура работает для раскопок CLI и с интерфейсом http://www.kloth.net/services/dig.php.