Co to jest TTL?

Autor: Opublikowano

W skrócie: TTL (ang. Time To Live) to parametr określający, jak długo dane mogą pozostawać ważne lub jak długo pakiet może krążyć w sieci. W ustawieniach domeny TTL oznacza przede wszystkim czas przechowywania odpowiedzi DNS w pamięci podręcznej, zwykle podawany w sekundach. Niższa wartość ułatwia szybsze zauważenie zmian, ale nie gwarantuje, że wszyscy użytkownicy zobaczą je jednocześnie.

Co oznacza TTL w DNS?

DNS to system, który pozwala odnaleźć usługi przypisane do nazwy domeny, na przykład adres IP serwera strony internetowej. Informacje te zapisuje się w rekordach: rekord A wskazuje adres IPv4, a rekord MX określa serwery obsługujące pocztę. TTL towarzyszy tym danym i informuje, jak długo można korzystać z zapamiętanej odpowiedzi bez ponownego pobierania jej ze źródła.

Zapytania użytkowników często obsługuje resolver DNS, czyli serwer wyszukujący odpowiedzi i przechowujący je w pamięci podręcznej. Dzięki temu nie musi przy każdym wejściu na stronę odpytywać serwera autorytatywnego — serwera publikującego właściwe rekordy domeny.

Jeśli rekord ma TTL 3600, odpowiedź można standardowo przechowywać przez godzinę od jej pobrania. Wartość 300 oznacza pięć minut, a 86400 — dobę. TTL nie oznacza czasu ważności rejestracji domeny ani terminu wygaśnięcia certyfikatu HTTPS.

Jak TTL wpływa na zmianę adresu strony?

Załóżmy, że rekord A domeny wskazuje stary hosting i ma TTL równy 3600 sekund. Resolver pobiera go o 12:00, a o 12:10 zmieniasz adres IP na nowy. Ten resolver może nadal zwracać stary adres do około 13:00, ponieważ wcześniejsza odpowiedź pozostaje ważna w jego pamięci.

Inny resolver, który pierwszy raz zapyta o rekord o 12:15, może już otrzymać nowy adres. Dlatego po zmianie DNS część osób trafia na nowy serwer, a część nadal na stary. To nie musi oznaczać błędu konfiguracji.

Zmiana TTL nie skraca wstecz czasu życia odpowiedzi już zapisanych w cudzych pamięciach podręcznych. Jeśli jednocześnie zmienisz adres IP i obniżysz TTL z doby do pięciu minut, wcześniejsze kopie mogą nadal obowiązywać według starej wartości.

Określenie „propagacja DNS” bywa używane jako skrót tego procesu. Nie jest to jednak jeden globalny mechanizm rozsyłający zmianę o ustalonej godzinie. Znaczenie mają niezależne pamięci podręczne, aktualizacja serwerów dostawcy DNS, a czasem także zachowanie systemu operacyjnego lub aplikacji. TTL jest więc ważną wskazówką czasową, a nie obietnicą dokładnego momentu przełączenia wszystkich użytkowników.

Jaką wartość TTL wybrać?

Wybór zależy od tego, jak często zmieniasz rekord i jak istotne jest szybkie odświeżenie odpowiedzi. Poniższe wartości są przykładami zastosowań, nie obowiązkowymi ustawieniami.

SytuacjaPrzykładowy TTLUzasadnienie
Planowana migracja strony300 sekundSkraca okres używania starej odpowiedzi, jeśli obniżysz TTL z wyprzedzeniem
Zwykła praca strony3600 sekundKompromis między odświeżaniem a wykorzystaniem pamięci podręcznej
Rzadko zmieniany rekord86400 sekundPozwala dłużej korzystać z zapamiętanych danych

Niski TTL oznacza częstsze odpytywanie serwerów autorytatywnych. Wysoki TTL ogranicza liczbę takich zapytań, ale utrudnia szybkie wycofanie nieudanej zmiany. Samo obniżenie TTL nie przyspiesza pobierania obrazów ani działania kodu strony.

Nie każdy dostawca pozwala wpisać dowolną wartość. Panel może narzucać minimum, udostępniać opcję „automatycznie” albo samodzielnie zarządzać TTL dla usług pośredniczących w ruchu. Znaczenie tych ustawień i dostępny zakres sprawdź w aktualnej dokumentacji swojego operatora DNS.

Jak przygotować TTL przed migracją hostingu?

Najważniejsze jest obniżenie TTL odpowiednio wcześnie, zanim zmienisz docelowy serwer. Dla rekordu z dotychczasowym TTL wynoszącym dobę zaplanuj obniżenie wartości co najmniej dobę przed przełączeniem, licząc od opublikowania zmiany na serwerach autorytatywnych.

  1. Sprawdź aktualne rekordy i ich TTL. Ustal, które adresy zmieniasz; strona może korzystać zarówno z rekordu A, jak i AAAA wskazującego adres IPv6.
  2. Obniż TTL tych rekordów, na przykład do 300 sekund, jeśli dostawca na to pozwala. Odczekaj dotychczasowy czas TTL.
  3. Przygotuj nowy hosting. Sprawdź działanie strony, certyfikat HTTPS i połączenie z bazą danych przed zmianą DNS.
  4. Zmień rekordy i monitoruj oba serwery. Nie wyłączaj od razu starego hostingu. Przy sklepie lub formularzach zadbaj również o spójność danych podczas przejścia.
  5. Po ustabilizowaniu działania przywróć zwykły TTL, jeśli krótki czas nie jest już potrzebny.

Ta procedura dotyczy zmiany rekordów usług. Przy zmianie serwerów nazw domeny dochodzą kwestie delegacji, czyli wskazania, które serwery odpowiadają za jej DNS. Samo obniżenie TTL rekordu A nie kontroluje całego takiego przełączenia.

Co TTL oznacza poza DNS?

W pakietach IPv4 TTL ogranicza liczbę przejść przez routery. Choć nazwa odwołuje się do czasu, w praktyce każdy router przekazujący pakiet zmniejsza tę wartość o jeden; po jej wyczerpaniu pakiet jest odrzucany. Chroni to sieć przed niekończącym się krążeniem pakietów w pętli. Odpowiednikiem w IPv6 jest pole Hop Limit.

TTL pojawia się też w pamięciach podręcznych aplikacji, gdzie określa okres ważności zapisanego wyniku, na przykład odpowiedzi pobranej z API. Dlatego zawsze sprawdzaj kontekst: TTL widoczny przy rekordzie domeny dotyczy DNS, a TTL w wyniku polecenia ping dotyczy pakietu sieciowego.

Jeśli przygotowujesz zmianę hostingu, zacznij od odczytania obecnego TTL — to on pozwoli ustalić, z jakim wyprzedzeniem rozpocząć przygotowania.

Zobacz też: Co to jest VPS?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.