Przejdź do treści głównej

Poradniki / Pojęcia monitoringu wyjaśnione

Czym jest resolver DNS i którego właściwie używasz?

Resolver DNS to usługa, którą Twoje urządzenie pyta jako pierwszą, gdy potrzebuje adresu IP dla nazwy, a pojedyncze zapytanie zwykle przechodzi przez trzy różne role: resolver zaślepkowy na Twojej własnej maszynie, resolver rekurencyjny, który wykonuje faktyczne poszukiwanie, oraz autorytatywne serwery, które trzymają prawdziwą odpowiedź. Większość ludzi konfiguruje tylko ten pierwszy i nigdy nie widzi bezpośrednio pozostałych dwóch.

Co się dzieje, gdy Twoje urządzenie szuka nazwy?

Twój system operacyjny sam nie przeszukuje internetu w poszukiwaniu nazwy. Przekazuje żądanie niewielkiemu fragmentowi oprogramowania zwanemu resolverem zaślepkowym, który wcale nie jest serwerem nazw. RFC 8499 definiuje go jako resolver, "który nie potrafi samodzielnie wykonać całego rozwiązywania" i zależy od resolvera rekurencyjnego, który wykona faktyczną pracę. Zadaniem resolvera zaślepkowego jest wysłać Twoje zapytanie do serwera skonfigurowanego w ustawieniach sieciowych i zwrócić odpowiedź, albo zapisaną kopię niedawnej.

Resolver zaślepkowy, resolver rekurencyjny, serwer autorytatywny: jaka jest różnica?

W każdym zapytaniu pojawiają się trzy role, a ten sam fizyczny serwer może pełnić więcej niż jedną z nich:

  • Resolver zaślepkowy. Działa na Twoim urządzeniu, przekazuje zapytania, trzyma niewielką pamięć podręczną i nie potrafi samodzielnie rozwiązać nazwy.
  • Resolver rekurencyjny. Zgodnie z RFC 8499, "resolver działający w trybie rekurencyjnym", czyli wykonujący całą pracę pogoni za odpowiedzią przez tyle serwerów, ile potrzeba, a potem cache'ujący i zwracający wynik. To rola, którą wypełnia Twój dostawca internetu albo publiczna usługa DNS.
  • Serwer autorytatywny. RFC 8499 definiuje go jako serwer, który "zna zawartość strefy DNS z wiedzy lokalnej i dzięki temu może odpowiadać na zapytania o tę strefę bez konieczności pytania innych serwerów". To serwer prowadzony przez własnego dostawcę DNS domeny, a jego odpowiedź jest tą, której nikt inny nie kopiuje.

Serwer, który odpowiada odesłaniem zamiast pełną odpowiedzią, działa iteracyjnie; taki, który pracuje dalej, aż ma ostateczną odpowiedź albo jednoznaczny błąd, działa rekurencyjnie, co właśnie oznacza nazwa "resolver rekurencyjny".

Ścieżka, jaką przechodzi jedno zapytanie: skoki przez root, TLD i serwer autorytatywny

Zimne zapytanie, takie, w którym nic nigdzie nie jest zapisane w pamięci podręcznej, przechodzi przez ustaloną hierarchię. Resolver rekurencyjny zaczyna od serwera root, jednej z trzynastu nazwanych tożsamości serwerów root, które IANA wylicza od a.root-servers.net do m.root-servers.net, i pyta go o example.com. Serwer root nie zna odpowiedzi; zwraca odesłanie do serwerów odpowiedzialnych za domenę najwyższego poziomu .com. Resolver pyta jeden z nich i dostaje drugie odesłanie, tym razem do autorytatywnych serwerów nazw dla samej example.com, tych skonfigurowanych przez właściciela domeny. Dopiero ten ostatni serwer daje prawdziwą odpowiedź, zamiast wskazówki gdzie indziej. Resolver rekurencyjny zapisuje ją w pamięci podręcznej i zwraca Twojemu resolverowi zaślepkowemu, który przekazuje ją przeglądarce.

Każdy skok po pierwszym jest pomijany, gdy tylko jakaś pamięć podręczna po drodze ma już odpowiedź, dlatego zdecydowana większość codziennych zapytań nigdy w ogóle nie dotyka serwera root.

Resolver dostawcy internetu kontra publiczny: co się naprawdę zmienia?

Resolver, którego Twoje urządzenie używa domyślnie, zwykle pochodzi z DHCP, przydzielany przez router albo dostawcę internetu, i niemal zawsze jest resolverem rekurencyjnym wykonującym pełne wyszukiwanie w Twoim imieniu. To, co robi z Twoimi zapytaniami, jak duża jest jego pamięć podręczna i z ilu lokalizacji działa, ustala ten, kto go obsługuje, i nie jest to coś, co widzisz z własnej strony.

Publiczne resolvery istnieją jako alternatywa, na którą możesz wskazać swoje urządzenie zamiast tego: Google Public DNS działa pod 8.8.8.8, Cloudflare pod 1.1.1.1, a Quad9 pod 9.9.9.9. Każdy publikuje własną politykę tego, co loguje i jak długo to przechowuje, każdy prowadzi własną sieć anycast, więc ten sam adres odpowiada z lokalizacji najbliższej Tobie, a Quad9 domyślnie blokuje też na poziomie resolvera znane złośliwe domeny, czego resolver dostawcy internetu zwykle nie robi. Nic z tego nie zmienia tego, co potrafi sam DNS: resolver decyduje tylko, jak zapytanie jest przeprowadzane, nie o tym, co mówią rekordy domeny.

