Проверить DNS записи домена можно при помощи консольных утилит host, dig и nslookup. Последняя есть также в Windows системах, в Linux шире всего используется host. dig при этом обладает большим функционалом.
Как проверить DNS записи домена
В Linux системах проверять DNS записи домена удобнее всего при помощи утилиты host
host
Без указания дополнительных параметров вызов host запрашивает A-запись DNS домена
host example.com
example.com has address 123.123.123.123
Требуемый тип записи можно указать непосредственно — например, запросить А-запись (ее значение выводится по-умолчанию, но можно запросить и ее наряду с MX-записями, CNAME и т.д.)
host -t a example.com
example.com has address 123.123.123.123
С флагом -a утилита отработает так же как без флагов, так как это значение по умолчанию.
nslookup
Утилита nslookup работает по сути таким же образом и удобна пользователям, ранее работавшим с Windows. nslookup дает более подробный вывод.
Пример вывода на скриншоте:
Здесь видно, что ответил локальный сервер 127.0.0.53, в ответе для имени три ip адреса и ipv4 и один ip адрес ipv6.
Когда для домена задано несколько А записей DNS выбирается случайная из них (это один из механизмов балансировки).
После проверки А записей до домена запущен ping, по результату видно, что отвечает один из серверов указанных в А записи.
dig
Самым обширным функционалом обладает утилита dig
dig example.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 5638 IN A 123.123.123.123 ;; Query time: 49 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Oct 29 19:02:47 +05 2017 ;; MSG SIZE rcvd: 67
В выводе dig можно заметить строку ;; SERVER: 8.8.8.8#53(8.8.8.8). В ней указан DNS сервер от которого получен ответ, это тот сервер, который определен в /etc/resolv.conf на компьютере.
Часто требуется узнать значение какой-либо записи не дожидаясь обновления зон DNS, оно может занимать до 72 часов.
Сделать это можно обратившись к NS серверу непосредственно, нужный сервер указывается через знак @, после него без пробела имя NS сервера, потом через пробел интересующий нас домен.
dig @ns.somecompany.com example.com
Ответ даст не сервер заданный в /etc/resolv.conf, а указанный в запросе ns.somecompany.com
С ключом +short утилита не будет выдавать расширенного вывода и выдаст только ответ. Отработает также как host
dig +short example.com
123.123.123.123
Утилите dig можно передавать тип DNS записи без дополнительных ключей.
Например, dig mx +short yandex.ru или dig soa +short yandex.ru
Пример проверки приведен на скриншоте:
Таким образом передавая нужное значение можно проверять почтовые DNS записи для домена.
Ключи можно сочетать любым способом, можно запрашивать у определенного NS сервера записи определенного типа для домена.
Также dig можно запускать с ключом +trace, в результате утилита покажет весь процесс разрешения DNS запроса начиная от корневых DNS серверов и заканчивая сервером, который отвечает за доменное имя.