Android

Polecenie dig w systemie Linux (wyszukiwanie DNS)

Podstawy konfiguracji serwera DNS w systemie openSUSE

Podstawy konfiguracji serwera DNS w systemie openSUSE

Spisu treści:

Anonim

Dig (Domain Information Groper) to potężne narzędzie wiersza polecenia do sprawdzania serwerów nazw DNS.

Za pomocą polecenia dig możesz wyszukiwać informacje o różnych rekordach DNS, w tym o adresach hostów, wymianach poczty i serwerach nazw. Jest to najczęściej używane narzędzie wśród administratorów systemu do rozwiązywania problemów z DNS ze względu na jego elastyczność i łatwość użycia.

W tym samouczku pokażemy, jak korzystać z narzędzia do dig , poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji dig .

Instalowanie dig

Aby sprawdzić, czy polecenie dig jest dostępne w systemie:

dig -v

Dane wyjściowe powinny wyglądać mniej więcej tak:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Jeśli dig nie jest obecny w twoim systemie, powyższe polecenie wyświetli „dig: polecenie nie znaleziono”. Możesz łatwo zainstalować narzędzie do dig za pomocą menedżera pakietów swojej dystrybucji.

Zainstaluj dig na Ubuntu i Debianie

sudo apt update && sudo apt install dnsutils

Zainstaluj dig na CentOS i Fedorze

sudo yum install bind-utils

Zainstaluj dig w Arch Linux

sudo pacman -S bind-tools

Zrozumienie wyników kopania

W najprostszej formie, gdy jest używany do zapytania do jednego hosta (domeny) bez żadnych dodatkowych argumentów, polecenie dig jest dość szczegółowe.

W poniższym przykładzie linux.org zapytanie w celu pobrania informacji o domenie linux.org .

dig linux.org

Dane wyjściowe powinny wyglądać mniej więcej tak:

Przejdźmy sekcja po sekcji i wyjaśnij wyjście polecenia dig :

  1. Pierwszy wiersz danych wyjściowych wypisuje zainstalowaną wersję dig i wywołane zapytanie. Drugi wiersz pokazuje opcje globalne (domyślnie tylko cmd).

    ; <<>> DiG 9.13.3 <<>> linux.org;; global options: +cmd

    Pierwsza sekcja zawiera szczegółowe informacje techniczne na temat odpowiedzi otrzymanej od żądanego organu (serwera DNS). Nagłówek pokazuje kod operacji (operację wykonywaną przez dig) i status akcji. W tym przykładzie status to NOERROR , co oznacza, że ​​żądany organ obsłużył zapytanie bez żadnych problemów.

    ;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

    Tę sekcję można usunąć za pomocą opcji +nocomments , która wyłącza również nagłówki innych sekcji.

    Pseudo sekcja „OPT” jest domyślnie wyświetlana tylko w nowszych wersjach narzędzia dig. O mechanizmach rozszerzenia dla DNS (EDNS) możesz dowiedzieć się tutaj.

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

    W sekcji „PYTANIE” dig pokazuje nasze zapytanie (pytanie). Domyślnie dig żąda rekordu A.

    ;; QUESTION SECTION:;linux.org. IN A

    Możesz wyłączyć tę sekcję za pomocą opcji +noquestion .

    Sekcja „ODPOWIEDŹ” daje nam odpowiedź na nasze pytanie. Jak już wspomniano, domyślnie dig zażąda rekordu A. Tutaj domena linux.org wskazuje na adres IP 104.18.59.123 .

    ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123

    Zwykle nie chcesz wyłączać odpowiedzi, ale możesz usunąć tę sekcję z wyników za pomocą opcji +noanswer .

    Sekcja „AUTORYZACJA” informuje nas, jakie serwery są organami odpowiadającymi na zapytania DNS dotyczące zapytanej domeny.

    ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.

    Możesz wyłączyć tę sekcję danych wyjściowych za pomocą opcji +noauthority .

    Sekcja „DODATKOWA” podaje nam informacje o adresach IP autorytatywnych serwerów DNS pokazanych w sekcji autoryzacji.

    ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82

    Opcja +noadditional wyłącza dodatkową sekcję odpowiedzi.

    Ostatnia sekcja wyników wyszukiwania zawiera statystyki dotyczące zapytania.

    ;; Query time: 58 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Fri Oct 12 11:46:46 CEST 2018;; MSG SIZE rcvd: 212

    Możesz wyłączyć tę część za pomocą opcji +nostats .

Drukowanie tylko odpowiedzi

W większości przypadków chciałbyś uzyskać tylko szybką odpowiedź na zapytanie dotyczące wykopalisk.

