1. modul · 1.4
A DNS-lekérdezés útja
1. modul: Mi az a DNS? · Olvasási idő: 8 perc
Tanulási cél: A lecke után lépésről lépésre el tudja magyarázni, hogyan talál választ egy resolver, és hol jegyzik meg útközben a válaszokat.
Alapfogalmak: resolver (rekurzív), root szerver, TLD-szerver, autoritatív (hiteles) névszerver, delegálás (átirányítás a hierarchiában), cache
Kétféle DNS-szerver
Az 1.1 leckében már látta, hogy a DNS felosztott rendszer: senki nem tud mindent. Hogyan jut akkor a böngészője mégis hozzá a www.example.com címéhez? Ehhez kétféle szerver működik együtt:
- Autoritatív (hiteles) névszerverek (angolul authoritative) ismerik a választ a saját részükre. A
example.comnévszerverei ismerik aexample.comrekordjait. Ők mások számára nem keresnek semmit. - Resolverek (más néven rekurzív resolverek) az Ön helyett keresik meg a választ. Addig kérdezősködnek, amíg meg nem kapják. Az internetszolgáltatójának van resolvere, és léteznek nyilvános resolverek is, például a Quad9, a Cloudflare vagy a Google szolgáltatása.
Az Ön számítógépe maga szinte semmit nem keres meg. Van egy kis stub resolvere, amely továbbítja a kérdést a hálózatának resolveréhez, és visszakapja a választ.
Az út, lépésről lépésre
Tegyük fel: a resolver még semmit nem jegyzett meg, és Ön a www.example.com A-rekordját kéri.
- A számítógépe megkérdezi a resolvert: "Mi a www.example.com A-rekordja?"
- A resolver megkérdez egy root szervert. Minden resolverbe be van építve a root szerverek címeinek listája. A root szerver nem tud semmit a
example.com-ról, de azt tudja, ki kezeli a.com-ot. A válasza egy delegálás: "Ehhez a com névszervereihez kell fordulnia: a.gtld-servers.net, b.gtld-servers.net és így tovább." - A resolver megkérdez egy .com névszervert. Az sem tudja a
www.example.comIP-címét, de azt tudja, milyen névszerverei vannak aexample.com-nak. Újabb delegálás: "Kérdezze meg az ns1.hosting.example vagy az ns2.hosting.example szervert." - A resolver megkérdez egy example.com névszervert. Az autoritatív erre a domainre, és megadja a választ: "A www.example.com A-rekordja 192.0.2.10."
- A resolver visszaadja a választ a számítógépének. A böngészője kapcsolódik a 192.0.2.10 címhez.
Amikor egy magasabb szint egy alacsonyabb szint névszervereire mutat, azt delegálásnak nevezzük. A root delegálja a .com-ot a Verisignnek, a .com delegálja a example.com-ot a domainhasználó által megadott névszervereknek. Egy .nl domain esetén ugyanez történik, csak a root a .nl névszervereire mutat (SIDN, például ns1.dns.nl). Ezt saját maga is megnézheti a lecke alján található feladatban. Ezért olyan fontos, hogy a névszerverek a nyilvántartónál (registry) helyesen szerepeljenek (2.1 lecke).
A cache: nem minden alkalommal a teljes út
Ha minden resolver minden kérdésnél újra a root szervertől indulna, a root elképzelhetetlen mennyiségű kérdést kapna. Ez nem történik meg, mert a resolver egy ideig megjegyzi a válaszokat. Ezt a memóriát cache-nek nevezzük.
Hogy meddig szabad megjegyezni egy választ, az magában a válaszban szerepel: ez a TTL (time to live), másodpercben megadva. Egy 3600-as TTL azt jelenti: ez a válasz egy óráig jegyezhető meg. A delegálásokat is megjegyzik. Egy resolvernek, amely épp most hallotta, milyen névszerverei vannak a .com-nak, legközelebb nem kell ezt újra megkérdeznie a root szervertől.
Ha ugyanannál a szolgáltatónál egy másik felhasználó egy perccel később kérdezi a www.example.com-ot, a resolver azonnal a cache-éből válaszol. Nincs út, nincs várakozás.
A cache-ek több helyen is megtalálhatók:
- a szolgáltatója resolverében vagy az Ön által használt nyilvános resolverben;
- az operációs rendszerében (Windows, macOS, telefon);
- a böngészőjében;
- néha a routerében.
Ez gyors és hatékony, de van egy következménye, amivel később gyakran találkozik majd: ha módosít egy rekordot, a cache-ek a TTL lejártáig a régi választ adják. Ezért van, hogy az egyik ember már látja a módosítást, a másik még nem. A 6. modul ezzel foglalkozik részletesen.
A root szerverek
13 néven futnak a root szerverek: a.root-servers.net-től m.root-servers.net-ig. Tizenkét különböző szervezet kezeli őket. Minden név mögött világszerte sok szerver áll, több száz helyen, amelyek ugyanazt a címet osztják meg (ezt nevezik anycastnak). Az Ön resolvere automatikusan egy közeli szerverhez kapcsolódik. A TLD-névszerverek, például a .com és a .nl szerverei, szintén így működnek. Emiatt a DNS gyors, és akkor is tovább működik, ha valahol kiesik egy szerver.
Hol fordulhat elő probléma
Ha ismeri az utat, könnyebben el tudja helyezni a problémákat:
- A delegálás nem megfelelő. A nyilvántartónál (registry) olyan névszerverek szerepelnek, amelyek a domaint (már) nem ismerik. A resolver ekkor a 4. lépésnél nem jut tovább. A válasz hibás, vagy egyáltalán nem érkezik válasz.
- Az autoritatív szerver más választ ad, mint amire számít. Ekkor a rekordot máshol módosította, mint ahol a névszerverek vannak (2.1 lecke).
- A cache-ben még a régi válasz szerepel. Ilyenkor semmi nincs elromolva. Várnia kell, amíg a TTL lejár, vagy ki kell ürítenie a saját cache-ét.
- A DNSSEC nem megfelelő. Egy validáló resolver útközben ellenőrzi az aláírásokat. Ha a lánc nem megfelelő, elutasítja a választ (8.1 lecke).
A dig +trace eszközzel saját maga is végigkövetheti az utat, a root szervertől az autoritatív szerverig. Ezt a 8.2 leckében tanulja meg. Online eszközök is képesek erre.
Összefoglalás
- Az autoritatív névszerverek a saját domainjükre ismerik a választ; a resolverek az Ön helyett keresik meg a választ.
- A resolver a root szervernél kezdi, delegálást kap a TLD felé, majd a domain névszerverei felé, és ott kapja meg a választ.
- Az ilyen útmutatást delegálásnak nevezzük.
- A válaszokat a cache-ek jegyzik meg, amíg a TTL megengedi; emiatt a módosítások nem mindenhol látszanak azonnal.
- 13 root szervernév létezik, de az anycast miatt világszerte sok szerver áll mögöttük.
Kvíz
Feladat
Z1.4 feladat: Az út követése. Kövesse végig az utat a www.sidn.nl (az SIDN, a .nl nyilvántartója Hollandiában, weboldala) esetében, a dig +trace www.sidn.nl paranccsal vagy egy online eszközzel, amely megmutatja a trace-t. Töltse ki: (1) egy nl. névszerver, amellyel útközben találkozott, (2) egy autoritatív névszerver a sidn.nl számára.
További olvasnivaló
Ezek a cikkek a WebOké-nál érvényes helyzetet írják le. Más szolgáltatóknál hasonlóan működik.
