Modul 6 · 6.1
TTL in predpomnilnik
Modul 6: Čas, predpomnilnik in prenos · Čas branja: 7 minut
Učni cilj: Po tej lekciji boste znali razložiti, kaj je TTL zapisa, kako ga uporabljajo predpomnilniki in katero vrednost TTL izbrati v kateri situaciji.
Ključni pojmi: TTL (Time To Live), predpomnilnik, predpomnilnik razreševalnika, predpomnilnik Vašega računalnika in brskalnika, upadajoč TTL, tipične vrednosti TTL (300, 3600, 86400)
Zakaj si DNS zapomni
V lekciji 1.4 ste videli, kako razreševalnik poišče odgovor: najprej pri korenskem strežniku, nato pri strežniku TLD in nazadnje pri avtoritativnem imenskem strežniku domene. Če bi se to moralo ponoviti pri vsakem kliku na spletno stran, bi bil internet precej počasnejši, imenski strežniki pa bi se sesuli pod vsemi vprašanji.
Zato si razreševalniki vsak odgovor nekaj časa zapomnijo. Ta spomin se imenuje predpomnilnik (cache). Če nekdo drug povpraša po istem imenu, razreševalnik takoj poda odgovor iz svojega predpomnilnika, brez celotnega potovanja.
Vprašanje je torej: koliko časa sme razreševalnik hraniti odgovor? To določi lastnik domene, s TTL vsakega zapisa.
Kaj je TTL
TTL pomeni Time To Live: čas, kolikor dolgo sme zapis ostati v predpomnilniku, v sekundah. Vsak zapis ima svoj TTL. V coni je to videti takole:
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"Število za imenom je TTL. Tukaj se zapisa A in MX smeta hraniti eno uro (3600 sekund), zapis DMARC pa štiri ure (14400 sekund).
Pogoste vrednosti:
| TTL | Je | Kdaj ga uporabite? |
|---|---|---|
| 300 | 5 minut | Tik pred in med prenosom, ali če pogosto spreminjate zapise |
| 3600 | 1 ura | Dobra privzeta vrednost za večino zapisov |
| 14400 | 4 ure | Zapisi, ki se redko spreminjajo |
| 86400 | 1 dan | Zapisi, ki se skoraj nikoli ne spreminjajo, kot so zapisi NS |
TTL je število med 0 in 2.147.483.647 sekundami (2^31 - 1, tako je zapisano v RFC 2181). V praksi redko naletite na vrednost nad dnevom ali dvema. Mnogi razreševalniki uporabljajo tudi svojo lastno zgornjo mejo, pogosto dan ali teden.
Odštevanje
TTL ni fiksna ura za ves svet. Vsak razreševalnik začne šteti šele, ko zapis pridobi.
Primer. Zapis A za example.com ima TTL 3600.
- Ob 10:00 razreševalnik ponudnika A povpraša po zapisu. Prejme
192.0.2.10in si ga sme zapomniti do 11:00. - Ob 10:40 razreševalnik ponudnika B povpraša po istem zapisu. Ta si ga zapomni do 11:40.
- Ob 10:45 spremenite zapis na
198.51.100.10. - Uporabniki ponudnika A vidijo nov naslov od 11:00 naprej, uporabniki ponudnika B pa šele od 11:40.
Če povprašate po zapisu pri razreševalniku, ki ga že ima v predpomnilniku, boste v izpisu videli vrednost TTL, ki se postopoma zmanjšuje. Pri avtoritativnem imenskem strežniku vedno vidite polno vrednost:
; pri avtoritativnem imenskem strežniku
example.com. 3600 IN A 192.0.2.10
; pri razreševalniku, 25 minut kasneje
example.com. 2100 IN A 192.0.2.10To je koristno vedeti: če pri Vašem razreševalniku še vedno vidite 2100 sekund, bo ta še 35 minut podajal star odgovor.
Kdo vse si zapomni
Ni samo razreševalnik Vašega ponudnika internetnih storitev tisti, ki ima predpomnilnik. Obstaja več plasti:
- Razreševalnik Vašega ponudnika, Vašega poslovnega omrežja ali javni razreševalnik (na primer 1.1.1.1, 8.8.8.8 ali 9.9.9.9).
- Vaš usmerjevalnik doma ali v pisarni, ki pogosto deluje tudi kot majhen razreševalnik.
- Operacijski sistem Vašega računalnika ali telefona.
- Vaš brskalnik, ki včasih tudi sam nekaj časa hrani odgovore DNS.
Vsaka plast se načeloma drži TTL, vendar ne vsaka natančno. Zato lahko pri Vas na prenosniku traja malce dlje kot pri Vašem sodelavcu. Kako počistite te predpomnilnike, preberite v lekciji 6.2.
Izbira pravega TTL
Kratek TTL se zdi priročen: spremembe so tako hitro vidne povsod. Vendar ima to slabost. Razreševalniki morajo zapis takrat veliko pogosteje znova pridobiti. To naredi prvo nalaganje Vaše strani rahlo počasnejše, in če Vaši imenski strežniki za trenutek niso dosegljivi, bo Vaša domena hitreje postala nedosegljiva. S TTL ene ure lahko razreševalniki kratko motnjo pri imenskem strežniku premostijo s svojim predpomnilnikom.
Nekaj praktičnih pravil:
- Privzeto: 3600 sekund. To je dobro ravnovesje.
- Za načrtovano spremembo: začasno 300. Znižajte TTL vsaj en star TTL pred spremembo. Če je bilo nastavljeno 3600, to storite vsaj eno uro vnaprej, varneje pa dan vnaprej. Če je bilo nastavljeno 86400, to storite vsaj dan vnaprej. Po spremembi ga nastavite nazaj. Kako to izpeljati pri prenosu, preberite v lekciji 6.3.
- Vrednost pod 60 sekund nima veliko smisla. Nekateri razreševalniki zelo kratke vrednosti TTL ignorirajo in uporabljajo svojo lastno najnižjo mejo.
- Znižanje TTL deluje šele, ko stari TTL poteče. Če znižate TTL z 86400 na 300 in takoj zatem spremenite naslov, bodo razreševalniki, ki so zapis pravkar pridobili, še cel dan uporabljali staro vrednost.
Ta zadnja točka je najpogostejša napaka pri TTL. Nov, krajši TTL se mora najprej sam razširiti po vseh predpomnilnikih.
V praksi: tako je videti v nadzorni plošči
V primeru nadzorne plošče DirectAdmin je TTL prikazan kot ločen stolpec v razdelku Upravljanje DNS. TTL enega zapisa spremenite s svinčnikom za tem zapisom. Z gumbom TTL WAARDE OVERSCHRIJVEN nastavite en TTL za vse zapise domene hkrati. V Moj WebOké TTL vidite v seznamu zapisov na zavihku DNS, izbirate pa ga v oknu, kjer dodajate ali urejate zapis.
Druge nadzorne plošče delujejo podobno: pri cPanel, Plesk, Cloudflare in večini registrarjev se polje prav tako imenuje TTL. Včasih izberete iz seznama (na primer "5 minut", "1 ura", "Samodejno") namesto vpisa števila v sekundah. Pri Cloudflare "Samodejno" za zapise brez posredovanja (proxy) pomeni 300 sekund.
Povzetek
- TTL določa, koliko sekund sme odgovor DNS ostati v predpomnilniku.
- Vsak razreševalnik šteje od trenutka, ko je zapis pridobil; zato vsi ne vidijo spremembe hkrati.
- Pri avtoritativnem imenskem strežniku vidite poln TTL, pri razreševalniku pa upadajočo vrednost.
- 3600 je dobra privzeta vrednost; začasno jo znižajte na 300 pred načrtovano spremembo, in sicer vsaj en star TTL vnaprej.
Kviz
Naloga
Naloga Z6.1: TTL pri viru in pri razreševalniku. S spletnim orodjem DNS ali z ukazom dig poiščite TTL zapisa A domene sidn.nl, neposredno pri enem od imenskih strežnikov domene sidn.nl same (na primer ns1.sidn.nl). Vnesite TTL v sekundah. Nato povprašajte po istem zapisu pri javnem razreševalniku in vnesite tudi tisti TTL. V enem stavku razložite, zakaj se obe številki lahko razlikujeta.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Naloga O6.1: Samostojna nastavitev v Vaši vadbeni coni. V Vaši vadbeni coni že obstaja zapis A <code>.dnspractice.euttl-test., ki kaže na <code>.dnspractice.eu192.0.2.61, s TTL 300 sekund. Znižajte TTL na 60 sekund, kot bi storili pred prenosom, naslov pa pustite nespremenjen. Nato z ukazom dig pri imenskem strežniku vadbene cone preverite, ali je nov TTL viden. Oddajte, ko je TTL enak 60.
Vadbena cona uporablja kratke vrednosti TTL (med 30 in 300 sekundami), da Vam ni treba čakati; pri Vaši pravi domeni uporabite na primer 3600 kot privzeto vrednost in 300 tik pred spremembo.
Naloga O6.1
To nalogo opravite v svoji lastni vadbeni coni: pravi DNS coni na imenskih strežnikih WebOké, namenjeni samo Vam. Prijavite se s svojim e-poštnim naslovom. Po e-pošti boste prejeli prijavno povezavo in se nato vrnili na to lekcijo. Vaš naslov uporabljamo samo za namene tečaja.
Za nadaljnje branje
Koraki v teh člankih se nanašajo na nadzorne plošče WebOké; v drugih nadzornih ploščah deluje podobno.
- Priročnik DirectAdmin 5.11: Kdaj začne sprememba veljati? Čakalni čas in TTL
- Priročnik DirectAdmin 5.2: Odpiranje upravljanja DNS in branje zapisov
- Koliko časa traja sprememba nameserverja ali DNS-ja, in kaj storiti, če je ne vidite?
- Priročnik WebOké 5.4: Upravljanje DNS: dodajanje, spreminjanje in brisanje zapisov