1. Uzyskaj krótką odpowiedź

Aby uzyskać krótką odpowiedź na zapytanie, użyj opcji +short :

dig linux.org +short

104.18.59.123 104.18.58.123

Dane wyjściowe będą zawierać tylko adresy IP rekordu A.

2. Uzyskaj szczegółową odpowiedź

Aby uzyskać bardziej szczegółową odpowiedź, wyłącz wszystkie wyniki za pomocą opcji +noall a następnie włącz tylko sekcję odpowiedzi z opcją +answer .

dig linux.org +noall +answer

; <<>> DiG 9.13.3 <<>> linux.org +noall +answer;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123

Zapytanie dotyczące określonego serwera nazw

Domyślnie, jeśli nie określono serwera nazw, dig używa serwerów wymienionych w pliku /etc/resolv.conf .

Aby określić serwer nazw, na którym będzie wykonywane zapytanie, użyj symbolu @ (at), a następnie adresu IP lub nazwy hosta.

Na przykład, aby zapytać serwer nazw Google (8.8.8.8) o informacje na temat domeny linux.org której byś użył:

dig linux.org @8.8.8.8

; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;linux.org. IN A;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123;; Query time: 54 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Fri Oct 12 14:28:01 CEST 2018;; MSG SIZE rcvd: 70

Zapytanie o typ rekordu

Dig umożliwia wykonanie dowolnego prawidłowego zapytania DNS poprzez dodanie typu rekordu na końcu zapytania. W poniższej sekcji pokażemy przykłady wyszukiwania najbardziej popularnych rekordów, takich jak A (adres IP), CNAME (nazwa kanoniczna), TXT (rekord tekstowy), MX (wymiennik poczty) i NS (serwery nazw).

1. Zapytanie o rekordy A.

Aby uzyskać listę wszystkich adresów dla nazwy domeny, użyj opcji:

dig +nocmd google.com a +noall +answer

google.com. 128 IN A 216.58.206.206

Jak już wiesz, jeśli nie zostanie określony typ rekordu DNS, dig zażąda rekordu A. Możesz także wysłać zapytanie do rekordu A bez określania opcji.

2. Zapytanie o rekordy CNAME

Aby znaleźć nazwę domeny aliasu, użyj opcji cname :

dig +nocmd mail.google.com cname +noall +answer

mail.google.com. 553482 IN CNAME googlemail.l.google.com.

3. Zapytanie o rekordy TXT

Użyj opcji txt , aby pobrać wszystkie rekordy TXT dla określonej domeny:

dig +nocmd google.com txt +noall +answer

google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"

4. Sprawdzanie rekordów MX

Aby uzyskać listę wszystkich serwerów poczty dla określonej domeny, użyj opcji mx :

dig +nocmd google.com mx +noall +answer

google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com.

5. Zapytanie o rekordy NS

Aby znaleźć wiarygodne serwery nazw dla naszej konkretnej domeny, użyj opcji ns :

dig +nocmd google.com ns +noall +answer

google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com.

6. Zapytanie o wszystkie rekordy

Użyj any opcji, aby uzyskać listę wszystkich rekordów DNS dla określonej domeny:

dig +nocmd google.com any +noall +answer

google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

Odwrotne wyszukiwanie DNS

Aby wyszukać nazwę hosta powiązaną z określonym adresem IP, użyj opcji -x .

Na przykład, aby wykonać wyszukiwanie wsteczne dla 208.118.235.148 , 208.118.235.148 :

dig -x 208.118.235.148 +noall +answer

Jak widać z danych wyjściowych poniżej, adres IP 208.118.235.148 jest powiązany z nazwą hosta wildebeest.gnu.org .

; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

Zapytania zbiorcze

W poniższym przykładzie odpytujemy domeny wymienione w pliku domains.txt .

domains.txt

lxer.com linuxtoday.com tuxmachines.org

dig -f domains.txt +short

108.166.170.171 70.42.23.121 204.68.122.43

Plik.digrc

Zachowaniem polecenia dig można sterować, ustawiając opcje dla poszczególnych użytkowników w pliku ${HOME}/.digrc .

Jeśli plik .digrc znajduje się w katalogu .digrc użytkownika, określone w nim opcje są stosowane przed argumentami wiersza poleceń.

Na przykład, jeśli chcesz wyświetlić tylko sekcję odpowiedzi, otwórz edytor tekstu i utwórz następujący plik ~/.digrc :

~ /.digrc

+nocmd +noall +answer

Wniosek

dig to narzędzie wiersza polecenia do sprawdzania informacji DNS i rozwiązywania problemów związanych z DNS.

kopać terminal