Как да използвате командата dig в Linux

Нека да разчленим това парче по парче.

; > DiG 9.11.3-1ubuntu1.11-Ubuntu > wdzwdz.com ;; глобални опции: +cmd ;; Получих отговор: ;; ->>ЗАГЛАВКА

Сега, ето какво означава всичко това:

Първи ред: Версията на dig и домейна, който е бил запитан.
Глобални опции: Както ще видим, можете да използвате dig за заявка за няколко домейна едновременно. Този ред показва опциите, които са били приложени към всички заявки за домейн. В нашия прост пример това беше просто опцията +cmd (команда) по подразбиране.
Код на операцията: Заявка: Това е типът на заявената операция, която в този случай е била заявка. Тази стойност може също да бъде iquery за обратна заявка или състояние, ако просто тествате състоянието на DNS системата.
Състояние: Noerror: Нямаше грешки и заявката беше правилно разрешена.
ID: 12017: Този произволен идентификатор свързва заявката и отговора заедно.
Флагове: qr rd ra: Те означават заявка, желана рекурсия и налична рекурсия. Рекурсията е една от формите на DNS търсене (другата е итеративна). Може също да видите AA, което означава авторитетен отговор, което означава, че отговорът е предоставен от авторитетен сървър за имена.
Заявка: 1: Броят на заявките в тази сесия, която беше една.
Отговор: 4: Броят на отговорите в този отговор, който е четири.
Authority: 0: Броят на отговорите, дошли от авторитетен сървър за имена, който в този случай беше нула. Отговорът беше върнат от кеша на DNS прекурсор сървър. В отговора няма да има авторитетен раздел.
Допълнително: 1: Има една допълнителна информация. (Странно, нищо не е посочено, освен ако тази стойност не е две или по-висока.)

Изберете псевдосекция

След това виждаме следното в Opt Pseudosection:

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494

Нека разбием това:

EDNS: версия 0: Версията на Разширителна система за DNS това се използва. EDNS предава разширени данни и флагове чрез разширяване на размера на Протокол за потребителска дейтаграма (UDP) пакети. Това се обозначава с флаг с променлив размер.
флагове: Не се използват флагове.
udp: 4096: Размерът на UDP пакета.

Раздел за въпроси

В секцията Въпрос виждаме следното:

;; QUESTION SECTION:
;wdzwdz.com. IN A

Ето какво означава това:

wdzwdz.com: Името на домейна, което питаме.
IN: Правим заявка за интернет клас.
О: Освен ако не посочим друго, dig ще поиска запис A (адрес) от DNS сървъра.

Раздел за отговори

Разделът „Отговори“ съдържа следните четири отговора, които получихме от DNS сървъра:

wdzwdz.com. 3551 IN A 151.101.194.217
wdzwdz.com. 3551 IN A 151.101.130.217
wdzwdz.com. 3551 IN A 151.101.66.217
wdzwdz.com. 3551 IN A 151.101.2.217

Ето какво означават тези отговори:

  Как да настроите DLNA сървър на Linux

3551: Това е времето за живот (TTL), 32-битово цяло число със знак, което съдържа интервала от време, за който може да се кешира запис. Когато изтече, данните трябва да се използват в отговор на заявка, докато не бъдат обновени от DNS сървъра.
IN: Направихме заявка за интернет клас.
О: Поискахме A запис от DNS сървъра.

Статистически раздел

Статистиката е последният раздел и съдържа следната информация:

;; Query time: 0 msec 
;; SERVER: 127.0.0.53#53(127.0.0.53) 
;; WHEN: Sun Mar 22 07:44:37 EDT 2020 
;; MSG SIZE rcvd: 106

Ето какво имаме:

