Moduł 6 · 6.1
TTL i pamięć podręczna
Moduł 6: Czas, pamięć podręczna i transfer domeny · Czas czytania: 7 min
Cel lekcji: Po tej lekcji będą Państwo potrafili wyjaśnić, czym jest TTL rekordu, jak korzystają z niego pamięci podręczne (cache) i jaką wartość TTL wybrać w danej sytuacji.
Kluczowe pojęcia: TTL (Time To Live), pamięć podręczna (cache), pamięć podręczna resolvera, pamięć podręczna komputera i przeglądarki, malejący TTL, typowe wartości TTL (300, 3600, 86400)
Dlaczego DNS zapamiętuje odpowiedzi
W lekcji 1.4 widzieli Państwo, jak resolver wyszukuje odpowiedź: najpierw u serwera głównego (root), potem u serwera TLD, a na końcu u autorytatywnego serwera nazw danej domeny. Gdyby to musiało się powtarzać przy każdym kliknięciu na stronę internetową, internet działałby znacznie wolniej, a serwery nazw nie wytrzymałyby takiej liczby zapytań.
Dlatego resolwery zapamiętują każdą odpowiedź na jakiś czas. Ta pamięć nazywa się pamięcią podręczną (cache). Gdy ktoś inny zapyta o tę samą nazwę, resolver od razu udzieli odpowiedzi z pamięci podręcznej, bez ponownego przechodzenia całej drogi.
Powstaje pytanie: jak długo resolver może pamiętać odpowiedź? Decyduje o tym właściciel domeny, poprzez TTL każdego rekordu.
Czym jest TTL
TTL oznacza Time To Live: czas, przez jaki rekord może pozostać w pamięci podręcznej, wyrażony w sekundach. Każdy rekord ma własny TTL. W strefie wygląda to tak:
example.com. 3600 IN A 192.0.2.10
www.example.com. 3600 IN A 192.0.2.10
example.com. 3600 IN MX 10 mail.example.com.
_dmarc.example.com. 14400 IN TXT "v=DMARC1; p=quarantine"Liczba po nazwie to TTL. W tym przykładzie rekordy A i MX mogą być zapamiętane przez godzinę (3600 sekund), a rekord DMARC przez cztery godziny (14400 sekund).
Typowe wartości:
| TTL | To | Kiedy go stosować? |
|---|---|---|
| 300 | 5 minut | Tuż przed transferem domeny i w jego trakcie, lub gdy zmiany są częste |
| 3600 | 1 godzina | Dobra wartość domyślna dla większości rekordów |
| 14400 | 4 godziny | Rekordy, które rzadko się zmieniają |
| 86400 | 1 dzień | Rekordy, które niemal nigdy się nie zmieniają, na przykład rekordy NS |
TTL to liczba z zakresu od 0 do 2.147.483.647 sekund (2^31 - 1, zgodnie z RFC 2181). W praktyce rzadko spotyka się wartości wyższe niż dzień lub dwa. Wiele resolwerów stosuje też własne ograniczenie maksymalne, często dzień lub tydzień.
Odliczanie
TTL nie jest jednym, wspólnym zegarem dla całego świata. Każdy resolver zaczyna liczyć dopiero w momencie, gdy pobiera dany rekord.
Przykład. Rekord A domeny example.com ma TTL 3600.
- O godzinie 10:00 resolver dostawcy A pobiera rekord. Otrzymuje
192.0.2.10i może go pamiętać do 11:00. - O godzinie 10:40 resolver dostawcy B pobiera ten sam rekord. Pamięta go do 11:40.
- O godzinie 10:45 zmieniają Państwo rekord na
198.51.100.10. - Użytkownicy dostawcy A zobaczą nowy adres od 11:00, użytkownicy dostawcy B dopiero od 11:40.
Jeśli zapytają Państwo o rekord resolwer, który ma go już w pamięci podręcznej, w wyniku zobaczą Państwo TTL, który stopniowo maleje. Przy autorytatywnym serwerze nazw zawsze widać pełną wartość:
; u autorytatywnego serwera nazw
example.com. 3600 IN A 192.0.2.10
; u resolvera, 25 minut później
example.com. 2100 IN A 192.0.2.10Warto o tym wiedzieć: jeśli u swojego resolvera widzą Państwo jeszcze 2100 sekund, oznacza to, że przez kolejne 35 minut będzie on nadal podawał starą odpowiedź.
Kto jeszcze zapamiętuje odpowiedzi
Nie tylko resolver dostawcy internetu ma pamięć podręczną. Jest więcej warstw:
- Resolver dostawcy internetu, sieci firmowej lub resolwer publiczny (na przykład 1.1.1.1, 8.8.8.8 lub 9.9.9.9).
- Router w domu lub w biurze, który często sam działa jako mały resolver.
- System operacyjny komputera lub telefonu.
- Przeglądarka, która również czasem przez chwilę przechowuje odpowiedzi DNS.
Każda warstwa w zasadzie przestrzega TTL, ale nie każda robi to dokładnie. Dlatego na swoim laptopie mogą Państwo zauważyć zmianę nieco później niż kolega z pracy. Jak czyścić te pamięci podręczne, dowiedzą się Państwo w lekcji 6.2.
Wybór właściwego TTL
Krótki TTL wydaje się wygodny: zmiany są wtedy szybko widoczne wszędzie. Ma to jednak wadę. Resolwery muszą wtedy znacznie częściej na nowo pytać o rekord. To sprawia, że pierwsze wczytanie strony internetowej trwa odrobinę dłużej, a jeśli Państwa serwery nazw są przez chwilę niedostępne, domena szybciej staje się nieosiągalna. Przy TTL wynoszącym godzinę resolwery mogą przetrwać krótką awarię serwera nazw dzięki danym z pamięci podręcznej.
Kilka zasad praktycznych:
- Wartość domyślna: 3600 sekund. To dobra równowaga.
- Przed zaplanowaną zmianą: tymczasowo 300. Obniżą Państwo TTL co najmniej na czas trwania poprzedniego TTL przed zmianą. Jeśli było ustawione 3600, robią to Państwo co najmniej godzinę wcześniej, bezpieczniej dzień wcześniej. Jeśli było ustawione 86400, to co najmniej dzień wcześniej. Po zmianie przywracają Państwo poprzednią wartość. Jak to zrobić przy transferze domeny, dowiedzą się Państwo w lekcji 6.3.
- Wartość niższa niż 60 sekund niewiele daje. Niektóre resolwery ignorują bardzo krótkie wartości TTL i stosują własne minimum.
- Obniżenie TTL działa dopiero, gdy minie poprzedni TTL. Jeśli obniżą Państwo TTL z 86400 na 300 i od razu po tym zmienią adres, resolwery, które właśnie pobrały rekord, będą jeszcze przez cały dzień stosować starą wartość.
Ten ostatni punkt to najczęstszy błąd popełniany przy TTL. Nowy, krótki TTL musi najpierw sam trafić do wszystkich pamięci podręcznych.
W praktyce: jak to wygląda w panelu
W przykładowym panelu DirectAdmin TTL znajduje się jako osobna kolumna w Administracja DNS. TTL pojedynczego rekordu zmieniają Państwo za pomocą ikony ołówka przy tym rekordzie. Za pomocą przycisku TTL WAARDE OVERSCHRIJVEN ustawiają Państwo jeden TTL dla wszystkich rekordów domeny jednocześnie. W Moje WebOké TTL widoczny jest na liście rekordów na karcie DNS, a wybierają go Państwo w oknie dodawania lub edycji rekordu.
Inne panele działają podobnie: w cPanel, Plesk, Cloudflare i u większości rejestratorów pole to również nazywa się TTL. Czasem wybiera się wartość z listy (na przykład "5 minut", "1 godzina", "Auto") zamiast wpisywać liczbę sekund. W Cloudflare "Auto" dla rekordów bez proxy oznacza 300 sekund.
Podsumowanie
- TTL określa, przez ile sekund odpowiedź DNS może pozostać w pamięci podręcznej.
- Każdy resolver liczy od momentu, w którym pobrał rekord; dlatego nie każdy widzi zmianę w tym samym czasie.
- Przy autorytatywnym serwerze nazw widać pełny TTL, u resolvera wartość malejącą.
- 3600 to dobra wartość domyślna; przed zaplanowaną zmianą obniżają Państwo tymczasowo do 300, i to co najmniej na czas trwania poprzedniego TTL wcześniej.
Quiz
Zadanie
Zadanie Z6.1: TTL u źródła i u resolvera. Za pomocą internetowego narzędzia DNS lub polecenia dig sprawdź TTL rekordu A domeny sidn.nl bezpośrednio u jednego z serwerów nazw sidn.nl (na przykład ns1.sidn.nl). Wpisz TTL w sekundach. Następnie sprawdź ten sam rekord u publicznego resolvera i wpisz również ten TTL. Wyjaśnij w jednym zdaniu, dlaczego te dwie liczby mogą się różnić.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Zadanie O6.1: Samodzielne ustawienie w strefie ćwiczeniowej. W Państwa strefie ćwiczeniowej znajduje się już rekord A <code>.dnspractice.euttl-test., który wskazuje na <code>.dnspractice.eu192.0.2.61, z TTL wynoszącym 300 sekund. Obniżą Państwo TTL do 60 sekund, tak jak zrobiliby Państwo przed transferem domeny, pozostawiając adres bez zmian. Następnie sprawdzą Państwo za pomocą dig u serwera nazw strefy ćwiczeniowej, czy nowy TTL jest widoczny. Prześlą Państwo zadanie, gdy TTL wynosi 60.
Strefa ćwiczeniowa korzysta z krótkich wartości TTL (od 30 do 300 sekund), aby nie trzeba było czekać; w swojej prawdziwej domenie stosują Państwo na przykład 3600 jako wartość domyślną i 300 tuż przed zmianą.
Zadanie O6.1
To zadanie wykonują Państwo we własnej strefie ćwiczeniowej: prawdziwej strefie DNS na serwerach nazw WebOké, przeznaczonej tylko dla Państwa. Proszę zalogować się za pomocą adresu e-mail. Otrzymają Państwo link logujący e-mailem i wrócą następnie do tej lekcji. Adres e-mail wykorzystujemy wyłącznie na potrzeby kursu.
Więcej informacji
Kroki w tych artykułach dotyczą paneli WebOké; w innych panelach działanie jest podobne.
- Instrukcja DirectAdmin 5.11: Kiedy zmiana zacznie działać? Czas oczekiwania i TTL @@OMSCHRIJWING@@ Dowiedz się, czym jest TTL, ile czasu zajmuje widoczność zmiany w DNS oraz jak przyspieszyć jej wprowadzenie.
- Instrukcja DirectAdmin 5.2: Otwieranie Administracji DNS i odczytywanie rekordów
- Jak długo trwa zmiana nameserverów lub DNS i co zrobić, jeśli zmiana nie jest widoczna?
- Podręcznik WebOké 5.4: Zarządzanie DNS: dodawanie, zmiana i usuwanie rekordów
