CodeGym /Kursy /Docker SELF /Sprawdzanie DNS: komendy `nslookup`, `dig`

Sprawdzanie DNS: komendy `nslookup`, `dig`

Docker SELF
Poziom 4 , Lekcja 2
Dostępny

1. Wprowadzenie do DNS

Wyobraź sobie taką sytuację: chcesz uzyskać dostęp do swojej ulubionej strony – na przykład google.com. Ale twoja przeglądarka nie rozumie słowa "google", potrzebuje adresów IP (na przykład 142.250.74.206). Przetwarzanie nazwy domeny na adres IP odbywa się za pomocą DNS (Domain Name System). Jeśli ten proces zawiedzie, zobaczysz komunikat od przeglądarki: "Nie można znaleźć serwera". Ty, jako przyszły mistrz sieci Linux, musisz wiedzieć, jak diagnozować i rozwiązywać problemy związane z DNS.

DNS to coś jak książka telefoniczna internetu. Zamiast zapamiętywać skomplikowane adresy IP, możemy używać wygodnych nazw, które są przekształcane przez system DNS. Oto kilka kluczowych konceptów:

  1. Rekordy DNS:

    • Rekord A (Address Record): łączy nazwę domeny z adresem IPv4.
    • Rekord AAAA: łączy nazwę domeny z adresem IPv6.
    • Rekord CNAME (Canonical Name): wskazuje alias domeny.
    • Rekord MX (Mail Exchange): wskazuje serwery obsługujące pocztę.
  2. Serwery DNS:

    • Zwykły użytkownik zazwyczaj używa serwerów DNS swojego dostawcy internetu.
    • Alternatywy: publiczne serwery DNS Google (8.8.8.8), Cloudflare (1.1.1.1).
  3. Rozwiązywanie nazw:

    • Kiedy wpisujesz nazwę domeny w przeglądarce, wysyłane jest zapytanie do serwera DNS, aby uzyskać adres IP.

Uzbrojony w tę wiedzę jesteś gotowy do praktycznego opanowywania magii DNS za pomocą komend nslookup i dig.


2. Komenda nslookup

nslookup — to narzędzie, które pozwala nam sprawdzić działanie DNS. Jest dostępne w większości dystrybucji Linuxa i innych systemach operacyjnych.

Podstawowa składnia:

nslookup [opcje] [domena lub adres IP]

Prosty przykład:

Sprawdzimy adres IP dla strony google.com:

nslookup google.com

Wynik:

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 142.250.74.206

Uwagi do wyniku:

  • Server: Serwer DNS, który obsłużył zapytanie.
  • Non-authoritative answer: oznacza, że informacja została uzyskana nie z głównego serwera DNS, ale z cache innego serwera.

Sprawdzanie serwera DNS

Jeśli chcesz użyć konkretnego serwera DNS, możesz go wskazać w komendzie:

nslookup google.com 8.8.8.8

Tu podaliśmy jawny wybór serwera DNS Google (8.8.8.8).

Praktyka: Znajdźmy IP dla strony edukacyjnej

Spróbuj wykonać komendę:

nslookup linux.org

Spójrz na wyniki — to adresy IP, które są powiązane z serwerem strony.


3. Komenda dig

dig (Domain Information Groper) — to bardziej zaawansowane narzędzie do pracy z DNS. Umożliwia uzyskanie szczegółowych informacji o zapytaniach i odpowiedziach DNS.

Podstawowa składnia:

dig [domena] [opcje]

Przykład zapytania:

dig google.com

Wynik (najważniejsze fragmenty):

;; Question section:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		300	IN	A	142.250.74.206

;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct 19 10:00:00 UTC 2023
;; MSG SIZE  rcvd: 68

Sekcje wyniku:

  • ANSWER SECTION: Adresy IP powiązane z domeną.
  • Query time: czas przetwarzania zapytania.
  • SERVER: Serwer DNS, który przetworzył zapytanie.

4. Podstawowe rekordy DNS i jak je sprawdzać

Rekord A (IPv4)

dig linux.org A

Wynik pokaże adresy IPv4 dla domeny.

Rekord AAAA (IPv6)

dig linux.org AAAA

Wynik zawiera adresy IPv6. Przydatne, jeśli pracujesz z nowoczesnymi sieciami.

Rekord MX (serwery pocztowe)

dig linux.org MX

Używane do sprawdzania, które serwery obsługują pocztę dla domeny.


5. Zaawansowana praktyka: dig vs nslookup

Teraz możesz porównać wyniki dwóch komend:

  1. Wykonaj:

        nslookup linux.org
    
  2. Potem:

        dig linux.org
    

Zwróć uwagę, że dig dostarcza więcej szczegółów. Na przykład, możesz zobaczyć czas wykonania zapytania oraz informacje o serwerze, który odpowiedział na zapytanie.


6. Sprawdzanie serwera DNS Google

Zadanie:

  1. Używając nslookup, sprawdź, czy publiczny serwer DNS Google działa:

    nslookup github.com 8.8.8.8
    
  2. Teraz zrób to samo za pomocą dig:

    dig @8.8.8.8 github.com
    
  3. Sprawdź, czy strona posiada adresy IPv6:

    dig github.com AAAA
    

7. Typowe błędy i szczegóły

Praca z DNS zazwyczaj napotyka na następujące problemy:

  1. Niepoprawne ustawienia serwera DNS: Jeśli twój serwer DNS nie działa lub jest źle skonfigurowany, możesz nie otrzymać odpowiedzi. Sprawdź dostępność serwera, wskazując jego IP ręcznie podczas używania nslookup lub dig.
  2. Cache DNS: Czasami zmiany w DNS mogą zająć chwilę z powodu cache'u. Na przykład możesz zobaczyć przestarzałe informacje, jeśli zapis DNS został ostatnio zmieniony.

  3. Brak dostępności serwera DNS: Jeśli widzisz błąd typu connection timed out; no servers could be reached, może to oznaczać, że serwer jest niedostępny lub zablokowany.

  4. Alternatywne komendy: nslookup nie zawsze jest dostępny w minimalistycznych instalacjach Linuxa, podczas gdy dig częściej znajduje się w standardowym zestawie narzędzi.

Praktyczne zastosowania: po co to wiedzieć?

  • Diagnostyka problemów z DNS. Będziesz w stanie szybko zrozumieć, dlaczego przeglądarka "nie widzi" strony.
  • Konfiguracja serwerów. Kiedy konfigurujesz serwer w chmurze, musisz sprawdzić, czy rekordy DNS są poprawnie ustawione.
  • Bezpieczeństwo w Internecie. Umiejętność pracy z rekordami DNS pomaga analizować strony phishingowe.
  • Podczas rozmów kwalifikacyjnych. Znajomość komend dig i nslookup to jedno z typowych pytań dla specjalistów Linux/DevOps.

Teraz jesteś uzbrojony we wszystko, czego potrzebujesz, aby głęboko zrozumieć i diagnozować DNS. Uruchom terminal, wypróbuj komendy i niech żaden "błąd DNS" nie zaskoczy cię znienacka.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION