Jak korzystać z polecenia dig w systemie Linux

Przeanalizujmy ten kawałek po kawałku.

; > DiG 9.11.3-1ubuntu1.11-Ubuntu> newsblog.pl.com ;; opcje globalne: + cmd ;; Mam odpowiedź: ;; – >> NAGŁÓWEK

Oto, co to wszystko oznacza:

Pierwsza linia: wersja dig i domena, która była odpytywana.
Opcje globalne: jak zobaczymy, możesz użyć dig do jednoczesnego wysyłania zapytań do wielu domen. Ten wiersz przedstawia opcje, które zostały zastosowane do wszystkich zapytań domeny. W naszym prostym przykładzie była to tylko domyślna opcja + cmd (polecenie).
Kod operacji: zapytanie: jest to typ żądanej operacji, która w tym przypadku była zapytaniem. Ta wartość może być również iquery dla zapytania odwrotnego lub statusem, jeśli tylko testujesz stan systemu DNS.
Status: Noerror: Nie było błędów i żądanie zostało poprawnie rozwiązane.
ID: 12017: ten losowy identyfikator wiąże żądanie i odpowiedź razem.
Flagi: qr rd ra: oznaczają zapytanie, żądaną rekursję i dostępną rekursję. Rekursja to jedna z form wyszukiwania DNS (druga jest iteracyjna). Możesz również zobaczyć AA, co oznacza odpowiedź autorytatywną, co oznacza, że ​​odpowiedź dostarczył autorytatywny serwer nazw.
Zapytanie: 1: liczba zapytań w tej sesji, czyli jeden.
Odpowiedź: 4: Liczba odpowiedzi w tej odpowiedzi, czyli cztery.
Autorytet: 0: Liczba odpowiedzi pochodzących z autorytatywnego serwera nazw, która w tym przypadku wynosiła zero. Odpowiedź została zwrócona z pamięci podręcznej serwera będącego prekursorem DNS. W odpowiedzi nie będzie sekcji autorytatywnej.
Dodatkowe: 1: Jest jeszcze jedna informacja dodatkowa. (O dziwo, nic nie jest wymienione, chyba że ta wartość wynosi dwa lub więcej).

Opt Pseudosection

Następnie w sekcji Opt Pseudosekcja widzimy:

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

Rozbijmy to:

EDNS: wersja 0: wersja System rozszerzeń dla DNS to jest używane. EDNS przesyła rozszerzone dane i flagi, rozszerzając rozmiar pliku Protokół datagramów użytkownika (UDP) pakiety. Wskazuje na to flaga o zmiennej wielkości.
flagi: żadne flagi nie są używane.
udp: 4096: Rozmiar pakietu UDP.

Sekcja pytań

W sekcji Pytanie widzimy następujące kwestie:

;; QUESTION SECTION:
;newsblog.pl.com. IN A

Oto, co to oznacza:

newsblog.pl.com: nazwa domeny, o którą pytamy.
IN: Robimy kwerendę klasy internetowej.
O: O ile nie określimy inaczej, dig zażąda rekordu A (adresu) z serwera DNS.

Sekcja odpowiedzi

Sekcja Odpowiedź zawiera następujące cztery odpowiedzi, które otrzymaliśmy z serwera DNS:

newsblog.pl.com. 3551 IN A 151.101.194.217
newsblog.pl.com. 3551 IN A 151.101.130.217
newsblog.pl.com. 3551 IN A 151.101.66.217
newsblog.pl.com. 3551 IN A 151.101.2.217

Oto, co oznaczają te odpowiedzi:

3551: To jest czas życia (TTL), 32-bitowa liczba całkowita ze znakiem, która zawiera przedział czasu, dla którego rekord może być buforowany. Po wygaśnięciu dane muszą być używane w odpowiedzi na żądanie, dopóki nie zostaną odświeżone przez serwer DNS.
IN: Zrobiliśmy kwerendę klasy internetowej.
O: Poprosiliśmy o rekord A z serwera DNS.

Sekcja Statystyki

Statystyka to ostatnia sekcja, która zawiera następujące informacje:

;; 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

Oto, co mamy:

