Lekcja 1 z 4 · 6 min
Co robi DNS
Dlaczego komputery potrzebują zamiany nazwy na numer dla każdej odwiedzanej strony i kto właściwie na to zapytanie odpowiada.
Kurs TCP/IP omawia, jak komputery adresują się nawzajem za pomocą liczb. Nikt nie chce zapamiętywać liczb, by przeczytać wiadomości albo wysłać e-mail, więc internet ma działającą w tle, niemal za każdym twoim działaniem online, zamianę nazwy na numer: system nazw domenowych, czyli DNS. Cloudflare Learning Center nazywa go po prostu „książką telefoniczną internetu”.
Drzewo, a nie jedna lista
DNS zaprojektowano, zgodnie z RFC 1034, wokół „spójnej przestrzeni nazw, która będzie używana do odnoszenia się do zasobów”, zorganizowanej jako „struktura drzewa”, w której „każdy węzeł i liść drzewa odpowiada zbiorowi zasobów”. W praktyce to drzewo ma warstwy, z których każda odpowiada za mniejszy wycinek nazw:
- Korzeń, na szczycie drzewa, nie zna adresu żadnej strony, ale wie, które serwery odpowiadają za każdą domenę najwyższego poziomu (.com, .org i tak dalej).
- Serwer domeny najwyższego poziomu (TLD) też nie zna twojej konkretnej strony, ale wie, który serwer autorytatywny odpowiada za tę domenę.
- Serwer autorytatywny przechowuje faktyczną odpowiedź dla konkretnej domeny: na jaki adres IP aktualnie wskazuje example.org.
- Resolver (albo rekursor) to serwer, o który faktycznie pyta twoje urządzenie. To on wykonuje pracę schodzenia po drzewie w twoim imieniu, a potem na jakiś czas zapisuje odpowiedź w pamięci podręcznej, by nie powtarzać całej wędrówki przy każdym zapytaniu.
Cloudflare Learning Center używa dla tej samej idei analogii biblioteki: „rekursora można traktować jak bibliotekarza, którego proszono o znalezienie konkretnej książki gdzieś w bibliotece”, podczas gdy „serwer główny jest pierwszym krokiem w tłumaczeniu (rozwiązywaniu) czytelnych dla człowieka nazw hostów na adresy IP… służy jako odniesienie do innych, bardziej szczegółowych lokalizacji”.
Śledzenie jednego zapytania
- Twój Mac pyta swój skonfigurowany resolver, często prowadzony przez twojego dostawcę internetu, router Wi-Fi albo publiczną usługę, o adres stojący za nazwą.
- Jeśli resolver nie ma jeszcze odpowiedzi w pamięci podręcznej, pyta serwer główny, który serwer TLD wypróbować.
- Pyta ten serwer TLD, który serwer autorytatywny wypróbować.
- Pyta serwer autorytatywny o właściwą odpowiedź, następnie zwraca tę odpowiedź twojemu urządzeniu i zachowuje jej kopię w pamięci podręcznej dla innych zapytań.
RFC 1035 definiuje dokładny format wiadomości dla tych zapytań i odpowiedzi, i zaznacza, że zwykle podróżują przez UDP lub TCP na porcie 53. Domyślnie nic w tym zapytaniu nie jest tajne; kolejna lekcja omawia, kto może je zobaczyć i dlaczego ma to znaczenie.
dig example.com
;; ANSWER SECTION:
example.com. 233 IN A 104.20.23.154
example.com. 233 IN A 172.66.147.243To jedno polecenie to cały proces z tej lekcji dziejący się w około jedną dziesiątą sekundy: twój resolver przeszedł po drzewie (albo zwrócił odpowiedź z pamięci podręcznej) i oddał liczbowy adres stojący za nazwą.
Najważniejsze
- DNS tłumaczy czytelne dla człowieka nazwy na liczbowe adresy IP, których faktycznie używają komputery do łączenia się.
- RFC 1034 organizuje DNS jako drzewo: korzeń, potem serwery domen najwyższego poziomu, potem serwery autorytatywne dla każdej domeny.
- Resolver (rekursor) wykonuje wędrówkę po tym drzewie w imieniu twojego urządzenia i zapisuje odpowiedź w pamięci podręcznej.
- RFC 1035 definiuje format zapytania/odpowiedzi; zapytania zwykle podróżują przez UDP lub TCP na porcie 53.
- Zapytanie DNS domyślnie nie jest tajne; to zwykły, czytelny ruch, chyba że zostanie specjalnie zaszyfrowany.
Sprawdź się
1. Jakie jest główne zadanie DNS?
- Szyfrowanie ruchu internetowego
- Tłumaczenie nazw domen na adresy IP używane przez komputery do łączenia się — Dobrze.
- Przydzielanie prywatnych adresów IP urządzeniom domowym
- Zarządzanie tym, z jakiego portu korzysta aplikacja
Cloudflare opisuje DNS jako „książkę telefoniczną internetu”: tłumaczy nazwy domen na adresy IP.
2. W drzewie DNS opisanym przez RFC 1034, co faktycznie wie serwer główny?
- Adres IP każdej strony internetowej
- Które serwery odpowiadają za każdą domenę najwyższego poziomu, a nie adresy poszczególnych stron — Dobrze.
- Nic; jest wyłącznie dekoracyjny
- Tylko adresy kończące się na .com
Analogia Cloudflare: serwer główny „służy jako odniesienie do innych, bardziej szczegółowych lokalizacji”, wskazując na serwery TLD zamiast odpowiadać bezpośrednio.
3. Co robi resolver DNS (rekursor)?
- Przechowuje pliki każdej strony internetowej
- Wędruje po drzewie DNS w imieniu twojego urządzenia i zapisuje znalezioną odpowiedź w pamięci podręcznej — Dobrze.
- Obsługuje wyłącznie pocztę e-mail
- Całkowicie zastępuje potrzebę adresów IP
Cloudflare porównuje rekursora do bibliotekarza, który idzie i znajduje odpowiedź, a potem resolver zapisuje ją w pamięci podręcznej, by przyszłe zapytania były szybsze.
4. Czy typowe zapytanie DNS jest domyślnie szyfrowane?
- Tak, zawsze
- Nie, to zwykły, czytelny ruch, chyba że zostanie specjalnie zaszyfrowany — Dobrze.
- Tylko dla domen .com
- Tylko w Wi-Fi
RFC 1035 definiuje format wiadomości DNS bez wbudowanego szyfrowania; zaszyfrowanie DNS wymaga osobnego mechanizmu, omówionego w kolejnej lekcji.
Wypróbuj to z FireAI
Zastosuj tę lekcję w praktyce na swoim Macu.
- Głęboka inspekcja, bez odszyfrowywania czegokolwiek — Uzyskaj prawdziwe szczegóły o bezpiecznym połączeniu bez ryzyka, że FireAI kiedykolwiek odczyta jego zawartość.
- Listy zagrożeń (opcjonalne) — Porównuj swój ruch z publicznymi danymi o zagrożeniach, nigdzie go nie wysyłając.
- Zablokuj aplikacji dostęp do internetu albo tylko jedną firmę czy domenę — Odetnij dokładnie to, co chcesz — całą aplikację albo tylko jedną firmę, z którą się łączy.
Źródła
- RFC 1034: Domain Names – Concepts and Facilities
- RFC 1035: Domain Names – Implementation and Specification
- Cloudflare Learning: What is DNS?
Zastosuj to na swoim Macu
Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.