Време на заявка: 0 msec: Времето, необходимо за получаване на отговора.
СЪРВЪР: 127.0.0.53#53(127.0.0.53): IP адресът и номерът на порта на DNS сървъра, който е отговорил. В този случай той сочи към локалния кеширащ преобразувател. Това препраща DNS заявки към конфигурираните DNS сървъри нагоре по веригата. На тестовия компютър Manajro адресът, посочен тук, беше 8.8.8.8#53, което е Обществената DNS услуга на Google.
КОГА: нд 22 март 07:44:37 EDT 2020 г.: Кога е направена заявката.
MSG SIZE rcvd: 106: Размерът на съобщението, получено от DNS сървъра.

Да бъдеш селективен

Не е нужно да се задоволявате с двете крайности – стиснати устни и красноречиви. Командата dig ви позволява избирателно да включвате или изключвате секции от резултатите.

Следните опции за заявка ще премахнат този раздел от резултатите:

+nocomments: Не показвайте редове за коментари.
+noauthority: Не показвайте секцията за права.
+noadditional: Не показвайте допълнителния раздел.
+nostats: Не показвайте раздела за статистика.
+noanswer: Не показвайте секцията за отговори.
+noall: Не показвай нищо!

Опцията за заявка +noall обикновено се комбинира с една от горните, за да включи раздел в резултатите. Така че, вместо да пишете дълъг низ от опции за заявка, за да изключите множество секции, можете да използвате +noall, за да ги изключите всички.

След това можете да използвате следните опции за включваща заявка, за да включите отново тези, които искате да видите:

+коментари: Показване на редове за коментари.
+авторитет: Показване на секцията с права.
+допълнителен: Показване на допълнителния раздел.
+статистика: Показване на раздела със статистики.
+отговор: Показване на раздела за отговори.
+всички: Покажи всичко.

Пишем следното, за да направим заявка и да изключим редовете за коментари:

dig wdzwdz.com +nocomments

В

Ако използваме опцията за заявка +noall самостоятелно, както е показано по-долу, няма да получим никакъв полезен изход:

dig wdzwdz.com +noall

В

Можем избирателно да добавим секциите, които искаме да видим. За да добавим секцията за отговори, въвеждаме следното:

dig wdzwdz.com +noall +answer

В

Ако напишем следното, за да включим +stats, ще видим и секцията със статистически данни:

dig wdzwdz.com +noall +answer +stats

В

Комбинацията +noall +отговор се използва често. Можете да добавите други секции към командния ред, както е необходимо. Ако искате да избегнете въвеждането на +noall +answer в командния ред всеки път, когато използвате dig, можете да ги поставите в конфигурационен файл, наречен „.digrc“. Намира се във вашата домашна директория.

  Как да деактивирате защитната стена на UFW в Linux

Пишем следното, за да създадем такъв с ехо:

echo "+noall +answer" > $HOME/.digrc

След това можем да напишем следното, за да проверим съдържанието му:

cat .digrc

В $HOME/.digrc“ и „cat .digrc“ команди в прозорец на терминал.“ ширина = „646“ височина = „122“ >

Тези две опции вече ще се прилагат за всички бъдещи употреби на dig, както е показано по-долу:

dig ubuntu.org
dig linux.org
dig github.com

Този конфигурационен файл dig ще се използва за останалите примери в тази статия.

DNS записи

Информацията, върната към вашите заявки за копаене, се изтегля от различни типове записи, съхранявани на DNS сървъра. Освен ако не поискаме нещо различно, dig запитва записа A (адрес). Следните са типовете записи, които обикновено се използват с dig:

