Moodul 6 · 6.1
TTL ja vahemälu
Moodul 6: Aeg, vahemälu ja ülekanne · Lugemisaeg: 7 minutit
Õpieesmärk: Pärast seda tundi oskad selgitada, mis on kirje TTL, kuidas vahemälud seda kasutavad ja millise TTL-i valid millises olukorras.
Põhimõisted: TTL (Time To Live), vahemälu, resolveri vahemälu, sinu arvuti ja brauseri vahemälu, allakerimine TTL-i näol, tüüpilised TTL-väärtused (300, 3600, 86400)
Miks DNS mäletab
Tunnis 1.4 nägid, kuidas resolver vastuse üles otsib: kõigepealt juurserverist, siis TLD-serverist ja lõpuks domeeni autoriteetsest nimeserverist. Kui see peaks juhtuma iga kord uuesti, kui keegi veebisaidil klikib, oleks internet palju aeglasem ja nimeserverid murduksid kõigi päringute koormuse all.
Seepärast jätavad resolverid iga vastuse mõneks ajaks meelde. Seda mälu nimetatakse vahemäluks. Kui keegi teine küsib sama nime, annab resolver vastuse kohe oma vahemälust, ilma kogu teekonda uuesti läbimata.
Küsimus on, kui kaua tohib resolver vastust meeles pidada. Selle määrab domeeni omanik iga kirje TTL-iga.
Mis on TTL
TTL tähendab Time To Live: aeg, mille jooksul kirje tohib vahemälus olla, sekundites. Igal kirjel on oma TTL. Tsoonis näeb see välja nii:
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"Number nime järel on TTL. Siin tohivad A- ja MX-kirjed jääda meelde üheks tunniks (3600 sekundit) ja DMARC-kirje neljaks tunniks (14400 sekundit).
Levinud väärtused:
| TTL | On | Millal kasutad? |
|---|---|---|
| 300 | 5 minutit | Vahetult enne ja ajal, mil ülekanne toimub, või kui vahetad sageli |
| 3600 | 1 tund | Hea vaikeväärtus enamiku kirjete jaoks |
| 14400 | 4 tundi | Kirjed, mis harva muutuvad |
| 86400 | 1 päev | Kirjed, mis peaaegu kunagi ei muutu, näiteks NS-kirjed |
TTL on number vahemikus 0 kuni 2 147 483 647 sekundit (2^31 - 1, nii seisab RFC 2181-s). Praktikas kohtad harva midagi, mis ületab päeva või kahte. Paljud resolverid kasutavad ka oma maksimumi, sageli päev või nädal.
Allakerimine
TTL ei ole kogu maailma jaoks ühesugune kell. Iga resolver hakkab lugema alles hetkest, mil ta kirje hangib.
Üks näide. Domeeni example.com A-kirjel on TTL 3600.
- Kell 10:00 küsib A-teenusepakkuja resolver kirje. Ta saab
192.0.2.10ja tohib seda meeles pidada kuni 11:00-ni. - Kell 10:40 küsib B-teenusepakkuja resolver sama kirje. Tema peab seda meeles kuni 11:40-ni.
- Kell 10:45 muudad kirje aadressiks
198.51.100.10. - A-teenusepakkuja kasutajad näevad uut aadressi alates 11:00-st, B-teenusepakkuja kasutajad alles alates 11:40-st.
Kui küsid kirjet resolverilt, kellel see juba vahemälus on, näed väljundis TTL-i, mis järjest väheneb. Autoriteetse nimeserveri juures näed alati täisväärtust:
; autoriteetse nimeserveri juures
example.com. 3600 IN A 192.0.2.10
; resolveri juures, 25 minutit hiljem
example.com. 2100 IN A 192.0.2.10Seda on kasulik teada: kui sinu resolveri juures on näha veel 2100 sekundit, annab see vana vastust veel 35 minutit.
Kes kõik mäletab
Mitte ainult sinu internetiteenuse pakkuja resolveril pole vahemälu. On veel kihte:
- Resolver, mis kuulub sinu teenusepakkujale, ettevõtte võrgule või avalikule resolverile (näiteks 1.1.1.1, 8.8.8.8 või 9.9.9.9).
- Sinu ruuter kodus või kontoris, mis sageli ise väikese resolverina toimib.
- Sinu arvuti või telefoni operatsioonisüsteem.
- Sinu brauser, mis mõnikord hoiab DNS-vastuseid samuti veidi aega alles.
Iga kiht järgib põhimõtteliselt TTL-i, kuid mitte iga kiht ei tee seda täpselt. Seetõttu võib see sinu sülearvutis kesta veidi kauem kui kolleegi omas. Kuidas neid vahemälusid tühjendada, loed tunnist 6.2.
Õige TTL-i valimine
Lühike TTL tundub mugav: siis on muudatused kiiresti kõikjal nähtavad. Kuid sellel on ka puudus. Resolverid peavad siis kirjet palju sagedamini uuesti küsima. See teeb sinu saidi esmase laadimise pisut aeglasemaks ja kui su nimeserverid on hetkeks kättesaamatud, muutub su domeen kiiremini ligipääsmatuks. Tunniajase TTL-iga saavad resolverid lühikese nimeserveri katkestuse oma vahemälu abil üle elada.
Mõned rusikareeglid:
- Vaikimisi: 3600 sekundit. See on hea tasakaal.
- Planeeritud muudatuse jaoks: ajutiselt 300. Vähenda TTL-i vähemalt ühe vana TTL-i võrra enne muudatust. Kui seal oli 3600, tee seda vähemalt tund aega ette, turvalisem on terve päev ette. Kui seal oli 86400, siis vähemalt päev ette. Pärast muudatust pane see tagasi. Kuidas seda ülekande ajal teha, loed tunnist 6.3.
- Alla 60 sekundi pole eriti mõtet. Mõned resolverid eiravad väga lühikesi TTL-e ja kasutavad oma miinimumi.
- TTL-i vähendamine toimib alles siis, kui vana TTL on möödunud. Kui vähendad TTL-i 86400-lt 300-le ja muudad kohe pärast seda aadressi, hoiavad resolverid, mis kirje just hankisid, vana väärtust veel terve päeva.
See viimane punkt on kõige levinum TTL-idega seotud viga. Uus, lühike TTL peab esmalt ise kõigisse vahemälusse jõudma.
Praktikas: kuidas see paneelis välja näeb
Näidispaneelis DirectAdmin on TTL eraldi veerg jaotises DNS Administration. Üksiku kirje TTL-i muudad selle kirje taga oleva pliiatsiga. Nupuga TTL WAARDE OVERSCHRIJVEN määrad korraga ühe TTL-i kõigile domeeni kirjetele. Minu WebOkés näed TTL-i kirjete loendis vahekaardil DNS ning valid selle aknas, kus lisad või muudad kirjet.
Teised paneelid töötavad sarnaselt: cPanelis, Pleskis, Cloudflare'is ja enamikus registripidajate juures nimetatakse välja samuti TTL. Mõnikord valid loendist (näiteks "5 minutit", "1 tund", "Auto") selle asemel, et sekundites numbrit sisestada. Cloudflare'is tähendab "Auto" ilma proksita kirjete puhul 300 sekundit.
Kokkuvõte
- TTL määrab, mitu sekundit tohib DNS-vastus vahemälus olla.
- Iga resolver loeb alates hetkest, mil ta kirje hankis, seepärast ei näe kõik muudatust samal ajal.
- Autoriteetse nimeserveri juures näed täisväärtust, resolveri juures aga vähenevat väärtust.
- 3600 on hea vaikeväärtus; vähenda ajutiselt 300-le enne planeeritud muudatust, ja seda vähemalt ühe vana TTL-i võrra ette.
Test
Ülesanne
Ülesanne Z6.1: TTL allika juures ja resolveri juures. Leia veebipõhise DNS-tööriista või käsu dig abil domeeni sidn.nl A-kirje TTL otse ühe sidn.nl enda nimeserveri juurest (näiteks ns1.sidn.nl). Sisesta TTL sekundites. Seejärel küsi sama kirje avalikult resolverilt ja sisesta ka see TTL. Selgita ühe lausega, miks need kaks arvu võivad erineda.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Ülesanne O6.1: Ise seadistamine harjutustsoonis. Sinu harjutustsoonis on juba olemas A-kirje <code>.dnspractice.euttl-test., mis osutab aadressile <code>.dnspractice.eu192.0.2.61 TTL-iga 300 sekundit. Vähenda TTL-i 60 sekundile, nagu teeksid enne ülekannet, ja jäta aadress muutmata. Seejärel kontrolli käsuga dig harjutustsooni nimeserveri juures, kas uus TTL on seal näha. Esita, kui TTL on 60.
Harjutustsoon kasutab lühikesi TTL-e (30 kuni 300 sekundit), et sa ei peaks ootama; päris domeenis kasutad näiteks vaikeväärtusena 3600 ja 300 vahetult enne muudatust.
Ülesanne O6.1
Selle ülesande teed oma harjutustsoonis: päris DNS-tsoonis WebOké nimeserverites, mis on ainult sinu jaoks. Logi sisse oma e-posti aadressiga. Saad meili teel sisselogimislingi ja jõuad siis tagasi selle tunni juurde. Kasutame su aadressi ainult kursuse jaoks.
Loe edasi
Nende artiklite sammud puudutavad WebOké paneele; teistes paneelides töötab see sarnaselt.