Query Time: 0 msec: czas potrzebny na uzyskanie odpowiedzi.
SERWER: 127.0.0.53 # 53 (127.0.0.53): Adres IP i numer portu serwera DNS, który odpowiedział. W tym przypadku wskazuje na lokalny program rozpoznawania kodu pośredniczącego buforowania. To przekazuje żądania DNS do dowolnego skonfigurowanego serwera DNS nadrzędnego. Na komputerze testowym Manajro podany tutaj adres to 8.8.8.8 # 53, czyli Publiczna usługa DNS Google.
KIEDY: Niedziela, 22 marca, 07:44:37 EDT 2020: Kiedy złożono żądanie.
MSG SIZE rcvd: 106: Rozmiar wiadomości odebranej z serwera DNS.

Być selektywnym

Nie musisz zadowalać się dwoma skrajnościami: wąskim i gadatliwym. Polecenie dig umożliwia wybiórcze dołączanie lub wykluczanie sekcji z wyników.

Następujące opcje zapytania spowodują usunięcie tej sekcji z wyników:

+ nocomments: Nie pokazuj linii komentarzy.
+ noauthority: Nie pokazuj sekcji uprawnień.
+ dodatkowe: Nie pokazuj dodatkowej sekcji.
+ nostats: Nie pokazuj sekcji statystyk.
+ noanswer: Nie pokazuj sekcji odpowiedzi.
+ noall: Nie pokazuj niczego!

Opcja + noall query jest zwykle łączona z jedną z powyższych, aby uwzględnić sekcję w wynikach. Dlatego zamiast wpisywać długi ciąg opcji zapytania, aby wyłączyć wiele sekcji, możesz użyć + noall, aby je wszystkie wyłączyć.

Następnie możesz użyć następujących opcji zapytań włączających, aby ponownie włączyć te, które chcesz zobaczyć:

+ komentarze: Pokaż linie komentarzy.
+ władza: Pokaż sekcję uprawnień.
+ dodatkowe: Pokaż sekcję dodatkową.
+ statystyki: Pokaż sekcję statystyk.
+ odpowiedź: Pokaż sekcję odpowiedzi.
+ all: Pokaż wszystko.

Wpisujemy następujące polecenie, aby złożyć wniosek i wykluczyć wiersze komentarza:

dig newsblog.pl.com +nocomments

Plik

Jeśli użyjemy samej opcji + noall query, jak pokazano poniżej, nie otrzymamy żadnych przydatnych wyników:

dig newsblog.pl.com +noall

Plik

Możemy selektywnie dodawać sekcje, które chcemy zobaczyć. Aby dodać sekcję odpowiedzi, wpisujemy:

dig newsblog.pl.com +noall +answer

Plik

Jeśli wpiszemy co następuje, aby włączyć + statystyki, zobaczymy również sekcję statystyk:

dig newsblog.pl.com +noall +answer +stats

Plik

Często używana jest kombinacja odpowiedzi + noall +. W razie potrzeby możesz dodać inne sekcje do wiersza poleceń. Jeśli chcesz uniknąć wpisywania + noall + answer w wierszu poleceń za każdym razem, gdy używasz dig, możesz umieścić je w pliku konfiguracyjnym o nazwie „.digrc”. Znajduje się w twoim katalogu domowym.

Wpisujemy następujące, aby utworzyć z echo:

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

Następnie możemy wpisać następujące polecenie, aby sprawdzić jego zawartość:

cat .digrc

Plik $ HOME / .digrc „i” cat .digrc „w oknie terminala.” width = „646” height = „122” onload = „pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);” onerror = „this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”>

Te dwie opcje zostaną teraz zastosowane do wszystkich przyszłych zastosowań dig, jak pokazano poniżej:

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

Ten plik konfiguracyjny dig będzie używany w pozostałych przykładach w tym artykule.

Rekordy DNS

Informacje zwrócone do żądań wyszukiwania są pobierane z różnych typów rekordów przechowywanych na serwerze DNS. Jeśli nie poprosimy o coś innego, wykopuj rekord A (adres). Poniżej przedstawiono typy rekordów powszechnie używanych w programie dig:

Rekord: łączy domenę z adresem IP w wersji 4.
Rekord MX: rekordy wymiany poczty kierują wiadomości e-mail wysyłane do domen na właściwy serwer pocztowy.
Rekord NS: Rekordy serwera nazw delegują domenę (lub subdomenę) do zestawu serwerów DNS.
Rekord TXT: Rekordy tekstowe przechowują informacje tekstowe dotyczące domeny. Zazwyczaj mogą być używane do blokowania fałszywych lub fałszywych wiadomości e-mail.
Rekord SOA: Rekordy początku urzędu mogą zawierać wiele informacji o domenie. Tutaj można znaleźć główny serwer nazw, stronę odpowiedzialną, sygnaturę czasową zmian, częstotliwość odświeżania strefy oraz serię limitów czasu dla ponownych prób i porzuceń.
TTL: czas życia to ustawienie dla każdego rekordu DNS, które określa, jak długo serwer będący prekursorem DNS może buforować każde zapytanie DNS. Po upływie tego czasu dane należy odświeżyć w przypadku kolejnych żądań.
ANY: To mówi digowi, aby zwrócił każdy typ rekordu DNS, jaki może.

