Заставить инструмент копать нам ответы с корневых серверов

При выполнении 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.

Другие вопросы по тегам