Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Odpytywanie DNS za pomocą dig i nslookup

Moduł 8: Bezpieczeństwo i rozwiązywanie problemów · Czas czytania: 10 min

Cel lekcji: Po tej lekcji będą Państwo potrafili za pomocą dig i nslookup odpytywać rekordy, sprawdzać konkretny serwer nazw i odczytywać wynik.

Kluczowe pojęcia: dig, nslookup, Resolve-DnsName, +short, @server, +trace, sekcja ANSWER i AUTHORITY, status NOERROR, NXDOMAIN, SERVFAIL, dig -x

Dlaczego warto sprawdzać samodzielnie?

Panel pokazuje to, co Państwo wprowadzili. To, co widzi reszta świata, może być inne: być może DNS zarządza inna strona, być może w pamięci podręcznej (cache) znajduje się jeszcze stara odpowiedź. Za pomocą programu do odpytywania zadają Państwo to samo pytanie co przeglądarka czy serwer pocztowy i widzą prawdziwą odpowiedź.

Istnieją trzy powszechnie stosowane programy:

ProgramGdzieKomentarz
digmacOS, Linux (Windows przez WSL lub do osobnej instalacji)Najbardziej rozbudowany, standard wśród administratorów
nslookupWindows, macOS, LinuxDostępny wszędzie, bardziej zwięzły wynik
Resolve-DnsNameWindows PowerShellPrzydatny w Windows bez dodatkowego oprogramowania

Nie mają Państwo pod ręką okna poleceń? Wtedy mogą Państwo zrobić dokładnie to samo za pomocą internetowego narzędzia dig (lekcja 8.3).

Pierwsze zapytanie za pomocą dig

Proszę otworzyć Terminal (macOS/Linux) i wpisać:

$ dig example.com A

Wynik w skróconej wersji wygląda tak:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41872
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
example.com.           2847    IN      A       192.0.2.10

;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)

Co należy odczytać:

  • status: najważniejsze słowo. Zobacz tabelę poniżej.
  • flags: ad oznacza, że resolver sprawdził odpowiedź za pomocą DNSSEC (lekcja 8.1).
  • ANSWER SECTION: same rekordy. Kolumny są takie same jak w strefie: nazwa, TTL, klasa, typ, wartość.
  • TTL (tutaj 2847): ile sekund ta odpowiedź pozostanie jeszcze w pamięci podręcznej (cache) resolvera. Jeśli w strefie ustawiono 3600, oznacza to, że odpowiedź ma już 753 sekundy. Przy ponownym zapytaniu zobaczą Państwo, jak liczba maleje.
  • SERVER: który resolver został zapytany. W domu jest to często Państwa router.

Trzy statusy, które warto znać

StatusZnaczenieCo zrobić
NOERROR z odpowiedziąWszystko w porządku, to jest odpowiedźWartość się nie zgadza? Wtedy jest ustawiony błędny rekord lub widzą Państwo starą wersję z pamięci podręcznej
NOERROR bez odpowiedzi (ANSWER: 0)Nazwa istnieje, ale nie ma rekordu tego typuCzęsto: pytają Państwo o niewłaściwy typ (na przykład A dla nazwy, która ma tylko CNAME lub tylko MX)
NXDOMAINTa nazwa w ogóle nie istniejeLiterówka, zapomniany rekord albo podwójna nazwa domeny, taka jak mail.example.com.example.com
SERVFAILResolver nie mógł uzyskać wiarygodnej odpowiedziSerwery nazw niedostępne albo uszkodzony łańcuch DNSSEC (proszę spróbować +cd)

Przydatne warianty

Tylko odpowiedź za pomocą +short:

$ dig +short MX example.com
10 mail.example.com.
20 mail2.example.com.

Zapytanie do innego resolvera lub bezpośrednio do serwera nazw za pomocą @. To najważniejsza sztuczka przy rozwiązywaniu problemów. Jeśli zapytają Państwo bezpośrednio autorytatywny serwer nazw, zawsze otrzymają Państwo świeżą odpowiedź, bez pamięci podręcznej:

$ dig +short NS example.com
ns1.hosting.example.
ns2.hosting.example.

$ dig +short A www.example.com @ns1.hosting.example
192.0.2.20

$ dig +short A www.example.com @9.9.9.9
192.0.2.10

Tutaj od razu widać, o co chodzi: serwer nazw podaje już nowy adres (.20), publiczny resolver ma jeszcze w pamięci podręcznej stary (.10). Nie muszą więc Państwo nic robić, wystarczy poczekać, aż upłynie TTL (moduł 6).

Inne typy: proszę umieścić typ za nazwą.

$ dig +short TXT example.com
"v=spf1 a mx include:_spf.hosting.example ~all"
"google-site-verification=AbC123..."

$ dig +short TXT _dmarc.example.com
"v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

$ dig +short CNAME shop.example.com
shops.platform.example.

Śledzenie całej drogi za pomocą +trace. dig robi wtedy sam to, co robi resolver: najpierw root, potem TLD, potem autorytatywny serwer (lekcja 1.4):

$ dig +trace example.com A
.                 518400  IN  NS  a.root-servers.net.
;; Received 239 bytes from 192.168.1.1#53
com.              172800  IN  NS  a.gtld-servers.net.
;; Received 708 bytes from 198.41.0.4#53(a.root-servers.net)
example.com.      172800  IN  NS  ns1.hosting.example.
;; Received 412 bytes from 192.5.6.30#53(a.gtld-servers.net)
example.com.      3600    IN  A   192.0.2.10
;; Received 57 bytes from 198.51.100.53#53(ns1.hosting.example)

