Инструменты пользователя

Инструменты сайта


howto:utils:dns

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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
howto/utils/dns.1421254448.txt.gz · Последние изменения: 2015/01/14 19:54 — Алексей Кожевников