Co to jest TTL w DNS i jak time to live wpływa na propagację rekordów?
Zmieniasz rekord DNS i czekasz. Godzinę. Dwie. Strona nadal wskazuje na stary serwer. Ktoś na telefonie widzi nową wersję, ktoś na laptopie przegląda jeszcze starą. Znajomy z innego miasta ma problem z pocztą. To nie jest awaria, to TTL w akcji.
TTL, czyli Time To Live to jeden z tych parametrów DNS, które działają w tle i są niewidoczne, dopóki nie powodują problemów. Zrozumienie TTL pozwala przewidzieć, kiedy zmiany DNS wejdą w życie i zaplanować migrację tak, żeby ograniczyć czas przestoju do minimum.
Czym jest TTL w DNS?
TTL (Time To Live) to liczba sekund, przez którą odpowiedź na zapytanie DNS może być przechowywana w pamięci podręcznej (cache) przez rekurencyjny serwer DNS lub przez system operacyjny klienta. Po upływie TTL serwer traktuje dane jako nieaktualne i przy kolejnym zapytaniu pobiera świeżą odpowiedź z autorytatywnego serwera DNS.
Każdy rekord DNS ma własną wartość TTL. W pliku strefy DNS wygląda to tak:
twojadomena.pl. 3600 IN A 185.230.64.10
; ^^^^
; TTL = 3600 sekund = 1 godzina
Rekord A z TTL 3600 oznacza: „serwery DNS mogą przechowywać tę informację w cache przez 1 godzinę. Po tym czasie muszą pobrać ją ponownie z serwera autorytatywnego".
Jak TTL wpływa na propagację DNS?
Gdy zmieniasz wartość rekordu DNS (np. adres IP w rekordzie A), zmiana jest natychmiastowa na autorytatywnym serwerze DNS. Serwer przechowujący Twoją strefę DNS od razu zwraca nową wartość. Problem polega na tym, że miliony rekurencyjnych serwerów DNS na całym świecie (serwery ISP, Google 8.8.8.8, Cloudflare 1.1.1.1) mogą mieć w cache starą wartość i będą ją serwować do momentu wygaśnięcia TTL.
Użytkownik, który pytał o Twoją domenę godzinę temu, przez następną godzinę (lub tyle, ile wynosi TTL) otrzymywać będzie z cache poprzednie informacje, nawet jeśli zmiana rekordu już nastąpiła. Użytkownik, który zapyta pierwszy raz po zmianie rekordu, otrzyma natychmiastowo nową wartość.
To właśnie dlatego „propagacja DNS", czyli rozchodzenie się zmian przez globalny system DNS, nie jest zdarzeniem jednorazowym, ale procesem rozłożonym w czasie, zależnym od TTL każdego rekordu.
Typowe wartości TTL i kiedy je stosować
300 sekund (5 minut) — bardzo niskie TTL
Stosuj w sytuacjach wymagających szybkich zmian: kilka godzin przed planowaną migracją serwera, gdy testujesz konfigurację DNS, przy wdrożeniu nowej usługi wymagającej weryfikacji. Minusem jest większa liczba zapytań do autorytatywnego serwera DNS i minimalnie dłuższy czas odpowiedzi dla użytkowników.
900–1800 sekund (15–30 minut) — niskie TTL
Dobry kompromis dla środowisk, gdzie zmiany są częste np. środowiska deweloperskie lub staging. Zmiany propagują się w ciągu 15–30 minut od modyfikacji rekordu.
3600 sekund (1 godzina) — standardowe TTL
Najczęściej stosowana wartość dla typowych stron produkcyjnych. Równoważy szybkość propagacji zmian z wydajnością cache DNS. Dobry wybór dla większości rekordów A, CNAME i MX.
86400 sekund (24 godziny) — wysokie TTL
Stosuj dla rekordów, które zmieniają się rzadko lub nigdy — np. rekordy NS, SOA, rekordy MX stabilnych serwerów pocztowych. Wysoki TTL redukuje liczbę zapytań DNS i przyspiesza odpowiedzi dla powracających użytkowników dzięki długiemu buforowaniu.
600–1800 sekund — zalecane dla większości rekordów
Konsensus branżowy dla rekordów A, CNAME i MX na produkcji. Wystarczająco krótkie, żeby zmiany propagowały się w rozsądnym czasie (maksymalnie 30 minut przy niskim TTL). Wystarczająco długie, żeby nie przeciążać serwerów DNS częstymi zapytaniami.
Strategia TTL przed migracją hostingu
Migracja strony na nowy serwer to najpowszechniejsza sytuacja, w której TTL ma bezpośredni wpływ na doświadczenie użytkowników. Bez właściwej strategii TTL możesz mieć przez kilkanaście godzin sytuację, w której część użytkowników widzi starą wersję strony, a część nową. Jest to szczególnie problematyczne dla sklepów WooCommerce i aplikacji wymagających spójności sesji.
Optymalna strategia TTL dla migracji:
- Co najmniej 48 godzin przed migracją: obniż TTL rekordów A (i AAAA, jeśli masz) do 300–600 sekund. Zanim ta zmiana wejdzie w życie, musi minąć czas równy poprzedniemu TTL (np. 24 godziny przy domyślnym TTL 86400 sekund).
- Poczekaj na wygaśnięcie starego TTL — dopiero wtedy serwery DNS zaczną pobierać nową, niską wartość TTL z autorytatywnego serwera.
- W dniu migracji: zmień adres IP w rekordzie A na nowy serwer. Dzięki niskiemu TTL (300–600 sekund) większość serwerów DNS na świecie odbierze zmianę w ciągu 5–10 minut.
- Po zakończeniu migracji i weryfikacji działania: przywróć TTL do poprzedniej wartości (np. 3600).
Przy korzystaniu z darmowej migracji dostawca hostingu przeprowadzi przez ten proces, w tym przez prawidłowe zarządzanie TTL przed i po przeniesieniu. Warto też mieć aktualną kopię zapasową strony wykonaną tuż przed zmianą DNS, na wypadek, gdyby coś poszło nie tak podczas okna propagacji.
TTL a lokalne buforowanie DNS
TTL dotyczy nie tylko rekurencyjnych serwerów DNS ISP. Twój komputer też buforuje odpowiedzi DNS w lokalnym cache systemu operacyjnego. Windows, macOS i Linux mają wbudowane mechanizmy buforowania DNS, które respektują TTL z odpowiedzi serwerów DNS.
Jeśli po zmianie rekordu DNS chcesz natychmiastowo zobaczyć nową wartość na swoim komputerze, możesz wyczyścić lokalny cache DNS:
- Windows:
ipconfig /flushdns - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Linux:
sudo systemd-resolve --flush-caches(systemd) lubsudo service nscd restart
Wyczyszczenie lokalnego cache nie wpływa na cache u dostawcy internetu ani na innych serwerach DNS, dlatego po wyczyszczeniu cache na własnym komputerze możesz widzieć nową wartość, podczas gdy inni użytkownicy nadal widzą starą.
TTL a wydajność strony
Wysokie TTL oznacza, że serwery DNS rzadziej wykonują zapytania do autorytatywnego serwera, co przyspiesza odpowiedź DNS dla użytkowników, którzy odwiedzili stronę wcześniej (wartość jest w cache). To jeden z elementów optymalizacji wydajności DNS.
Czas odpowiedzi DNS (DNS lookup time) jest widoczny w narzędziach takich jak Google PageSpeed Insights i WebPageTest jako osobna metryka. Dobra konfiguracja DNS na hostingu stron WWW z szybkimi autorytatywnymi serwerami DNS i rozsądnymi wartościami TTL przekłada się na niższy czas DNS lookup dla pierwszych odwiedzin użytkownika.
Sieci CDN, takie jak CDN, obsługują też buforowanie rekordów DNS na poziomie infrastruktury, co jeszcze bardziej skraca czas odpowiedzi DNS dla użytkowników w różnych lokalizacjach geograficznych.
TTL dla różnych typów rekordów — rekomendacje
Nie wszystkie rekordy DNS wymagają tego samego TTL. Praktyczne rekomendacje:
- Rekordy A i AAAA: 1800–3600 sekund w normalnej pracy; 300–600 sekund przed planowaną migracją.
- Rekordy CNAME: 3600 sekund — podążają za rekordem A, więc przy zmianie wystarczy niski TTL na rekordzie A.
- Rekordy MX: 3600 sekund. Zmiana MX jest rzadka. Niska wartość TTL przed zmianą dostawcy poczty skróci czas przestoju poczty przychodzącej.
- Rekordy TXT (SPF, DMARC, weryfikacje): 3600 sekund. Rzadko się zmieniają.
- Rekordy NS: 86400 sekund. Zmiana nameserwerów propaguje się niezależnie od TTL rekordu NS.
- Rekord SOA: zarządzany automatycznie przez serwer DNS, zazwyczaj 3600–86400 sekund.
Zarządzanie TTL jest jedną z tych rzeczy, o których warto pomyśleć z wyprzedzeniem, a nie w momencie, gdy migracja już się zaczęła i liczy się każda minuta. Profesjonalna opieka WordPress obejmuje planowanie migracji DNS z odpowiednią strategią TTL jako standardowy element procesu.
Dla stron korzystających z hostingu WordPress z wbudowanym panelem DNS zarządzanie TTL jest dostępne bezpośrednio w interfejsie, często wystarczy edycja istniejącego rekordu i zmiana jednego pola.
Podsumowanie
TTL to prosty parametr z dużym wpływem na to, jak szybko zmiany DNS wchodzą w życie i jak wydajnie działają serwery DNS. Kluczowa zasada: obniż TTL z wyprzedzeniem przed migracją, poczekaj na wygaśnięcie starego TTL, wprowadź zmiany, a po weryfikacji przywróć wyższy TTL. Dzięki temu zaplanowane migracje przebiegną bez przestoju. Co innego natomiast będzie, gdy wprowadzimy nagłe konieczne zmiany, które będą ograniczone przez aktualny TTL rekordów.