A DNS láthatatlan varázsa: Így találja meg a böngésződ az utat az interneten
A DNS láthatatlan varázsa: Így találja meg a böngésződ a weboldalakat
Minden alkalommal, amikor egy oldalra kattintasz, a böngésződ csendes csodát tesz. Emberi nevet – mint a domain – számmá alakít, kiszúrja a megfelelő szervert a világ valamelyik szegletében, és pillanatok alatt összeköt. Ezt a varázslatot DNS-nek hívják, a Domain Name Systemnek. Okosabb, mint gondolnád, még a haladó fejlesztőknek is.
A DNS-t 1983-ban találták ki, amikor az internet még modemeken száguldott, a web pedig csak álom volt. Paul Mockapetris mérnök olyan rendszert épített, ami gyors, bővíthető és bírja a strapát egy szétszórt hálózaton. Negyven év múlva is megállja a helyét. Lássuk, miért.
Gyorsaságtrükk: UDP a TCP helyett
Az első okosság egyszerűnek tűnik: a DNS alapból UDP-t használ, nem TCP-t.
TCP-nél háromirányú kézfogás kell, mielőtt bármi elküldhető. Ha minden DNS-kérésnél ez lenne, az internet csigalassú lenne. Egy oldal betöltésekor tucatnyi lekérést indít a böngésző. Szorozd össze: késés mindenhol.
UDP ezt megkerüli. Egyetlen csomagot lő ki a 53-as porthoz a kérdéseddel. A szerver visszalő egy választ. Kész. Nincs kézfogás, nincs alkudozás.
Hátrány? A csomagok elveszhetnek. A DNS erre timeoutot használ: ha nincs válasz, újra kérdezel. A lekérések 99%-a belefér egy 512 bájtos UDP-csomagba, szóval ritka a baj.
Van B terv: ha a válasz túl nagy – például DNSSEC miatt –, a szerver jelzi a TC bitet, és a kliens TCP-n kér újra a 53-as porthoz. Gyors alapértelmezett, megbízható, ha kell.
A hierarchia játéka: Fordított fa
A DNS skálázódásának titka: nincs központi adatbázis minden domainről.
Helyette fordított fa, jobbról balra olvasva. A www.example.com. keresésnél a gyökértől indul (az a rejtett pont a végén), és lépésről lépésre delegál lefelé:
Root szerverek a kapuőrök. Tizenhárom logikai (A-M), de Anycasttal ezrek másolatai keringenek világszerte. A legközelebbihez jut a kérdésed. Ők nem tudják a te domainodat, csak hogy a .com-ot, .org-ot kik kezelik.
TLD szerverek (Top-Level Domain) a regisztereknél futnak. Verisign a .com-ot, Afilias az .info-t, országkódoknál helyiek. Kérdezd meg az example.com-ról, megadják a domain nameservereit.
Autoritatív nameserverek a fa alján, a regisztrátorodnál vagy DNS-szolgáltatónál, mint Cloudflare, Route 53 vagy NameOcean. Itt van a zone file: A, AAAA, CNAME, MX rekordok mind. Válaszuknál jelzik az aa bitet: "Ez a hivatalos igazság."
Probléma: mi van, ha a nameserver ns1.example.com? Hogyan találod meg az IP-jét előbb? A TLD glue recordokkal segít: mellékelik a nameserver IP-jét az NS rekordhoz. Nélküle összeomlik minden.
Gyorsítótár: Az internet igazi szuperképessége
Képzeld el, ha minden lekérés végigmenne a fán – root-tól TLD-ig, autoritatívig. Az internet összeomlana.
A caching menti meg. Minden rekordnak van TTL-je (Time-to-Live) másodpercekben: "Ez X másodpercig jó, ne kérdezz előbb."
Cache mindenhol:
- Böngészőben – Chrome-ban nézd meg:
chrome://net-internals/#dns. - Operációs rendszerben – Linuxon
systemd-resolved, macOS-enmDNSResponder, Windows DNS Client. - Rekurzív resolverben – Google 8.8.8.8, Cloudflare 1.1.1.1 vagy az ISP-ed. Milliók cache-e osztozik: egy missből hit lesz mindenkinek.
Ezért kell TTL-t kezelni költözésnél. Új szerverre mész? Csökkentsd napokkal előtte 24 óráról 5 percre. Ha elfelejted, a régi IP-t szolgálják ki napokig, figyelmen kívül hagyva a változást. Rosszul kezelt cache = fék.
Útválasztási csavar: Anycast
Most jön a igazán okos rész.
Hogyan válaszol a Google 8.8.8.8 2 ms-ból Tokióból és Londonból is? Hogyan skálázódnak a root szerverek ezrekre? Nem DNS, hanem Anycast routing.
Normál IP egy szerverhez vezet. Anycastnál százak hirdetik ugyanazt az IP-t BGP-vel (Border Gateway Protocol). A router a legközelebbihez irányít rövidebb úton.
Ezért gyors a Cloudflare DNS mindenhol. DDoS sem viszi el a root szervereket – a támadás szétterül minden ponton. Infrastruktúra, ami varázsnak tűnik.
Összefoglalva
A DNS a distributed systems mesterműve. Gyors az UDP miatt, skáláz a hierarchikus fával, bírja a terhelést a többrétegű cachinggel, alacsony késleltetésű az Anycasttal.
Mindez 1983-ban született, amikor az internet csecsemő volt. Ma trillió lekérést bír naponta. Ezek az elvek örökzöldek.
Ha NameOcean-nel építesz vagy nagy DNS-t kezelsz, ezek az alapok átalakítják a domain-menedzsmentet, költözéseket és optimalizálást. A DNS nem csővezeték – az internet vérkeringése.