Jak działa pamięć podręczna DNS?
Pamięć podręczna DNS przechowuje ostatnie odpowiedzi, aby nie każde żądanie wymagało pełnego wyszukiwania w hierarchii nazw. Pamięć podręczna może istnieć w aplikacji, w systemie operacyjnym i w resolverze rekurencyjnym. Usunięcie odpowiedzi z jednej z nich nie aktualizuje od razu kopii przechowywanych w pozostałych.
Co decyduje o czasie życia
Rekord DNS zawiera TTL: liczbę sekund, przez które otrzymana odpowiedź może być ponownie wykorzystywana z pamięci podręcznej. Dopóki resolver przechowuje rekord, odlicza zwykle pozostały mu czas życia. Jeśli właściciel domeny zmieni adres, odpowiedź zapisana wcześniej w pamięci podręcznej może pozostać ważna do wygaśnięcia starego TTL. Obniżenie TTL jednocześnie ze zmianą adresu nie skróci czasu życia kopii pobranych wcześniej.
Odpowiedzi negatywne również mogą być buforowane. Resolver mógł otrzymać NXDOMAIN dla nazwy, która jeszcze nie została utworzona. Po dodaniu rekordu niektórzy użytkownicy mogą przez pewien czas nadal widzieć tę wcześniejszą odpowiedź negatywną. RFC 2308 definiuje odpowiednie zasady buforowania negatywnego.
Znajdź nieaktualną odpowiedź
Wyślij zapytanie kolejno do serwera autorytatywnego domeny, do wybranego publicznego resolvera rekurencyjnego i do własnego urządzenia. Jeśli odpowiedź autorytatywna wciąż jest stara, popraw strefę lub jej delegację; wyczyszczenie lokalnej pamięci podręcznej nie pomoże. Jeśli odpowiedź autorytatywna jest nowa, a lokalna stara, sprawdź pozostały TTL i spróbuj ponownie po jego wygaśnięciu. Narzędzie „Sprawdź konfigurację domeny” pozwala przejrzeć rekordy domeny.
Pytaj o dokładnie ten typ rekordu, który Cię interesuje. Rekord A w pamięci podręcznej nie wyjaśni błędnej odpowiedzi MX, a rekord AAAA może kierować ruch IPv6 na inny serwer niż IPv4. Sprawdzaj pełną nazwę hosta, łącznie z ewentualną subdomeną. Przeglądarka może używać własnego resolvera DoH, więc jej wynik może różnić się od wyniku narzędzia systemowego. Czas i treść odpowiedzi serwerów DNS porównasz w narzędziu 2IP „Sprawdź czas odpowiedzi DNS”.
Kiedy czyścić lokalną pamięć podręczną
Wyczyszczenie lokalnej pamięci podręcznej może pomóc po poprawce, gdy tylko Twoje urządzenie nadal korzysta ze starszego wyniku. Dokładne polecenie zależy od systemu operacyjnego i aktywnego resolvera; najpierw ustal ten komponent. Ta czynność nie wyczyści pamięci podręcznej dostawcy, publicznego resolvera ani komputera innej osoby.
Nie myl pamięci podręcznej DNS z pamięcią podręczną stron w przeglądarce. Jedna przechowuje informacje o nazwach, druga – zawartość stron. Nawet poprawny adres IP nie dowodzi, że działa HTTP, HTTPS lub usługa pocztowa. Zanim zmienisz ustawienia, ustal, która warstwa zwraca nieoczekiwaną odpowiedź.
Konkretny przykład
Strona zostaje przeniesiona z 192.0.2.10 na 192.0.2.20. Jej serwer autorytatywny podaje nowy adres, a domowy router wciąż zwraca starą wartość z pamięci podręcznej. Bezpośrednie zapytanie do serwera autorytatywnego pokazuje nowy rekord; zapytanie przez sieć domową pokazuje wcześniejszy wraz z pozostałym TTL. Po jego wygaśnięciu odpowiedzi powinny być zgodne, chyba że istnieje inny problem z konfiguracją.
Te adresy są zarezerwowane do dokumentacji, a nie dla prawdziwej strony. W praktyce zapisz czas zmiany, stare i nowe wartości, TTL oraz odpowiedzi z wymienionych serwerów. Takie notatki powiedzą więcej niż czekanie na bliżej nieokreślony moment, w którym DNS rzekomo „w pełni się rozpropagował”.