Za pomocą +trace widzą Państwo, które serwery nazw faktycznie przekazuje rejestr. Jest to przydatne, gdy mają Państwo wątpliwości, czy zmiana serwera nazw została już wprowadzona.

Zobaczenie DNSSEC za pomocą +dnssec: otrzymają Państwo dodatkowo podpisy RRSIG. Za pomocą +cd wyłączają Państwo weryfikację, aby sprawdzić, czy SERVFAIL wynika z DNSSEC.

Odwrotny DNS za pomocą -x (lekcja 4.6):

$ dig +short -x 192.0.2.25
mail.example.com.

To samo za pomocą nslookup

nslookup działa na każdym komputerze. Najważniejsze formy:

C:\> nslookup example.com
Server:  router.lan
Address:  192.168.1.1

Non-authoritative answer:
Name:    example.com
Address:  192.0.2.10

C:\> nslookup -type=mx example.com
example.com    MX preference = 10, mail exchanger = mail.example.com

C:\> nslookup -type=txt _dmarc.example.com 9.9.9.9

Drugi adres za nazwą (tutaj 9.9.9.9) to serwer, do którego kierowane jest zapytanie, podobnie jak @ przy dig. "Non-authoritative answer" oznacza jedynie, że odpowiedź pochodzi od resolvera, a nie od autorytatywnego serwera nazw: to normalne. Jeśli nazwa nie istnieje, nslookup zwraca Non-existent domain, co odpowiada NXDOMAIN.

Windows PowerShell: Resolve-DnsName

PS> Resolve-DnsName example.com -Type MX
PS> Resolve-DnsName _dmarc.example.com -Type TXT -Server 9.9.9.9
PS> Resolve-DnsName example.com -Type A -DnsOnly

Czyszczenie własnej pamięci podręcznej (cache)

Narzędzie internetowe widzi już nową odpowiedź, ale Państwa komputer jeszcze nie? Wtedy stara odpowiedź znajduje się w pamięci podręcznej Państwa komputera lub przeglądarki.

  • Windows: ipconfig /flushdns w wierszu poleceń.
  • macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder w Terminalu.
  • Linux z systemd-resolved: resolvectl flush-caches.
  • Przeglądarka: okno prywatne lub telefon przez 4G/5G z wyłączonym wifi.

Pamięci podręcznej dostawcy internetu lub routera nie można wyczyścić samodzielnie; tutaj trzeba poczekać na upłynięcie TTL.

W praktyce: jak to wygląda w panelu

W większości paneli nie można uruchomić dig. Dlatego warto używać dig obok panelu: najpierw sprawdzić w panelu, co zostało wprowadzone, potem za pomocą dig @<Państwa serwer nazw> sprawdzić, czy serwer nazw faktycznie to zwraca, a następnie za pomocą dig @9.9.9.9 sprawdzić, czy widzi to już reszta świata. Moje WebOké ma diagnostykę DNS, która porównuje serwery nazw między sobą; inne firmy mają podobne przyciski "sprawdzania DNS".

Podsumowanie

  • dig <nazwa> <typ> zadaje to samo pytanie co przeglądarka lub serwer pocztowy; najpierw proszę przeczytać status.
  • NOERROR z odpowiedzią jest dobre, NOERROR bez odpowiedzi oznacza "nazwa istnieje, typ nie", NXDOMAIN oznacza "nazwa nie istnieje", SERVFAIL oznacza "brak wiarygodnej odpowiedzi".
  • Za pomocą @server pytają Państwo określony resolver lub bezpośrednio autorytatywny serwer nazw; w ten sposób widać różnicę między błędem a pamięcią podręczną.
  • +short, +trace, +dnssec, +cd i -x to warianty, których będą Państwo potrzebować najczęściej.
  • nslookup i Resolve-DnsName robią to samo w Windows.

Quiz

1. dig mail.example.com A zwraca status: NXDOMAIN. Co to oznacza?



2. Zmienili Państwo rekord A dla www. dig +short www.example.com @ns1.hosting.example zwraca nowy adres, dig +short www.example.com @1.1.1.1 jeszcze stary. O co chodzi?



3. Które polecenie pokazuje całą drogę od root, przez TLD, do autorytatywnego serwera nazw?



4. W wyniku dig przy rekordzie A widnieje TTL 412. W strefie ustawiono 3600. Co to oznacza?



5. Co robi nslookup -type=mx example.com 9.9.9.9?



Zadanie

Zadanie Z8.2: dig i nslookup. Za pomocą dig, nslookup lub Resolve-DnsName (albo internetowego narzędzia dig) proszę sprawdzić trzy rzeczy:

  1. status nazwy, która nie istnieje: bestaat-niet-dnscursus.sidn.nl;
  2. rekordy MX dla wikipedia.org, bezpośrednio u jednego z serwerów nazw wikipedia.org (proszę go najpierw znaleźć);
  3. TTL, który publiczny resolver zwraca w tej chwili dla rekordu A domeny sidn.nl (proszę zapytać dwa razy, z minutą przerwy, i zapisać obie wartości).

Proszę wpisać odpowiedzi.

Zadanie Z8.2: dig i nslookup





To, co Państwo wpisują i co sprawdzamy na żywo, nie jest przez nas zapisywane. Przeglądarka zapamiętuje Państwa odpowiedzi oraz informację, czy zadanie zostało zaliczone. Jeśli są Państwo zalogowani, zapisujemy jedynie informację, że zadanie zostało (prawie) wykonane poprawnie w Moich kursach; tam też można to usunąć.

Dalsza lektura

Poniższe artykuły opisują kroki w WebOké; polecenia działają wszędzie tak samo.

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…