Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

TTL en cache

Module 6: Tijd, cache en verhuizen · Leestijd: 7 minuten

Leerdoel: Na deze les kun je uitleggen wat de TTL van een record is, hoe caches die gebruiken en welke TTL je in welke situatie kiest.

Kernbegrippen: TTL (Time To Live), cache, resolvercache, cache van je computer en browser, aflopende TTL, typische TTL-waarden (300, 3600, 86400)

---

Waarom DNS onthoudt

In les 1.4 zag je hoe een resolver een antwoord opzoekt: eerst bij een rootserver, dan bij de TLD-server en ten slotte bij de gezaghebbende nameserver van het domein. Als dat bij elke klik op een website opnieuw moest gebeuren, zou internet een stuk trager zijn en zouden nameservers onder alle vragen bezwijken.

Daarom onthouden resolvers elk antwoord een tijdje. Dat geheugen heet de cache. Vraagt iemand anders dezelfde naam op, dan geeft de resolver meteen het antwoord uit zijn cache, zonder de hele reis te maken.

De vraag is dan: hoe lang mag de resolver een antwoord onthouden? Dat bepaalt de eigenaar van het domein, met de TTL van elk record.

Wat de TTL is

TTL staat voor Time To Live: de tijd dat een record in een cache mag blijven, in seconden. Elk record heeft een eigen TTL. In een zone ziet dat er zo uit:

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"

Het getal na de naam is de TTL. Hier mogen de A- en MX-records een uur onthouden worden (3600 seconden) en het DMARC-record vier uur (14400 seconden).

Gangbare waarden:

TTLIsWanneer gebruik je het?
3005 minutenVlak voor en tijdens een verhuizing, of als je vaak wisselt
36001 uurEen goede standaard voor de meeste records
144004 uurRecords die zelden veranderen
864001 dagRecords die bijna nooit veranderen, zoals NS-records

De TTL is een getal tussen 0 en 2.147.483.647 seconden (2^31 - 1, zo staat het in RFC 2181). In de praktijk kom je zelden iets boven een dag of twee tegen. Veel resolvers hanteren ook een eigen maximum, vaak een dag of een week.

Het aftellen

De TTL is geen vaste klok voor de hele wereld. Elke resolver begint pas te tellen op het moment dat hij het record ophaalt.

TTL en cache: hoe lang een antwoord blijft 0:58

Een voorbeeld. Het A-record van example.com heeft TTL 3600.

  • Om 10:00 vraagt de resolver van provider A het record op. Hij krijgt 192.0.2.10 en mag dat onthouden tot 11:00.
  • Om 10:40 vraagt de resolver van provider B het op. Die onthoudt het tot 11:40.
  • Om 10:45 wijzig je het record naar 198.51.100.10.
  • Gebruikers van provider A zien het nieuwe adres vanaf 11:00, gebruikers van provider B pas vanaf 11:40.

Vraag je het record op bij een resolver die het al in zijn cache heeft, dan zie je in de uitvoer een TTL die steeds lager wordt. Bij de gezaghebbende nameserver zie je altijd de volle waarde:

; bij de gezaghebbende nameserver
example.com.   3600   IN  A  192.0.2.10

; bij een resolver, 25 minuten later
example.com.   2100   IN  A  192.0.2.10

Dat is handig om te weten: zie je bij jouw resolver nog 2100 seconden staan, dan geeft hij nog 35 minuten het oude antwoord.

Wie onthoudt er allemaal?

Niet alleen de resolver van je internetprovider heeft een cache. Er zijn meer lagen:

  1. De resolver van je provider, je bedrijfsnetwerk of een publieke resolver (bijvoorbeeld 1.1.1.1, 8.8.8.8 of 9.9.9.9).
  2. Je router thuis of op kantoor, die vaak zelf als kleine resolver werkt.
  3. Het besturingssysteem van je computer of telefoon.
  4. Je browser, die DNS-antwoorden soms ook nog even bewaart.

Elke laag houdt zich in principe aan de TTL, maar niet elke laag doet dat precies. Daarom kan het bij jou op je laptop net iets langer duren dan bij je collega. Hoe je die caches leegt, lees je in les 6.2.

De juiste TTL kiezen

Een korte TTL lijkt handig: wijzigingen zijn dan snel overal zichtbaar. Maar er zit een nadeel aan. Resolvers moeten het record dan veel vaker opnieuw opvragen. Dat maakt de eerste keer laden van je site een fractie trager, en als je nameservers even niet bereikbaar zijn, is je domein sneller onbereikbaar. Met een TTL van een uur kunnen resolvers een korte storing bij de nameserver overbruggen met hun cache.