Określenie typu rekordu A nie zmienia domyślnej akcji, która polega na wysłaniu zapytania do rekordu adresu i uzyskaniu adresu IP, jak pokazano poniżej:

dig redhat.com A

Plik

Aby zapytać o rekordy wymiany poczty, używamy następującej flagi MX:

dig yahoo.com MX

Plik

Flaga serwera nazw zwraca następującą nazwę głównych serwerów nazw powiązanych z domeną najwyższego poziomu:

dig fedora.com NS

Plik

Aby zapytać o początek rekordu uprawnień, wpisujemy następującą flagę SOA:

dig manjaro.com SOA

Plik

Flaga TTL pokaże nam czas życia danych w pamięci podręcznej serwera DNS. Jeśli wykonamy serię żądań, widzimy, że czas życia zmniejsza się do zera, a następnie wskakujemy z powrotem do wartości początkowej.

Wpisujemy:

dig usa.gov TTL

Plik

Aby zobaczyć rekordy tekstowe, wpisujemy flagę TX:

dig usa.gov TXT

Plik

Określanie serwera DNS

Jeśli chcesz użyć określonego serwera DNS do żądania, możesz użyć znaku at (@), aby przekazać go do dig jako parametr wiersza polecenia.

W przypadku domyślnego serwera DNS (patrz poniżej) dig odwołuje się do lokalnego narzędzia do rozpoznawania skrótów buforowania pod adresem 127.0.0.53.

dig usa.gov +stats

Teraz wpisujemy co następuje, aby użyć publicznego serwera DNS Google pod adresem 8.8.8.8:

dig @8.8.8.8 usa.gov +stats

Plik

Korzystanie z dig z wieloma domenami

Możemy przekazać wiele domen do kopania w wierszu poleceń, jak pokazano poniżej:

dig ubuntu.org fedora.org manjaro.com

Plik

Jeśli regularnie sprawdzasz zestaw domen, możesz zapisać je w pliku tekstowym i przekazać do kopania. Wszystkie domeny w pliku zostaną po kolei sprawdzone.

Nasz plik nosi nazwę „domains.txt”. Użyjemy cat do pokazania jego zawartości, a następnie przekażemy go do kopania z opcją -f (plik). Wpisujemy:

cat domains.txt
dig -f domains.txt

Plik

Odwrotne wyszukiwania DNS

Jeśli masz adres IP i chcesz wiedzieć, gdzie on idzie, możesz spróbować odwrotnego wyszukiwania DNS. Jeśli jest to serwer zarejestrowany na serwerze DNS, możesz być w stanie znaleźć jego domenę.

To, czy możesz, zależy od obecności PTR (rekordu wskaźnika). PTR tłumaczą adres IP na w pełni kwalifikowana nazwa domeny. Jednak ponieważ nie są one obowiązkowe, nie zawsze są obecne w domenie.

Zobaczmy, czy uda nam się dowiedzieć, dokąd prowadzi nas adres IP 209.51.188.148. Wpisujemy co następuje, używając opcji -x (wyszukiwanie wsteczne):

dig -x 209.51.188.148

Plik

Presto! Adres IP jest rozpoznawany jako gnu.org.

Ponieważ PTR jest rekordem DNS i wiemy, że dig może zażądać określonych rekordów DNS, czy nie moglibyśmy po prostu poprosić dig, aby pobrał dla nas PTR? Tak, możemy, ale wymaga to trochę więcej pracy.

Musimy podać adres IP w odwrotnej kolejności i przypiąć .in-addr.arpa na końcu, jak pokazano poniżej:

dig ptr 148.188.51.209.in-addr.arpa

Plik

Otrzymujemy ten sam wynik; wymagało to tylko trochę więcej wysiłku.

Możesz to wykopać?

Wszyscy codziennie korzystamy z internetu, a dociekliwe umysły często zastanawiają się, jak magia dzieje się, gdy wpisujemy nazwę witryny w przeglądarce. Dzięki dig możesz zbadać procesy tworzenia sieci.