Przejdź do treściHisnLabs
← DNS: internetowa książka adresowa

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

  1. 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ą.
  2. Jeśli resolver nie ma jeszcze odpowiedzi w pamięci podręcznej, pyta serwer główny, który serwer TLD wypróbować.
  3. Pyta ten serwer TLD, który serwer autorytatywny wypróbować.
  4. 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.

Zapytanie DNS z wiersza poleceń
dig example.com

;; ANSWER SECTION:
example.com.		233	IN	A	104.20.23.154
example.com.		233	IN	A	172.66.147.243

To 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. 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. 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. 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. 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.

Źródła

Zastosuj to na swoim Macu

Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.

Pobierz na Maca Dokumentacja