Niewidzialna sztuka DNS: Jak twoja przeglądarka odnajduje drogę w sieci

Niewidzialna sztuka DNS: Jak twoja przeglądarka odnajduje drogę w sieci

Maj 02, 2026 dns domain-names networking web-infrastructure distributed-systems nameservers ttl caching

Niewidzialna magia DNS: Jak przeglądarka odnajduje stronę

Za każdym razem, gdy wpisujesz adres strony, dzieje się coś niesamowitego. Przeglądarka zamienia prostą nazwę domainu na IP, lokalizuje serwer na świecie i łączy cię w ułamku sekundy. To zasługa DNS – Domain Name System. Wielu deweloperów nie docenia, jak sprytnie to działa.

DNS powstał w 1983 roku. Internet wtedy to były modemy, a WWW ledwo raczkowało. Paul Mockapetris stworzył system szybki, skalowalny i odporny na awarie. Po 40 latach wciąż trzyma poziom. Zobacz, co czyni go takim genialnym.

Szybkość z UDP zamiast TCP

Pierwszy trik to prosty wybór: DNS stawia na UDP, nie TCP.

TCP wymaga trójstronnego uścisku dłoni – podróży w obie strony, zanim wyślesz zapytanie. Gdyby każde wyszukiwanie DNS tak wyglądało, sieć by się zatkała. Jedna strona ładuje dziesiątki domainów. Wyobraź sobie te opóźnienia.

UDP działa od razu. Klient wysyła paczkę na port 53 z pytaniem. Serwer odsyła odpowiedź w jednej paczce. Bez ceregieli. Paczki czasem giną, ale DNS radzi sobie: brak odpowiedzi w limicie czasu? Wysyłasz raz jeszcze. Ponad 99% zapytań mieści się w 512 bajtach, więc straty rzadkie.

Gdy odpowiedź za duża – np. z DNSSEC – serwer stawia flagę TC (Truncated). Klient przechodzi na TCP dla pewności. Dwa tryby: błyskawiczny na co dzień, solidny w potrzebie.

Drzewo delegacji: Od góry w dół

Sekret skalowalności? Brak centralnej bazy wszystkich domainów.

DNS to odwrócone drzewo, czytane od prawej do lewej. Dla www.example.com. startujemy od roota (ta kropka na końcu).

Root serwery to brama wejściowa. 13 logicznych (A-M), ale Anycast mnoży je na tysiące po świecie. Trafiasz do najbliższego. One nie znają twojego domainu – wskazują tylko na serwery .com, .org czy .pl.

TLD serwery (Top-Level Domain) prowadzą rejestry. Verisign ma .com, inni krajowe końcówki. Pytaj o example.com – podadzą nameservery dla tego domainu.

Authoritative nameservery na dole drzewa, u rejestratora czy dostawcy jak Cloudflare czy Route 53. Trzymają zone file: rekordy A, AAAA, CNAME, MX i resztę. Odpowiadają z flagą aa: "To ja, oficjalnie. Prawda gwarantowana".

Problem? Jeśli nameserver to ns1.example.com, jak znaleźć jego IP bez IP głównego domainu? TLD ratuje glue records – podaje IP nameservera od razu z delegacją NS. Bez tego – klapa.

Cache: Prawdziwy bohater internetu

Bez cache'u DNS by padł. Gdyby każde zapytanie szło pełną drogą – root, TLD, authoritative – sieć by się załamała.

Ratunek w wielopoziomowym cachingu. Każdy rekord ma TTL – czas w sekundach ważności. "Trzymaj to X sekund, nie pytaj wcześniej".

Cache wszędzie:

  • W przeglądarce – Chrome sprawdź w chrome://net-internals/#dns.
  • W systemie – Linux ma systemd-resolved, macOS mDNSResponder, Windows DNS Client.
  • U resolvera – 8.8.8.8 Google'a czy 1.1.1.1 Cloudflare dzieli cache na miliony userów. Miss jednego to hit dla reszty.

Dlatego przy migracjach obniż TTL z wyprzedzeniem. Z 24h na 5 min. Zapomnisz – stare IP będzie ciągnąć ruch dobę, mimo zmian.

Anycast: Routing jak z kapelusza

Jak 8.8.8.8 odpowiada z Tokio i Londynu w 2 ms? Nie magia DNS, a Anycast.

Zwykły routing: jeden IP = jeden serwer. Anycast: setki serwerów ogłaszają ten sam IP przez BGP. Router kieruje cię do najbliższego.

Dlatego Cloudflare daje DNS w milisekundach globalnie. DDoS na rooty? Trafienie rozkłada się po wszystkich lokalizacjach. Czysta elegancja.

Podsumowanie

DNS to arcydzieło rozproszonych systemów. Szybki dzięki UDP bez połączeń. Skalowalny przez drzewo delegacji. Wytrzymały dzięki cache'om na każdym poziomie. Bliski dzięki Anycast.

Zaprojektowany w 1983 dla prymitywnego netu. Dziś obsługuje biliony zapytań dziennie. Jeśli zarządzasz DNS u NameOcean czy na dużą skalę, to wiedza zmienia wszystko: od migracji po optymalizację. DNS nie jest rurą – to krew internetu.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT NB NL HU IT FR ES DE DA ZH-HANS EN