TTL neříká, za jak dlouho se DNS „propaguje“. Je to doba v sekundách, po kterou si resolver smí pamatovat získaný záznam. Dokud cache nevyprší, může návštěvník dostávat dřívější IP adresu nebo původní cíl CNAME záznamu, i když už jste změnu u autoritativních DNS serverů uložili.
Co TTL ovlivňuje
TTL je součástí odpovědi pro konkrétní záznam, například A, AAAA, MX nebo CNAME. Každý resolver jej odpočítává samostatně. Proto dva uživatelé nemusí novou hodnotu vidět ve stejnou chvíli: jeden mohl starou odpověď získat před minutou, druhý těsně před změnou.
Standard DNS popisuje TTL jako hodnotu určující dobu života uloženého záznamu; podrobnosti formátu záznamů najdete v RFC 1035. Vedle běžných odpovědí existuje i záporná cache: chybějící jméno nebo záznam může resolver dočasně pamatovat podle údajů SOA, jak popisuje RFC 2308.
Kdy TTL snížit
Nižší TTL má smysl před předem známou změnou, například při migraci webu na nový server, změně poskytovatele e-mailu nebo přepnutí služby za CNAME. Nesnižujte jej až v okamžiku přepnutí: resolvery, které si starou delší hodnotu uložily dříve, ji budou používat až do jejího vypršení.
Rozumný postup je snížit TTL alespoň o délku původního TTL před plánovanou změnou. Má-li záznam TTL 24 hodin a chcete při přepnutí krátkou cache, upravte jej nejméně den dopředu. Až poté, co se stará odpověď vytratí z cache, má kratší TTL praktický účinek.
Bezpečný postup při změně DNS
- Zapište si současné záznamy včetně hodnot, priorit MX a TTL.
- Snižte TTL jen u záznamů, které budete měnit, a počkejte alespoň původní TTL.
- Připravte nový server nebo e-mailovou službu tak, aby fungovala souběžně se starou.
- Změňte záznam a ověřte odpověď přímo na autoritativním DNS serveru i přes běžný resolver.
- Po stabilizaci vraťte TTL na hodnotu vhodnou pro běžný provoz a uložte si konečné nastavení.
Při změně e-mailu nepřepínejte bez kontroly jen MX záznam. Ověřte také SPF, DKIM a DMARC; související postup shrnuje návod jak nastavit DMARC. U webu ověřte HTTPS, přihlášení a formuláře na nové adrese dřív, než ukončíte starý server.
Jak TTL ověřit
V příkazovém řádku lze odpověď zobrazit například příkazem nslookup -type=A example.cz nebo nástrojem dig example.cz A. V administraci DNS se hodnoty často zadávají v sekundách; 300 znamená pět minut, 3600 jednu hodinu a 86400 jeden den. Nezaměňujte TTL se sériovým číslem SOA: serial pomáhá autoritativním DNS serverům poznat změnu zóny, zatímco TTL řídí cache odpovědi.
Nejčastější chyby
- Snížení TTL až po přepnutí, kdy už dlouhá cache běží u části resolverů.
- Velmi nízké TTL natrvalo bez důvodu; zvyšuje počet DNS dotazů a nepřináší samo o sobě vyšší dostupnost.
- Smazání starého záznamu dřív, než je nový cíl otestovaný a dostupný.
- Přehlédnutí záporné cache při vytváření nového názvu, například nové subdomény.
Praktické shrnutí
TTL je plánovací nástroj, ne tlačítko pro okamžité přepnutí DNS. U důležité změny nejdřív snižte TTL s dostatečným předstihem, připravte oba cíle pro souběžný provoz a ověřte odpovědi z více míst. Po úspěšném přepnutí TTL opět nastavte na běžnou provozní hodnotu.