A Запис: Свързва домейна с IP адрес от версия 4.
MX Record: Обменът на поща записва директни имейли, изпратени до домейни до правилния пощенски сървър.
NS запис: Записите на сървъра за имена делегират домейн (или поддомейн) на набор от DNS сървъри.
TXT запис: Текстовите записи съхраняват текстова информация относно домейна. Обикновено те могат да се използват за потискане на фалшиви или подправени имейли.
SOA запис: Началото на авторитетните записи може да съдържа много информация за домейна. Тук можете да намерите основния сървър за имена, отговорната страна, времева марка за промени, честота на опресняване на зоната и серия от времеви ограничения за повторни опити и изоставяне.
TTL: Времето за живот е настройка за всеки DNS запис, която определя колко дълго DNS прекурсор сървър има право да кешира всяка DNS заявка. Когато това време изтече, данните трябва да бъдат обновени за последващи заявки.
ВСЕКИ: Това казва на dig да върне всеки тип DNS запис, който може.

Посочването на типа запис A не променя действието по подразбиране, което е да се запита адресният запис и да се получи IP адреса, както е показано по-долу:

dig redhat.com A

В

За да потърсим записите за обмен на поща, използваме следния MX флаг:

dig yahoo.com MX

В

Флагът на сървъра за имена връща следното име на главните сървъри за имена, свързани с домейна от най-високо ниво:

dig fedora.com NS

В

За да поискаме началото на авторитетния запис, въвеждаме следния SOA флаг:

dig manjaro.com SOA

В

TTL флагът ще ни покаже времето, което трябва да живеем за данните в кеша на DNS сървъра. Ако направим серия от заявки, виждаме, че времето за живот намалява до нищо и след това се връщаме към началната му стойност.

  Как да зададете променливи на средата в Bash на Linux

Пишем следното:

dig usa.gov TTL

В

За да видите текстовите записи, въвеждаме флага TX:

dig usa.gov TXT

В

Посочване на DNS сървъра

Ако искате да използвате конкретен DNS сървър за вашата заявка, можете да използвате знака at (@), за да го предадете на dig като параметър на командния ред.

С DNS сървъра по подразбиране (вижте по-долу), dig препраща към локалния кеширащ преобразувател на 127.0.0.53.

dig usa.gov +stats

Сега въвеждаме следното, за да използваме публичния DNS сървър на Google на 8.8.8.8:

dig @8.8.8.8 usa.gov +stats

В

Използване на dig с множество домейни

Можем да предадем множество домейни за копаене в командния ред, както е показано по-долу:

dig ubuntu.org fedora.org manjaro.com

В

Ако редовно проверявате набор от домейни, можете да ги съхранявате в текстов файл и да го предадете на dig. Всички домейни във файла ще бъдат проверени на свой ред.

Нашият файл се нарича „domains.txt“. Ще използваме cat, за да покажем съдържанието му, и след това ще го предадем, за да копаем с опцията -f (файл). Пишем следното:

cat domains.txt
dig -f domains.txt

В

Обратно търсене на DNS

Ако имате IP адрес и искате да знаете къде отива, можете да опитате обратно DNS търсене. Ако се разреши до сървър, регистриран с DNS сървър, може да успеете да разберете неговия домейн.

Дали можете, зависи от наличието на PTR (запис на показалец). PTR разрешават IP адрес до a напълно квалифицирано име на домейн. Въпреки това, тъй като те не са задължителни, те не винаги присъстват в домейн.

Да видим дали можем да разберем къде ни отвежда IP адресът 209.51.188.148. Въведем следното, използвайки опцията -x (обратно търсене):

dig -x 209.51.188.148

В

Presto! IP адресът се разрешава до gnu.org.

Тъй като PTR е DNS запис и знаем, че dig може да поиска определени DNS записи, не можем ли просто да поискаме от dig да извлече PTR вместо нас? Да, можем, но това изисква малко повече работа.

Трябва да предоставим IP адреса в обратен ред и да поставим .in-addr.arpa в края, както е показано по-долу:

dig ptr 148.188.51.209.in-addr.arpa

В

Получаваме същия резултат; просто отне малко повече усилия.

Можете ли да го копаете?

Всички използваме интернет всеки ден и любознателните умове често се чудят как се случва магията, когато напишем името на уебсайт в браузър. С dig можете да изследвате процесите на мрежово заклинание.