Modul 6 · 6.1
TTL i predmemorija
Modul 6: Vrijeme, predmemorija i prijenos domene · Vrijeme čitanja: 7 minuta
Cilj lekcije: Nakon ove lekcije moći ćete objasniti što je TTL zapisa, kako ga predmemorije koriste i koji TTL odabrati u kojoj situaciji.
Ključni pojmovi: TTL (Time To Live), predmemorija (cache), predmemorija resolvera, predmemorija Vašeg računala i preglednika, TTL koji istječe, tipične vrijednosti TTL-a (300, 3600, 86400)
Zašto DNS pamti
U lekciji 1.4 vidjeli ste kako resolver traži odgovor: prvo kod root poslužitelja, zatim kod TLD poslužitelja i na kraju kod autoritativnog poslužitelja imena domene. Kad bi se to moralo ponavljati pri svakom kliku na web stranicu, internet bi bio znatno sporiji, a poslužitelji imena bi podlegli pod svim upitima.
Zato resolveri pamte svaki odgovor neko vrijeme. Ta memorija zove se predmemorija (cache). Ako netko drugi zatraži isti naziv, resolver odmah daje odgovor iz svoje predmemorije, bez cijelog puta ponovno.
Pitanje je onda: koliko dugo resolver smije pamtiti odgovor? To određuje vlasnik domene, pomoću TTL-a svakog zapisa.
Što je TTL
TTL znači Time To Live: vrijeme koliko zapis smije ostati u predmemoriji, izraženo u sekundama. Svaki zapis ima vlastiti TTL. U zoni to izgleda ovako:
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"Broj iza naziva je TTL. Ovdje se A i MX zapisi smiju pamtiti jedan sat (3600 sekundi), a DMARC zapis četiri sata (14400 sekundi).
Uobičajene vrijednosti:
| TTL | Je | Kada ga koristite? |
|---|---|---|
| 300 | 5 minuta | Neposredno prije i tijekom prijenosa domene, ili kad često mijenjate vrijednosti |
| 3600 | 1 sat | Dobar standard za većinu zapisa |
| 14400 | 4 sata | Zapisi koji se rijetko mijenjaju |
| 86400 | 1 dan | Zapisi koji se gotovo nikad ne mijenjaju, poput NS zapisa |
TTL je broj između 0 i 2.147.483.647 sekundi (2^31 - 1, tako stoji u RFC 2181). U praksi rijetko ćete naići na nešto iznad jednog ili dva dana. Mnogi resolveri primjenjuju i vlastiti maksimum, često dan ili tjedan.
Odbrojavanje
TTL nije fiksni sat za cijeli svijet. Svaki resolver počinje brojati tek u trenutku kad dohvati zapis.
Primjer. A zapis za example.com ima TTL 3600.
- U 10:00 resolver pružatelja A dohvaća zapis. Dobiva
192.0.2.10i smije ga pamtiti do 11:00. - U 10:40 resolver pružatelja B dohvaća isti zapis. Pamti ga do 11:40.
- U 10:45 mijenjate zapis na
198.51.100.10. - Korisnici pružatelja A vide novu adresu od 11:00, korisnici pružatelja B tek od 11:40.
Zatražite li zapis kod resolvera koji ga već ima u predmemoriji, u ispisu ćete vidjeti TTL koji se postupno smanjuje. Kod autoritativnog poslužitelja imena uvijek vidite punu vrijednost:
; kod autoritativnog poslužitelja imena
example.com. 3600 IN A 192.0.2.10
; kod resolvera, 25 minuta kasnije
example.com. 2100 IN A 192.0.2.10To je korisno znati: ako kod Vašeg resolvera vidite još 2100 sekundi, znači da će još 35 minuta davati stari odgovor.
Tko sve pamti
Nije samo resolver Vašeg internetskog pružatelja taj koji ima predmemoriju. Postoji više slojeva:
- Resolver Vašeg pružatelja, poslovne mreže ili javni resolver (na primjer 1.1.1.1, 8.8.8.8 ili 9.9.9.9).
- Vaš ruter kod kuće ili u uredu, koji često i sam djeluje kao mali resolver.
- Operacijski sustav Vašeg računala ili telefona.
- Vaš preglednik, koji također ponekad kratko zadržava DNS odgovore.
Svaki sloj se u načelu drži TTL-a, ali ne radi to svaki sloj potpuno precizno. Zato Vam na prijenosnom računalu nešto može trajati malo dulje nego Vašem kolegi. Kako čistiti te predmemorije, pročitajte u lekciji 6.2.
Odabir pravog TTL-a
Kratak TTL djeluje praktično: promjene su tada brzo vidljive posvuda. No postoji i nedostatak. Resolveri tada moraju mnogo češće iznova dohvaćati zapis. To malo usporava prvo učitavanje Vaše stranice, a ako Vaši poslužitelji imena nakratko postanu nedostupni, Vaša domena postaje brže nedostupna. S TTL-om od jednog sata resolveri mogu kratki ispad poslužitelja imena premostiti pomoću svoje predmemorije.
Nekoliko smjernica:
- Standard: 3600 sekundi. To je dobra ravnoteža.
- Za planiranu promjenu: privremeno 300. Smanjite TTL najmanje jedan stari TTL prije promjene. Ako je stajalo 3600, to radite najmanje sat vremena unaprijed, sigurnije dan unaprijed. Ako je stajalo 86400, onda najmanje dan unaprijed. Nakon promjene vratite ga natrag. Kako to riješiti kod prijenosa domene, pročitajte u lekciji 6.3.
- Manje od 60 sekundi nema puno smisla. Neki resolveri zanemaruju vrlo kratke TTL vrijednosti i primjenjuju vlastiti minimum.
- Smanjenje TTL-a djeluje tek kad istekne stari TTL. Ako smanjite TTL s 86400 na 300 i odmah nakon toga promijenite adresu, resolveri koji su upravo dohvatili zapis zadržat će staru vrijednost još cijeli dan.
Ta posljednja točka najčešća je greška kod TTL-ova. Novi, kratki TTL mora se najprije sam proširiti u sve predmemorije.
U praksi: kako to izgleda u panelu
U primjeru panela DirectAdmin TTL stoji kao zaseban stupac u DNS Administration. TTL jednog zapisa mijenjate olovčicom pokraj tog zapisa. Gumbom TTL WAARDE OVERSCHRIJVEN postavljate jedan TTL za sve zapise domene istovremeno. U Moj WebOké vidite TTL u popisu zapisa na kartici DNS, a birate ga u prozoru u kojem dodajete ili uređujete zapis.
Drugi paneli rade slično: kod cPanela, Pleska, Cloudflarea i većine registrara to se polje također zove TTL. Ponekad birate iz popisa (na primjer "5 minuta", "1 sat", "Auto") umjesto da upisujete broj u sekundama. Kod Cloudflarea "Auto" za zapise bez proxyja znači 300 sekundi.
Sažetak
- TTL određuje koliko sekundi DNS odgovor smije ostati u predmemoriji.
- Svaki resolver broji od trenutka kad je dohvatio zapis; zato svi ne vide promjenu istovremeno.
- Kod autoritativnog poslužitelja imena vidite puni TTL, kod resolvera vrijednost koja se smanjuje.
- 3600 je dobar standard; privremeno smanjite na 300 prije planirane promjene, i to najmanje jedan stari TTL unaprijed.
Kviz
Zadatak
Zadatak Z6.1: TTL kod izvora i kod resolvera. Pomoću online DNS alata ili naredbe dig pronađite TTL A zapisa domene sidn.nl, izravno kod jednog od poslužitelja imena domene sidn.nl (na primjer ns1.sidn.nl). Upišite TTL u sekundama. Zatim zatražite isti zapis kod javnog resolvera i upišite i taj TTL. U jednoj rečenici objasnite zašto se ta dva broja mogu razlikovati.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Zadatak O6.1: Samostalno postavljanje u Vašoj zoni za vježbu. U Vašoj zoni za vježbu već postoji A zapis <code>.dnspractice.euttl-test. koji pokazuje na <code>.dnspractice.eu192.0.2.61, s TTL-om od 300 sekundi. Smanjite TTL na 60 sekundi, kao što biste učinili prije prijenosa domene, a adresu ostavite nepromijenjenom. Zatim pomoću dig provjerite kod poslužitelja imena zone za vježbu stoji li novi TTL. Predajte zadatak kad TTL iznosi 60.
Zona za vježbu koristi kratke TTL vrijednosti (između 30 i 300 sekundi), tako da ne morate čekati; kod Vaše prave domene koristite primjerice 3600 kao standard i 300 neposredno prije promjene.
Zadatak O6.1
Ovaj zadatak izvodite u svojoj vlastitoj zoni za vježbu: pravoj DNS zoni na poslužiteljima imena tvrtke WebOké, isključivo za Vas. Prijavite se svojom e-mail adresom. Dobit ćete poveznicu za prijavu putem e-pošte i nakon toga se vratiti na ovu lekciju. Vašu adresu koristimo samo za potrebe tečaja.
Dodatno štivo
Koraci u ovim člancima odnose se na panele WebOké; u drugim panelima postupak je sličan.
- DirectAdmin priručnik 5.11: Kada stupa na snagu promjena? Vrijeme čekanja i TTL
- DirectAdmin priručnik 5.2: Otvaranje DNS Administration i čitanje zapisa
- Koliko dugo traje promjena nameservera ili DNS-a, i što ako je ne vidite?
- Priručnik za WebOké 5.4: Upravljanje DNS-om: dodavanje, izmjena i brisanje zapisa