Een paar vuistregels:

  • Standaard: 3600 seconden. Dat is een goede balans.
  • Voor een geplande wijziging: tijdelijk 300. Verlaag de TTL minstens één oude TTL vóór de wijziging. Stond er 3600, dan doe je dat minstens een uur van tevoren, veiliger nog een dag. Stond er 86400, dan minstens een dag. Na de wijziging zet je hem terug. Hoe je dat bij een verhuizing aanpakt, lees je in les 6.3.
  • Lager dan 60 seconden heeft weinig zin. Sommige resolvers negeren zeer korte TTL's en hanteren een eigen minimum.
  • Een TTL verlagen werkt pas als de oude TTL verstreken is. Verlaag je de TTL van 86400 naar 300 en wijzig je meteen daarna het adres, dan hebben resolvers die het record net hadden opgehaald, de oude waarde nog een hele dag.

Dat laatste punt is de meest gemaakte fout met TTL's. De nieuwe, korte TTL moet eerst zelf in alle caches terechtkomen.

In de praktijk: zo ziet het eruit in een paneel

In het voorbeeldpaneel DirectAdmin staat de TTL als aparte kolom in DNS Beheer. Je wijzigt de TTL van één record met het potlood achter dat record. Met de knop TTL WAARDE OVERSCHRIJVEN zet je één TTL voor alle records van het domein tegelijk. In Mijn WebOké zie je de TTL in de recordlijst op het tabblad DNS en kies je hem in het venster waarin je een record toevoegt of bewerkt.

Andere panelen werken vergelijkbaar: bij cPanel, Plesk, Cloudflare en de meeste registrars heet het veld ook TTL. Soms kies je uit een lijstje (bijvoorbeeld "5 minuten", "1 uur", "Auto") in plaats van een getal in seconden te typen. Bij Cloudflare betekent "Auto" voor records zonder proxy 300 seconden.

Samenvatting

  • De TTL bepaalt hoeveel seconden een DNS-antwoord in een cache mag blijven.
  • Elke resolver telt vanaf het moment dat hij het record ophaalde; daarom ziet niet iedereen een wijziging tegelijk.
  • Bij de gezaghebbende nameserver zie je de volle TTL, bij een resolver een aflopende waarde.
  • 3600 is een goede standaard; verlaag tijdelijk naar 300 vóór een geplande wijziging, en wel minstens één oude TTL van tevoren.

Quiz

1. Een record heeft TTL 300. Wat betekent dat?



2. Je vraagt het A-record van een domein op bij de resolver van je provider en ziet TTL 1250. Bij de gezaghebbende nameserver staat 3600. Wat zegt dat?



3. Je wilt morgen om 9:00 je website naar een andere server laten wijzen. Het A-record heeft nu TTL 86400. Wat is verstandig?



4. Waarom is een heel korte TTL (bijvoorbeeld 30 seconden) voor al je records geen goed idee?



Opdracht

Z6.1 (opzoeken). Zoek met een online DNS-tool of met dig de TTL van het A-record van sidn.nl op, rechtstreeks bij een van de nameservers van sidn.nl zelf (bijvoorbeeld ns1.sidn.nl). Vul de TTL in seconden in. Vraag daarna hetzelfde record op bij een publieke resolver en vul ook die TTL in. Leg in één zin uit waarom de twee getallen kunnen verschillen.

dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9

Opdracht Z6.1: TTL bij de bron en bij de resolver




We slaan niets op van wat je invult of wat we vinden. Alleen je browser onthoudt dat je de opdracht hebt gehaald.

O6.1 (zelf instellen). In je oefenzone <code>.dnspractice.eu staat al een A-record ttl-test.<code>.dnspractice.eu dat wijst naar 192.0.2.61, met een TTL van 300 seconden. Verlaag de TTL naar 60 seconden, zoals je vóór een verhuizing zou doen, en laat het adres ongewijzigd. Kijk daarna met dig bij de nameserver van de oefenzone of de nieuwe TTL er staat. Lever in als de TTL 60 is.

De oefenzone gebruikt korte TTL's (tussen 30 en 300 seconden), zodat je niet hoeft te wachten; bij je echte domein gebruik je bijvoorbeeld 3600 als standaard en 300 vlak voor een wijziging.1 en O6.1.

Opdracht O6.1 Deze opdracht doe je in je eigen oefenzone. De oefenzone komt later beschikbaar.

Verder lezen

De stappen in deze artikelen gaan over de panelen van WebOké; in andere panelen werkt het vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…