Wat is TTL en wat betekent het voor DNS?
Auteur: Redactie Domeny.ForSale Gepubliceerd
In het kort: TTL (Engels: Time To Live) is een parameter die bepaalt hoelang gegevens geldig mogen blijven of hoelang een pakket in het netwerk mag circuleren. In de instellingen van een domein staat TTL vooral voor de tijd dat een antwoord van DNS in de cache mag blijven, meestal uitgedrukt in seconden. Een lagere waarde zorgt ervoor dat wijzigingen sneller zichtbaar kunnen worden, maar garandeert niet dat alle gebruikers ze tegelijk zien.
Wat betekent TTL bij DNS?
DNS is een systeem waarmee diensten kunnen worden gevonden die aan een domeinnaam zijn gekoppeld, bijvoorbeeld het IP-adres van de server van een website. Deze informatie wordt vastgelegd in records: een A-record verwijst naar een IPv4-adres en een MX-record geeft aan welke servers de e-mail afhandelen. Bij deze gegevens hoort een TTL, die aangeeft hoelang een opgeslagen antwoord mag worden gebruikt zonder het opnieuw bij de bron op te vragen.
Vragen van gebruikers worden vaak afgehandeld door een resolver voor DNS: een server die antwoorden opzoekt en in een cache bewaart. Daardoor hoeft deze niet bij elk bezoek aan een website de autoritatieve server te raadplegen, de server die de officiële records van het domein publiceert.
Heeft een record TTL 3600, dan mag het antwoord normaal gesproken vanaf het ophalen een uur worden bewaard. De waarde 300 staat voor vijf minuten en 86400 voor een etmaal. TTL zegt niets over de geldigheidsduur van de domeinregistratie of de vervaldatum van het certificaat voor HTTPS.
Hoe beïnvloedt TTL een adreswijziging van je website?
Stel dat het A-record van een domein naar de oude hosting verwijst en een TTL van 3600 seconden heeft. Een resolver haalt het record om 12:00 op en jij wijzigt om 12:10 het IP-adres naar het nieuwe adres. Deze resolver kan tot ongeveer 13:00 nog het oude adres teruggeven, omdat het eerder opgehaalde antwoord in zijn cache geldig blijft.
Een andere resolver die het record om 12:15 voor het eerst opvraagt, kan al het nieuwe adres ontvangen. Daarom komen na een wijziging in DNS sommige mensen op de nieuwe server terecht en anderen nog op de oude. Dat hoeft niet op een configuratiefout te wijzen.
Een wijziging van TTL verkort niet met terugwerkende kracht de geldigheidsduur van antwoorden die al in caches van anderen zijn opgeslagen. Als je tegelijk het IP-adres wijzigt en TTL verlaagt van een etmaal naar vijf minuten, kunnen eerder opgeslagen kopieën nog volgens de oude waarde geldig blijven.
De term ‘propagatie van DNS’ wordt soms gebruikt als korte aanduiding voor dit proces. Het gaat echter niet om één wereldwijd mechanisme dat de wijziging op een vast tijdstip verspreidt. Onafhankelijke caches, het bijwerken van de servers van de aanbieder van DNS en soms ook het gedrag van het besturingssysteem of de applicatie spelen een rol. TTL is dus een belangrijke tijdsindicatie, geen garantie dat alle gebruikers op een precies moment worden overgeschakeld.
Welke TTL-waarde kies je?
Dat hangt af van hoe vaak je het record wijzigt en hoe belangrijk het is dat antwoorden snel worden ververst. De onderstaande waarden zijn voorbeelden voor verschillende situaties, geen verplichte instellingen.
| Situatie | Voorbeeld van TTL | Reden |
|---|---|---|
| Geplande migratie van een website | 300 seconden | Verkort de periode waarin het oude antwoord wordt gebruikt, als je TTL vooraf verlaagt |
| Normaal gebruik van een website | 3600 seconden | Een compromis tussen verversen en gebruikmaken van de cache |
| Record dat zelden verandert | 86400 seconden | Maakt het mogelijk opgeslagen gegevens langer te gebruiken |
Een lage TTL betekent dat autoritatieve servers vaker worden bevraagd. Een hoge TTL beperkt het aantal van zulke vragen, maar maakt het lastiger om een mislukte wijziging snel terug te draaien. Alleen TTL verlagen maakt het laden van afbeeldingen of het uitvoeren van de websitecode niet sneller.
Niet elke aanbieder laat je een willekeurige waarde invullen. Het beheerpaneel kan een minimum opleggen, een optie ‘automatisch’ aanbieden of TTL zelf beheren voor diensten die als tussenlaag het verkeer afhandelen. Controleer de betekenis van deze instellingen en het beschikbare bereik in de actuele documentatie van je aanbieder van DNS.
Hoe stel je TTL in vóór een hostingmigratie?
Het belangrijkste is dat je TTL tijdig verlaagt, voordat je naar de nieuwe server overschakelt. Heeft een record tot dan toe een TTL van een etmaal, plan de verlaging dan minstens een etmaal vóór de omschakeling. Reken daarbij vanaf het moment dat de wijziging op de autoritatieve servers is gepubliceerd.
- Controleer de huidige records en hun TTL. Bepaal welke adressen je wijzigt; een website kan zowel een A-record gebruiken als een AAAA-record dat naar een IPv6-adres verwijst.
- Verlaag TTL voor die records, bijvoorbeeld naar 300 seconden, als de aanbieder dat toestaat. Wacht vervolgens de oude TTL-periode af.
- Bereid de nieuwe hosting voor. Controleer of de website werkt, of het certificaat voor HTTPS in orde is en of de databaseverbinding werkt voordat je DNS wijzigt.
- Wijzig de records en houd beide servers in de gaten. Schakel de oude hosting niet meteen uit. Zorg bij een webwinkel of formulieren ook dat de gegevens tijdens de overgang consistent blijven.
- Zet TTL terug naar de gebruikelijke waarde zodra alles stabiel werkt, als de korte geldigheidsduur niet meer nodig is.
Deze procedure geldt voor het wijzigen van records voor diensten. Bij een wijziging van de nameservers van een domein speelt ook delegatie een rol: daarmee wordt aangegeven welke servers verantwoordelijk zijn voor het DNS van dat domein. Alleen TTL van het A-record verlagen is niet voldoende om die hele omschakeling te sturen.
Wat betekent TTL buiten DNS?
In IPv4-pakketten beperkt TTL het aantal routers dat een pakket mag passeren. Hoewel de naam naar tijd verwijst, verlaagt in de praktijk elke router die het pakket doorstuurt deze waarde met één. Zodra de waarde op is, wordt het pakket weggegooid. Zo wordt het netwerk beschermd tegen pakketten die eindeloos in een lus blijven circuleren. Het equivalent in IPv6 is het veld Hop Limit.
TTL komt ook voor in applicatiecaches. Daar bepaalt het hoelang een opgeslagen resultaat geldig blijft, bijvoorbeeld een antwoord dat via een API is opgehaald. Controleer daarom altijd de context: TTL bij een domeinrecord heeft betrekking op DNS, terwijl TTL in de uitvoer van het commando ping betrekking heeft op een netwerkpakket.
Bereid je een hostingwijziging voor, begin dan met het controleren van de huidige TTL. Daarmee kun je bepalen hoelang van tevoren je met de voorbereidingen moet beginnen.
Zie ook: Wat is een VPS?
