Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
howto:utils:dns [2015/01/14 19:54] Алексей Кожевников |
howto:utils:dns [2019/01/17 14:14] (текущий) Алексей Кожевников ↷ Страница перемещена из howto:linux:dns в howto:utils:dns |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Диагностика DNS ====== | ====== Диагностика DNS ====== | ||
- | **host** | + | ===== host ===== |
Программа **host(1)** существует во многих вариантах. В | Программа **host(1)** существует во многих вариантах. В | ||
Строка 9: | Строка 10: | ||
Запрос IP по адресу: | Запрос IP по адресу: | ||
- | <screen> | + | <code> |
- | ''$'' host mail.ru | + | $ host mail.ru |
mail.ru has address 194.67.57.26 | mail.ru has address 194.67.57.26 | ||
mail.ru mail is handled (pri=10) by mxs.mail.ru | mail.ru mail is handled (pri=10) by mxs.mail.ru | ||
- | </screen> | + | </code> |
Как видно, нам сообщили не только IP машины mail.ru, но и некоторую дополнительную информацию (имя почтовой машины и её приоритет). Эта информация приходит от сервера DNS в том же UDP пакете и её получение не требует со стороны программы **host(1)** никаких специальных действий. И всё же, некоторые варианты этой программы могут не сообщать всей информации. | Как видно, нам сообщили не только IP машины mail.ru, но и некоторую дополнительную информацию (имя почтовой машины и её приоритет). Эта информация приходит от сервера DNS в том же UDP пакете и её получение не требует со стороны программы **host(1)** никаких специальных действий. И всё же, некоторые варианты этой программы могут не сообщать всей информации. | ||
Программе можно явно указать сервер DNS, в этом случае запрос будет сделан к нему: | Программе можно явно указать сервер DNS, в этом случае запрос будет сделан к нему: | ||
- | <screen> | + | <code> |
- | ''$'' host mail.ru 194.67.23.130 | + | $ host mail.ru 194.67.23.130 |
Using domain server 194.67.23.130: | Using domain server 194.67.23.130: | ||
Строка 26: | Строка 27: | ||
mail.ru mail is handled (pri=10) by mxs.mail.ru | mail.ru mail is handled (pri=10) by mxs.mail.ru | ||
- | </screen> | + | </code> |
И наконец, можно запросить конкретный тип записи: | И наконец, можно запросить конкретный тип записи: | ||
- | <screen> | + | <code> |
- | ''$'' host -t NS mail.ru | + | $ host -t NS mail.ru |
mail.ru name server ns2.mail.ru | mail.ru name server ns2.mail.ru | ||
mail.ru name server ns3.mail.ru | mail.ru name server ns3.mail.ru | ||
Строка 37: | Строка 38: | ||
mail.ru name server ns.mail.ru | mail.ru name server ns.mail.ru | ||
mail.ru name server ns1.mail.ru | mail.ru name server ns1.mail.ru | ||
- | ''$'' host -t SOA mail.ru | + | $ host -t SOA mail.ru |
mail.ru start of authority ns.mail.ru hostmaster.mail.ru ( | mail.ru start of authority ns.mail.ru hostmaster.mail.ru ( | ||
3209013119 ;serial (version) | 3209013119 ;serial (version) | ||
Строка 46: | Строка 47: | ||
) | ) | ||
- | </screen> | + | </code> |
Опция ''-v'' включает режим verbose. | Опция ''-v'' включает режим verbose. | ||
- | <screen> | + | <code> |
- | ''$'' host -t NS -v mail.ru | + | $ host -t NS -v mail.ru |
Trying null domain | Trying null domain | ||
rcode = 0 (Success), ancount=6 | rcode = 0 (Success), ancount=6 | ||
Строка 68: | Строка 69: | ||
ns4.mail.ru 278118 IN A 194.67.57.4 | ns4.mail.ru 278118 IN A 194.67.57.4 | ||
ns5.mail.ru 278118 IN A 194.67.23.232 | ns5.mail.ru 278118 IN A 194.67.23.232 | ||
- | ''$'' host -t SOA -v mail.ru | + | $ host -t SOA -v mail.ru |
Trying null domain | Trying null domain | ||
rcode = 0 (Success), ancount=1 | rcode = 0 (Success), ancount=1 | ||
Строка 95: | Строка 96: | ||
ns5.mail.ru 277104 IN A 194.67.23.232 | ns5.mail.ru 277104 IN A 194.67.23.232 | ||
- | </screen> | + | </code> |
В последнем случае нам даже явно рекомендуют обращаться за информацией на авторитетные серверы и указывают их адреса. С опцией ''-v'' отчёт программы **host(1)** становится похож на отчёт **dig(1)** (см. ниже) и начинает повтрять синтаксис файла зоны. | В последнем случае нам даже явно рекомендуют обращаться за информацией на авторитетные серверы и указывают их адреса. С опцией ''-v'' отчёт программы **host(1)** становится похож на отчёт **dig(1)** (см. ниже) и начинает повтрять синтаксис файла зоны. | ||
- | ===== **dig** ===== | + | ===== dig ===== |
Утилита **dig(1)** более «разговорчива». Одна из особенностей её отчётов состоит в том, что они даются сразу в формате файла зоны: | Утилита **dig(1)** более «разговорчива». Одна из особенностей её отчётов состоит в том, что они даются сразу в формате файла зоны: | ||
- | <screen> | + | <code> |
- | ''$'' dig mail.ru | + | $ dig mail.ru |
; <<>> DiG 8.3 <<>> mail.ru | ; <<>> DiG 8.3 <<>> mail.ru | ||
Строка 136: | Строка 137: | ||
;; MSG SIZE sent: 25 rcvd: 244 | ;; MSG SIZE sent: 25 rcvd: 244 | ||
- | </screen> | + | </code> |
Символ '';'' в файле зоны является комментарием. Заметим, что мы не требовали от программы **dig(1)** информацию о серверах NS, и всё же он запросил её у сервера DNS. Разумеется, это не вся информация о зоне. | Символ '';'' в файле зоны является комментарием. Заметим, что мы не требовали от программы **dig(1)** информацию о серверах NS, и всё же он запросил её у сервера DNS. Разумеется, это не вся информация о зоне. | ||
Попробуем запросить информацию о записях SOA и MX. | Попробуем запросить информацию о записях SOA и MX. | ||
- | <screen> | + | <code> |
- | ''$'' dig MX mail.ru | + | $ dig MX mail.ru |
; <<>> DiG 8.3 <<>> MX mail.ru | ; <<>> DiG 8.3 <<>> MX mail.ru | ||
Строка 177: | Строка 178: | ||
;; MSG SIZE sent: 25 rcvd: 264 | ;; MSG SIZE sent: 25 rcvd: 264 | ||
- | ''$'' dig SOA mail.ru | + | $ dig SOA mail.ru |
; <<>> DiG 8.3 <<>> SOA mail.ru | ; <<>> DiG 8.3 <<>> SOA mail.ru | ||
Строка 216: | Строка 217: | ||
;; MSG SIZE sent: 25 rcvd: 275 | ;; MSG SIZE sent: 25 rcvd: 275 | ||
- | </screen> | + | </code> |
Для запроса к конкретному серверу DNS его адрес необходимо предварять символом at: | Для запроса к конкретному серверу DNS его адрес необходимо предварять символом at: | ||
- | <screen> | + | <code> |
- | ''$'' dig mail.ru @194.67.23.130 | + | $ dig mail.ru @194.67.23.130 |
; <<>> DiG 8.3 <<>> mail.ru @194.67.23.130 | ; <<>> DiG 8.3 <<>> mail.ru @194.67.23.130 | ||
Строка 255: | Строка 256: | ||
;; MSG SIZE sent: 25 rcvd: 244 | ;; MSG SIZE sent: 25 rcvd: 244 | ||
- | </screen> | + | </code> |
Заметьте, что в этом запросе размеры таймаутов стали более «круглыми» — ровно по 6 часов. Причина в том, что мы задали вопрос авторитетному за эту зону серверу. Ответы, которые мы получали до сих пор мы брали из кешей неавторитетных серверов, поэтому в качестве TTL мы получали время указывающее на то, сколько осталось жить в кеше той или иной записи. | Заметьте, что в этом запросе размеры таймаутов стали более «круглыми» — ровно по 6 часов. Причина в том, что мы задали вопрос авторитетному за эту зону серверу. Ответы, которые мы получали до сих пор мы брали из кешей неавторитетных серверов, поэтому в качестве TTL мы получали время указывающее на то, сколько осталось жить в кеше той или иной записи. | ||
Давайте попробуем узнать с помощью команды dig(1)адреса серверов отвечающих за корневую зону (.) и время жизни записей о корневых серверах. | Давайте попробуем узнать с помощью команды dig(1)адреса серверов отвечающих за корневую зону (.) и время жизни записей о корневых серверах. | ||
- | <screen> | + | <code> |
$ dig NS . | $ dig NS . | ||
Строка 294: | Строка 295: | ||
;; MSG SIZE sent: 17 rcvd: 244 | ;; MSG SIZE sent: 17 rcvd: 244 | ||
- | </screen> | + | </code> |
Очень хорошо, теперь мы знаем что думает о корневых серверах, в настоящий момент обслуживающий нас сервер DNS. Мы видим, что время жизни информации о корневых серверах истечёт через пять дней, один час, восемь минут, двенадцать секунд. Кстати нам, кроме имён корневых серверов, в разделе ADDITIONAL SECTION сказали ещё и адрес одного из серверов. Давайте зададим этот вопрос снова, но теперь не нашему серверу DNS, а сервру j.root-servers.net. с адресом IP 192.58.128.30. Он авторитетен за корневую зону и полученная от него информация будет истиной в последней инстанции. | Очень хорошо, теперь мы знаем что думает о корневых серверах, в настоящий момент обслуживающий нас сервер DNS. Мы видим, что время жизни информации о корневых серверах истечёт через пять дней, один час, восемь минут, двенадцать секунд. Кстати нам, кроме имён корневых серверов, в разделе ADDITIONAL SECTION сказали ещё и адрес одного из серверов. Давайте зададим этот вопрос снова, но теперь не нашему серверу DNS, а сервру j.root-servers.net. с адресом IP 192.58.128.30. Он авторитетен за корневую зону и полученная от него информация будет истиной в последней инстанции. | ||
- | <screen> | + | <code> |
- | ''$'' dig NS . @192.58.128.30 | + | $ dig NS . @192.58.128.30 |
; <<>> DiG 8.3 <<>> NS . @192.58.128.30 | ; <<>> DiG 8.3 <<>> NS . @192.58.128.30 | ||
Строка 345: | Строка 346: | ||
;; MSG SIZE sent: 17 rcvd: 436 | ;; MSG SIZE sent: 17 rcvd: 436 | ||
- | </screen> | + | </code> |
Как видим, истинное время жизни составляет без малого шесть недель (1000 часов). При помощи такого большого TTL сервера пытаются снизить нагрузку на себя. | Как видим, истинное время жизни составляет без малого шесть недель (1000 часов). При помощи такого большого TTL сервера пытаются снизить нагрузку на себя. | ||
Строка 352: | Строка 353: | ||
Наконец, мы можем сделать запрос записи типа TXT, содержащей короткое стихотворение. Это стихотворение мы записали в файл зоны раньше. | Наконец, мы можем сделать запрос записи типа TXT, содержащей короткое стихотворение. Это стихотворение мы записали в файл зоны раньше. | ||
- | <screen> | + | <code> |
- | ''$'' dig TXT poem.house.hcn-strela.ru | + | $ dig TXT poem.house.hcn-strela.ru |
; <<>> DiG 9.3.2 <<>> TXT poem.house.hcn-strela.ru | ; <<>> DiG 9.3.2 <<>> TXT poem.house.hcn-strela.ru | ||
Строка 384: | Строка 385: | ||
;; MSG SIZE rcvd: 376 | ;; MSG SIZE rcvd: 376 | ||
- | </screen> | + | </code> |
- | ===== **nslookup** ===== | + | ===== nslookup ===== |
**nslookup(1)** самая древняя программа из этих трёх. Кроме всего прочего она интересна ещё и тем, что входит в стандартную поставку большинства операционных систем компании MicroSoft. | **nslookup(1)** самая древняя программа из этих трёх. Кроме всего прочего она интересна ещё и тем, что входит в стандартную поставку большинства операционных систем компании MicroSoft. | ||
Её синтаксис несколько напоминает синтаксис команды **host(1)**: | Её синтаксис несколько напоминает синтаксис команды **host(1)**: | ||
- | <screen> | + | <code> |
- | ''$'' nslookup mail.ru | + | $ nslookup mail.ru |
Server: ns.mccme.ru | Server: ns.mccme.ru | ||
Address: 62.117.108.2 | Address: 62.117.108.2 | ||
Строка 400: | Строка 401: | ||
Address: 194.67.57.26 | Address: 194.67.57.26 | ||
- | ''$'' nslookup mail.ru 194.67.23.130 | + | $ nslookup mail.ru 194.67.23.130 |
Server: ns.mail.ru | Server: ns.mail.ru | ||
Address: 194.67.23.130 | Address: 194.67.23.130 | ||
Строка 407: | Строка 408: | ||
Address: 194.67.57.26 | Address: 194.67.57.26 | ||
- | </screen> | + | </code> |
Но главная изюминка **nslookup(1)** состоит в том, что она умеет работать интерактивно: | Но главная изюминка **nslookup(1)** состоит в том, что она умеет работать интерактивно: | ||
- | <screen> | + | <code> |
- | ''$'' nslookup | + | $ nslookup |
Default Server: ns.mccme.ru | Default Server: ns.mccme.ru | ||
Address: 62.117.108.2 | Address: 62.117.108.2 | ||
- | ''>'' server 194.67.23.130 | + | > server 194.67.23.130 |
Default Server: ns.mail.ru | Default Server: ns.mail.ru | ||
Address: 194.67.23.130 | Address: 194.67.23.130 | ||
- | ''>'' set type=MX | + | > set type=MX |
- | ''>'' mail.ru | + | > mail.ru |
Server: ns.mail.ru | Server: ns.mail.ru | ||
Address: 194.67.23.130 | Address: 194.67.23.130 | ||
Строка 438: | Строка 439: | ||
ns5.mail.ru internet address = 194.67.23.232 | ns5.mail.ru internet address = 194.67.23.232 | ||
ns3.mail.ru internet address = 194.67.23.17 | ns3.mail.ru internet address = 194.67.23.17 | ||
- | ''>'' set type=SOA | + | > set type=SOA |
- | ''>'' mail.ru | + | > mail.ru |
Server: ns.mail.ru | Server: ns.mail.ru | ||
Address: 194.67.23.130 | Address: 194.67.23.130 | ||
Строка 463: | Строка 464: | ||
ns5.mail.ru internet address = 194.67.23.232 | ns5.mail.ru internet address = 194.67.23.232 | ||
ns3.mail.ru internet address = 194.67.23.17 | ns3.mail.ru internet address = 194.67.23.17 | ||
- | ''>'' exit | + | > exit |
- | </screen> | + | </code> |
- | Source: http://bezopasnik.org/unix/dok/BSDA-course/ch06s05.html | + | |
+ | Source: http://bezopasnik.org/unix/dok/BSDA-course/ch06s05.html |