6. modul · 6.1
TTL és cache
6. modul: Idő, cache és domain átvitele · Olvasási idő: 7 perc
Tanulási cél: A lecke után el tudja magyarázni, mi a rekord TTL-je, hogyan használják azt a cache-ek, és milyen helyzetben milyen TTL-t érdemes választani.
Kulcsfogalmak: TTL (Time To Live), cache, resolver cache, a számítógép és a böngésző cache-e, lejáró TTL, jellemző TTL-értékek (300, 3600, 86400)
Miért jegyez meg a DNS dolgokat
Az 1.4 leckében láthatta, hogyan keres meg egy választ a resolver: először egy rootszervernél, majd a TLD-szervernél, végül a domain autoritatív névszerverénél. Ha ennek minden egyes kattintásnál újra meg kellene történnie, az internet jóval lassabb lenne, és a névszerverek összeroskadnának a sok kérdés alatt.
Ezért a resolverek egy ideig megjegyeznek minden választ. Ezt a memóriát cache-nek hívják. Ha valaki más is ugyanazt a nevet kérdezi le, a resolver azonnal a cache-éből adja meg a választ, anélkül hogy végigjárná a teljes utat.
A kérdés tehát az: meddig jegyezheti meg a resolver a választ? Ezt a domain tulajdonosa határozza meg, minden rekord TTL-jével.
Mi a TTL
A TTL a Time To Live rövidítése: az az idő, ameddig egy rekord megmaradhat egy cache-ben, másodpercben megadva. Minden rekordnak saját TTL-je van. Egy zónában ez így néz ki:
example.com. 3600 IN A 192.0.2.10
www.example.com. 3600 IN A 192.0.2.10
example.com. 3600 IN MX 10 mail.example.com.
_dmarc.example.com. 14400 IN TXT "v=DMARC1; p=quarantine"A név utáni szám a TTL. Itt az A- és MX-rekordok egy óráig (3600 másodperc) jegyezhetők meg, a DMARC-rekord pedig négy óráig (14400 másodperc).
Gyakori értékek:
| TTL | Ennyi | Mikor érdemes használni? |
|---|---|---|
| 300 | 5 perc | Közvetlenül egy költözés előtt és alatt, vagy ha gyakran változtat |
| 3600 | 1 óra | Jó alapértelmezés a legtöbb rekordhoz |
| 14400 | 4 óra | Ritkán változó rekordokhoz |
| 86400 | 1 nap | Szinte soha nem változó rekordokhoz, mint az NS-rekordok |
A TTL egy 0 és 2 147 483 647 másodperc közötti szám (2^31 mínusz 1, ahogy az RFC 2181-ben szerepel). A gyakorlatban ritkán találkozik ennél nagyobb értékkel, mint egy vagy két nap. Sok resolver saját maximumot is alkalmaz, gyakran egy napot vagy egy hetet.
A visszaszámlálás
A TTL nem egy rögzített, az egész világra érvényes óra. Minden resolver csak attól a pillanattól kezdi a számlálást, amikor lekérte a rekordot.
Egy példa. Az example.com A-rekordjának TTL-je 3600.
- 10:00-kor az A szolgáltató resolvere lekéri a rekordot. Megkapja a
192.0.2.10értéket, és azt 11:00-ig megjegyezheti. - 10:40-kor a B szolgáltató resolvere kéri le ugyanezt. Az 11:40-ig jegyzi meg.
- 10:45-kor Ön megváltoztatja a rekordot
198.51.100.10-ra. - Az A szolgáltató felhasználói 11:00-tól látják az új címet, a B szolgáltató felhasználói csak 11:40-től.
Ha egy olyan resolvernél kérdezi le a rekordot, amelynek már megvan a cache-ében, a kimenetben egy folyamatosan csökkenő TTL-t fog látni. Az autoritatív névszervernél mindig a teljes értéket látja:
; az autoritatív névszervernél
example.com. 3600 IN A 192.0.2.10
; egy resolvernél, 25 perccel később
example.com. 2100 IN A 192.0.2.10Ezt hasznos tudni: ha az Ön resolverénél még 2100 másodpercet lát, az azt jelenti, hogy még 35 percig a régi választ fogja adni.
Ki mindenki jegyzi meg?
Nem csak az internetszolgáltató resolverének van cache-e. Több réteg is van:
- A resolver a szolgáltatónál, a vállalati hálózaton vagy egy nyilvános resolvernél (például 1.1.1.1, 8.8.8.8 vagy 9.9.9.9).
- Az otthoni vagy irodai router, amely gyakran maga is kis resolverként működik.
- A számítógép vagy telefon operációs rendszere.
- A böngésző, amely a DNS-válaszokat néha szintén egy ideig megőrzi.
Minden réteg elvileg tartja magát a TTL-hez, de nem mindegyik teszi ezt pontosan. Ezért fordulhat elő, hogy az Ön laptopján kicsit tovább tart, mint egy kollégájánál. Hogy hogyan ürítheti ki ezeket a cache-eket, azt a 6.2 leckében olvashatja.
A megfelelő TTL kiválasztása
Egy rövid TTL kézenfekvőnek tűnik: a változások így gyorsan mindenhol láthatóvá válnak. De van egy hátránya. A resolvereknek ilyenkor sokkal gyakrabban kell újra lekérdezniük a rekordot. Emiatt a weboldal első betöltése kicsit lassabb lesz, és ha a névszerverei átmenetileg nem elérhetők, a domain gyorsabban válik elérhetetlenné. Egy órás TTL-lel a resolverek a cache-ükkel át tudnak hidalni egy rövid üzemzavart a névszervernél.
Néhány ökölszabály:
- Alapértelmezés: 3600 másodperc. Ez jó egyensúlyt jelent.
- Tervezett változtatás előtt: átmenetileg 300. Csökkentse a TTL-t legalább egy régi TTL-nyi idővel a változtatás előtt. Ha 3600 volt beállítva, akkor ezt legalább egy órával korábban tegye meg, biztonságosabb egy nappal korábban. Ha 86400 volt beállítva, akkor legalább egy nappal korábban. A változtatás után állítsa vissza az eredeti értéket. Hogy ezt egy költözésnél hogyan kell kezelni, azt a 6.3 leckében olvashatja.
- 60 másodpercnél alacsonyabb értéknek kevés értelme van. Egyes resolverek figyelmen kívül hagyják a nagyon rövid TTL-eket, és saját minimumot alkalmaznak.
- A TTL csökkentése csak akkor hat, ha a régi TTL már lejárt. Ha a TTL-t 86400-ról 300-ra csökkenti, és közvetlenül utána megváltoztatja a címet, akkor azok a resolverek, amelyek éppen most kérték le a rekordot, még egy teljes napig a régi értéket fogják megőrizni.
Ez az utolsó pont a leggyakoribb hiba a TTL-ekkel kapcsolatban. Az új, rövid TTL-nek előbb el kell jutnia az összes cache-be.
A gyakorlatban: így néz ki egy vezérlőpulton
A példaként használt DirectAdmin vezérlőpultban a TTL külön oszlopként jelenik meg a DNS adminisztráció menüpontban. Egy rekord TTL-jét a rekord melletti ceruza ikonnal módosíthatja. A TTL ÉRTÉK FELÜLÍRÁSA gombbal egyetlen lépésben állíthatja be a domain összes rekordjának TTL-jét. A Fiókom felületen a TTL a rekordlistában, a DNS fülön látható, és azt abban az ablakban választja ki, amelyben egy rekordot hozzáad vagy szerkeszt.
Más vezérlőpultok hasonlóan működnek: a cPanel, a Plesk, a Cloudflare és a legtöbb regisztrátor esetében is TTL a mező neve. Néha egy listából választhat (például „5 perc”, „1 óra”, „Auto”) ahelyett, hogy másodpercben megadott számot írna be. A Cloudflare-nél az „Auto” proxy nélküli rekordok esetén 300 másodpercet jelent.
Összefoglalás
- A TTL határozza meg, hány másodpercig maradhat egy DNS-válasz egy cache-ben.
- Minden resolver attól a pillanattól számol, amikor lekérte a rekordot, ezért nem mindenki látja egyszerre a változást.
- Az autoritatív névszervernél a teljes TTL-t látja, egy resolvernél pedig egy csökkenő értéket.
- A 3600 jó alapértelmezés; tervezett változtatás előtt átmenetileg csökkentse 300-ra, mégpedig legalább egy régi TTL-nyi idővel korábban.
Kvíz
Feladat
Z6.1 feladat: TTL a forrásnál és a resolvernél. Egy online DNS-eszközzel vagy a dig paranccsal keresse ki a sidn.nl domain A-rekordjának TTL-jét, közvetlenül a sidn.nl saját névszerverei egyikénél (például az ns1.sidn.nl-nél). A SIDN a .nl domainek nyilvántartója Hollandiában. Adja meg a TTL-t másodpercben. Ezután kérdezze le ugyanezt a rekordot egy nyilvános resolvernél is, és adja meg azt a TTL-t is. Egy mondatban magyarázza el, miért térhet el a két szám.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9O6.1 feladat: Beállítás a saját gyakorlózónájában. A gyakorlózónájában már szerepel egy <code>.dnspractice.euttl-test. A-rekord, amely a <code>.dnspractice.eu192.0.2.61 címre mutat, 300 másodperces TTL-lel. Csökkentse a TTL-t 60 másodpercre, ahogyan azt egy költözés előtt tenné, és hagyja a címet változatlanul. Ezután a dig paranccsal ellenőrizze a gyakorlózóna névszerverénél, hogy az új TTL megjelent-e. Akkor adja be, ha a TTL értéke 60.
A gyakorlózóna rövid TTL-eket használ (30 és 300 másodperc között), hogy ne kelljen várnia; a valódi domainjénél például 3600-at érdemes alapértelmezésként, 300-at pedig közvetlenül egy változtatás előtt használni.
O6.1. feladat
Ezt a feladatot a saját gyakorlózónájában végzi el: egy valódi DNS-zónában, amely a WebOké névszerverein fut, és kizárólag az Ön számára jött létre. Jelentkezzen be az e-mail címével. Egy belépési linket kap e-mailben, amellyel visszatérhet erre a leckére. Az e-mail címét kizárólag a tanfolyamhoz használjuk.
További olvasnivaló
Az ezekben a cikkekben leírt lépések a WebOké vezérlőpultjaira vonatkoznak; más vezérlőpultokon hasonlóan működik.
- DirectAdmin útmutató 5.11: Mikor lép életbe egy módosítás? Várakozási idő és TTL
- DirectAdmin útmutató 5.2: A DNS adminisztráció megnyitása és a rekordok értelmezése
- A névszerver vagy DNS módosítása mennyi ideig tart, és mi a teendő, ha az nem látható?
- WebOké útmutató 5.4: DNS kezelése: rekordok hozzáadása, módosítása és törlése