Którego resolvera używa teraz Twoja maszyna?

Resolver, którego faktycznie używasz, to ustawienie, nie zgadywanka, a każdy system ma jedno polecenie, które je pokazuje:

  • Windows: ipconfig /all wylicza "Serwery DNS" pod każdą kartą sieciową, w kolejności, w jakiej są odpytywane.
  • macOS: scutil --dns raportuje bieżącą konfigurację DNS, w tym serwery nazw obowiązujące dla każdej usługi sieciowej.
  • Linux z systemd-resolved: resolvectl status pokazuje, zgodnie z jego własnym podręcznikiem, "globalne i przypisane do poszczególnych łączy ustawienia DNS obecnie obowiązujące", czyli zarówno resolver zapasowy, jak i to, czym nadpisało go konkretne połączenie, na przykład Wi-Fi albo VPN.

VPN, sieć firmowa albo własne ustawienie bezpiecznego DNS przeglądarki mogą każde podmienić inny resolver bez zmiany tego, co raportuje polecenie systemu, więc jeśli odpowiedź polecenia nie pasuje do tego, czego oczekujesz, to jest pierwsze miejsce, w które warto zajrzeć.

To, który resolver odpowiada na zapytanie, może zmienić wynik, który widzisz, nie tylko szybkość jego uzyskania: resolver z nieaktualną pamięcią podręczną, regionalną awarią albo własną polityką filtrowania może zwrócić coś innego niż odpowiedziałyby bezpośrednio serwery autorytatywne. Uruchom zapytanie narzędziem do zapytań DNS, żeby porównać, a jeśli resolver odpowiada wolno, zamiast inaczej, jak naprawić wolne zapytanie DNS opisuje mierzenie i zmianę tego. Jeśli w ogóle nie odpowiada, zacznij od serwer DNS nie odpowiada. Zachowanie cache'owania stojące za tym wszystkim opisuje czym jest pamięć podręczna DNS. HostTracker monitoruje strony internetowe od 2004 roku, obserwuje dziś ponad 500 000 stron z ponad 300 punktów kontrolnych w 158 miastach i może powiadomić e-mailem, SMS-em, telefonicznie, przez Slack, Telegram i inne kanały w chwili, gdy sprawdzenie oczekujące konkretnego adresu IP zobaczy inny.

Najczęściej zadawane pytania

Czy mój router jest resolverem DNS?

Często tylko w ograniczonym sensie. Wiele domowych routerów prowadzi mały forwarder DNS: odpowiada z niewielkiej pamięci podręcznej, ale w przypadku wszystkiego, czego jeszcze nie ma zapisanego, przekazuje zapytanie prosto do resolvera dostawcy internetu, zamiast wykonywać pełną rekursję samodzielnie. RFC 2308 opisuje tę rolę jako forwarder, "serwer nazw używany do rozwiązywania zapytań zamiast bezpośredniego użycia łańcucha autorytatywnych serwerów nazw".

Czy użycie publicznego resolvera przyspiesza moje przeglądanie?

Czasem tak, czasem nie. Resolver blisko Ciebie z rozgrzaną pamięcią podręczną odpowiada w jednocyfrowych milisekundach, niezależnie od tego, kto go obsługuje. Głównymi zmiennymi jest to, jak blisko Ciebie jest najbliższa lokalizacja resolvera i jak rozgrzana jest już jego pamięć podręczna, nie nazwa marki.

Jaka jest różnica między rekursją a forwardowaniem?

Resolver wykonujący rekursję sam pyta root, TLD i serwery autorytatywne, skok po skoku, i cache'uje ostateczny wynik. Resolver, który zamiast tego forwarduje, wysyła całe pytanie do innego resolvera i czeka na pełną odpowiedź, oddając pracę, i wgląd w to, czego szukałeś, temu, co nadrzędny resolver już ma zapisane.

Czy wszystkie 13 serwerów root działa na 13 maszynach?

Nie. Istnieje trzynaście nazwanych tożsamości serwerów root, ale każda z nich jest serwowana przez wiele fizycznych maszyn na całym świecie, więc zapytanie trafia do bliskiej kopii, zamiast przecinać ocean za każdym razem.

Czy dwa urządzenia w tej samej sieci mogą używać różnych resolverów?

Tak. Router rozdaje domyślny przez DHCP, ale każde urządzenie może go nadpisać we własnych ustawieniach sieciowych, a VPN albo bezpieczne ustawienie DNS przeglądarki może nadpisać go ponownie na wierzchu. Powyższe polecenia zawsze pokazują, czego to konkretne urządzenie używa w tym momencie, nie tego, co zakłada sieć.

Sprawdź teraz

Uruchom darmowe sprawdzenie na swojej stronie - bez zakładania konta.

Dns query

Monitoruj to na stałe

Otrzymasz powiadomienie w chwili awarii: HostTracker sprawdza z ponad 300 lokalizacji i powiadamia e-mailem, SMS-em, przez Slack, Telegram i nie tylko.

Funkcje HostTracker

Więcej w tej sekcji: Pojęcia monitoringu wyjaśnione