Wyobraź sobie taką sytuację. Właśnie zmieniasz dostawcę hostingu i aktualizujesz rekord A, by wskazywał nowy serwer. Odświeżasz stronę i nic się nie zmieniło. Nadal wczytuje się stara strona. Sprawdzasz panel DNS, a nowy rekord jest zapisany. Co się dzieje?
Odpowiedzią jest TTL. Gdy ustawiasz rekord DNS, ustawiasz też wartość TTL, która mówi każdemu serwerowi DNS w internecie, jak długo może trzymać zapisaną kopię tego rekordu. Dopóki ten licznik nie dobiegnie końca, te serwery będą podawać starą informację, nawet po wprowadzeniu zmiany. Zrozumienie tego, jak działa DNS, zaczyna się od zrozumienia TTL, bo to on kontroluje tempo każdej zmiany DNS.
Co oznacza TTL?
TTL to skrót od time to live, czyli czas życia. W kontekście DNS to liczba dołączona do każdego rekordu DNS, która mówi serwerom, ile sekund mogą trzymać ten rekord w pamięci podręcznej, zanim muszą wrócić i sprawdzić świeżą kopię.
Każdy tworzony rekord DNS ma wartość TTL. Korzystają z niej wszystkie rodzaje rekordów DNS. Rekordy A, CNAME, MX, TXT. Każdy ma własne ustawienie TTL i każdy może mieć inną wartość, zależnie od tego, jak często spodziewasz się zmian tego rekordu.
Jak działa TTL w prostych słowach?
Gdy ktoś wpisuje Twoją domenę w przeglądarce, jego urządzenie pyta serwer DNS o adres IP strony. Ten serwer DNS sprawdza rekord A i dostaje odpowiedź. Ale odczytuje też wartość TTL dołączoną do tego rekordu.
Jeśli TTL wynosi 3600, serwer DNS zapisuje tę odpowiedź na 3600 sekund (jedną godzinę). Przez następną godzinę każdy, kto zapyta ten sam serwer DNS o Twoją domenę, dostaje odpowiedź z pamięci podręcznej. Serwer nie sprawdza ponownie, dopóki licznik nie wygaśnie.
Gdy TTL się skończy, kolejne zapytanie uruchamia nowe wyszukiwanie. Serwer DNS wraca do źródła, pobiera aktualny rekord, odczytuje nową wartość TTL i zaczyna odliczanie od nowa.
Wyobraź sobie karteczkę na lodówce. Ktoś zapisuje numer telefonu do pizzerii i przykleja go do lodówki. Wszyscy w domu używają tego numeru, dopóki karteczka nie straci ważności (nie zostanie wyrzucona). Wtedy ktoś musi sprawdzić numer ponownie. Jeśli pizzeria zmieniła w międzyczasie numer, nowy numer zostanie podchwycony dopiero po zniknięciu starej karteczki.
Jak mierzy się TTL?
TTL zawsze mierzy się w sekundach. Oto najczęstsze wartości i ich odpowiedniki w rzeczywistym czasie.
- 300 to 5 minut
- 600 to 10 minut
- 1800 to 30 minut
- 3600 to 1 godzina
- 14400 to 4 godziny
- 43200 to 12 godzin
- 86400 to 24 godziny
Większość paneli DNS pokazuje pole TTL przy tworzeniu lub edycji rekordu. Niektóre używają listy rozwijanej z gotowymi opcjami, jak „1 godzina” lub „automatycznie”. Inne pozwalają wpisać dokładną liczbę sekund.
Co się dzieje przy wysokim TTL?
Wysoki TTL oznacza, że serwery DNS trzymają rekord w pamięci podręcznej długo. Jeśli TTL wynosi 86400 (24 godziny), każdy serwer DNS, który sprawdzi rekord, będzie trzymać tę odpowiedź przez całą dobę, zanim sprawdzi ponownie.
Zaleta to mniej wyszukiwań DNS. Gdy tysiące odwiedzających wczytują stronę, ich resolvery DNS mają już odpowiedź w pamięci podręcznej. Oznacza to nieco szybsze wczytywanie stron i mniejsze obciążenie infrastruktury DNS.
Wada to dłuższe rozchodzenie się zmian. Jeśli zaktualizujesz rekord A przy 24-godzinnym TTL, część odwiedzających może nadal widzieć starą stronę nawet przez 24 godziny. Wymieniasz szybkość zmian na wydajność wyszukiwań.
Co się dzieje przy niskim TTL?
Niski TTL oznacza, że serwery DNS odświeżają rekord częściej. Jeśli TTL wynosi 300 (pięć minut), serwery wyrzucają odpowiedź z pamięci podręcznej co pięć minut i wyszukują ją ponownie.
Zaleta to szybkie rozchodzenie się zmian. Jeśli zaktualizujesz rekord przy pięciominutowym TTL, większość internetu widzi nową wartość w ciągu minut.
Wada to więcej zapytań DNS. Za każdym razem, gdy pamięć podręczna wygasa, serwer musi wykonać nowe wyszukiwanie. Dla strony o dużym ruchu oznacza to większe obciążenie autorytatywnych serwerów DNS. Dla większości małych i średnich marek różnica nie jest zauważalna. Ale utrzymywanie stale niskiego TTL, gdy nic się nie zmienia, jest niepotrzebne.
Jaki jest dobry domyślny TTL?
Dla większości rekordów DNS dobrym ustawieniem domyślnym jest 3600 (jedna godzina). Łączy dwie sprawy.
- Zmiany rozchodzą się w ciągu godziny, co jest wystarczająco szybkie przy rutynowych aktualizacjach
- Serwery DNS nie muszą wyszukiwać rekordu co kilka minut, gdy nic się nie zmieniło
Jeśli rekordy DNS rzadko się zmieniają (a u większości marek tak jest), możesz bezpiecznie używać 3600 albo nawet 14400 (cztery godziny). Niższy TTL jest potrzebny tylko wtedy, gdy wiesz, że zbliża się zmiana.
Kiedy obniżyć TTL?
Obniż TTL przed każdą większą zmianą DNS. Oto sytuacje, w których niski TTL oszczędza czas i kłopoty.
- Zmiana dostawcy hostingu i aktualizacja rekordu A
- Migracja strony na nową platformę
- Zmiana dostawcy poczty i aktualizacja rekordów MX
- Kierowanie domeny na stronę po raz pierwszy
- Konfiguracja systemu przełączania awaryjnego lub równoważenia obciążenia
W każdym z tych przypadków chcesz, by zmiana zaczęła działać jak najszybciej. Niski TTL to umożliwia.
Jak obniżyć TTL przed migracją
Jest prosta strategia, której doświadczeni administratorzy DNS używają przed każdą migracją serwera. Działa w trzech krokach.
- 24 do 48 godzin przed zmianą obniż TTL do 300 (pięć minut). To daje staremu wysokiemu TTL czas na wygaśnięcie na wszystkich serwerach DNS na świecie. Gdy nadejdzie czas na właściwą zmianę, większość serwerów będzie sprawdzać co pięć minut
- Wprowadź zmianę DNS. Zaktualizuj rekord A (albo inny zmieniany rekord) na nową wartość. Ponieważ TTL jest już niski, serwery DNS na całym świecie przejmują nową wartość w ciągu minut
- Gdy zmiana jest potwierdzona i działa, podnieś TTL z powrotem do 3600 lub preferowanej wartości domyślnej. To powstrzymuje ciągłe wyszukiwania, skoro zmiana jest zakończona, a nowy rekord stabilny
Pominięcie pierwszego kroku to najczęstszy błąd. Jeśli TTL nadal wynosi 86400, gdy wprowadzasz zmianę, część serwerów DNS będzie podawać stary rekord nawet przez 24 godziny, bo ich pamięć podręczna jeszcze nie wygasła. Obniżenie TTL z wyprzedzeniem temu zapobiega.
Jak TTL łączy się z propagacją DNS?
Propagacja DNS to proces rozchodzenia się zaktualizowanych rekordów DNS po wszystkich serwerach DNS na świecie. TTL to główny czynnik, który kontroluje, jak długo ten proces trwa.
Gdy ludzie mówią „propagacja DNS może trwać do 48 godzin”, oznacza to, że niektóre serwery DNS mogły zapisać stary rekord z wysokim TTL i te serwery nie sprawdzą aktualizacji, dopóki ich licznik nie wygaśnie.
Niski TTL przed zmianą oznacza szybszą propagację. Wysoki TTL oznacza wolniejszą. Tak to bezpośrednio działa. Liczba 48 godzin to scenariusz najgorszego przypadku dla rekordów z 24-godzinnym TTL, bo niektóre serwery mogły zapisać rekord tuż przed zmianą i mają jeszcze prawie całą dobę na liczniku.
Częste błędy z TTL
Dwa błędy pojawiają się częściej niż inne, jeśli chodzi o TTL.
Zapomnienie o obniżeniu TTL przed zmianą. To ten największy. Aktualizujesz rekord A, by wskazywał nowy serwer, ale TTL był ustawiony na 86400. Teraz część odwiedzających widzi nową stronę, a część starą, i nie ma wyjścia, trzeba przeczekać. Zawsze obniżaj TTL na 24 do 48 godzin przed zmianami DNS.
Trwałe ustawienie zbyt niskiego TTL. TTL równy 60 sekund oznacza, że każdy serwer DNS sprawdza aktualizacje co minutę. Jeśli rekordy się nie zmieniają, tworzy to tylko niepotrzebny ruch DNS. Może też nieco spowolnić stronę dla nowych odwiedzających, których resolver DNS musi częściej wykonywać nowe wyszukiwanie. Używaj niskiego TTL tymczasowo, gdy zmiany są planowane, a potem go podnieś.
Jak WEMASY obsługuje TTL
Gdy podłączasz własną domenę do strony w WEMASY, platforma obsługuje konfigurację DNS w ramach procesu ustawiania. WEMASY ustawia rozsądne domyślne wartości TTL dla potrzebnych rekordów, więc nie musisz zgadywać, jakich wartości użyć.
Jeśli przenosisz się do WEMASY od innego dostawcy, instrukcja konfiguracji domeny prowadzi przez obniżenie TTL przed zmianą, by przejście przebiegło sprawnie. WEMASY zapewnia hosting, SSL i zarządzanie domeną w jednej subskrypcji. Zobacz, co zawiera każdy pakiet, na stronie cennika WEMASY.
Co dalej
Skoro wiesz już, czym jest TTL i jak kontroluje tempo zmian DNS, następny rozdział omawia, jak działa propagacja DNS. Dowiesz się, co dzieje się za kulisami przy aktualizacji rekordu DNS, dlaczego propagacja nie jest natychmiastowa i jak sprawdzić, czy zmiany się rozeszły. Pełny obraz działania systemu nazw domen znajdziesz, wracając do rozdziału o tym, jak działa DNS.
Najczęstsze pytania
Czy można ustawić inny TTL dla każdego rekordu DNS?
Tak. Każdy rekord DNS ma własne pole TTL. Możesz ustawić rekord A na 3600 (jedna godzina), a rekord MX na 14400 (cztery godziny), jeśli to pasuje do Twoich potrzeb. Rekordy, które zmieniają się częściej, mogą mieć niższy TTL, a stabilne wyższy. W kreatorze stron WEMASY możesz to ustawić bezpośrednio na swojej stronie.
Czy TTL wpływa na szybkość wczytywania strony?
Nie bezpośrednio. TTL kontroluje, jak często serwery DNS odświeżają zapisaną kopię rekordów DNS. Gdy urządzenie odwiedzającego rozpozna domenę jako adres IP, TTL nie wpływa na to, jak szybko wczytują się strony. Różnica dotyczy tylko tego, jak szybko kończy się samo wyszukiwanie DNS, co dodaje milisekundy, a nie sekundy.
Jakiego TTL użyć dla rekordów poczty?
Dla rekordów MX i rekordów TXT związanych z pocztą (jak SPF i DKIM) bezpieczną wartością domyślną jest TTL 3600 (jedna godzina). Jeśli za chwilę zmieniasz dostawcę poczty, obniż TTL do 300 na dzień lub dwa przed zmianą, a po potwierdzeniu nowej konfiguracji podnieś go z powrotem.
Czy można zmusić serwery DNS do wyczyszczenia pamięci podręcznej przed końcem TTL?
Nie. Nie da się zmusić zewnętrznych serwerów DNS do porzucenia zapisanych rekordów. Każdy serwer respektuje własny licznik pamięci podręcznej. Jedyny sposób na przyspieszenie to ustawienie niskiego TTL przed wprowadzeniem zmiany. Niektórzy dostawcy DNS oferują narzędzie do czyszczenia pamięci podręcznej swoich własnych serwerów, ale nie dotyczy to każdego serwera w internecie.
Czy jest minimalna wartość TTL, której warto używać?
Technicznie można ustawić TTL nawet na 1 sekundę, ale większość dostawców DNS wymusza minimum 60 lub 300 sekund. Zejście poniżej 300 rzadko się przydaje. Nawet podczas migracji pięciominutowy TTL zapewnia szybką propagację bez przeciążania infrastruktury DNS.