Przejdź do treści

Ile trwa propagacja DNS i jak ją sprawdzić

Aktualizacja: 6 min czytaniaZespół DNSPeek

Zmiana rekordu DNS dociera do większości odwiedzających w czasie starego TTL tego rekordu, który często wynosi od 5 minut do godziny, a zmiana serwerów nazw może potrwać do 48 godzin, ponieważ delegacja w rejestrze jest dłużej przechowywana w pamięci podręcznej. Tak naprawdę nic nie „podróżuje”: resolvery trzymają zapamiętaną odpowiedź, dopóki nie wygaśnie, a potem pytają ponownie. Sprawdzaj postęp, odpytując o rekord wiele publicznych resolverów i porównując ich odpowiedzi z nową wartością.

Czym naprawdę jest „propagacja”

Gdy przeglądarka potrzebuje example.com, pyta resolver rekurencyjny: Twojego dostawcy internetu, Twojej firmy albo publiczny, np. Google lub Cloudflare. Resolver pyta autorytatywne serwery nazw domeny i zapamiętuje odpowiedź tak długo, jak pozwala TTL (time to live, czas życia) rekordu. Dopóki ta zapamiętana kopia nie wygaśnie, podaje starą odpowiedź, niezależnie od tego, jak niedawno zmieniono rekord.

„Propagacja” to więc po prostu tysiące pamięci podręcznych wygasających w różnym czasie. Resolver, który sprawdził Twoją domenę sekundę przed zmianą, trzyma starą odpowiedź przez cały TTL. Taki, który nigdy jej nie sprawdzał, od razu dostaje nową. Dlatego znajomy widzi nową stronę, a Ty nadal starą.

Ile trwa każdy rodzaj zmiany

Typowe opóźnienia zmian DNS
ZmianaCo ją ograniczaTypowe opóźnienie
Rekord A, AAAA lub CNAMETTL, jaki rekord miał przed zmianąOd minut do kilku godzin; 5 minut lub mniej, jeśli wcześniej obniżono TTL
Rekord MX lub TXT (poczta, SPF, weryfikacja)Stary TTL tego rekorduJak wyżej
Serwery nazw u rejestratoraTTL delegacji w strefie nadrzędnej, często od jednego do dwóch dniZwykle godziny, maksymalnie 48 godzin
Zupełnie nowy rekord, którego wcześniej nie byłoNegatywne buforowanie: odpowiedź „nie ma takiego rekordu” jest zapamiętywana na negatywny TTL strefyDo tego negatywnego TTL dla resolverów, które pytały, zanim rekord powstał

Liczba „od 24 do 48 godzin”, którą widać wszędzie, pochodzi od zmian serwerów nazw i z czasów, gdy normą były długie TTL. Przy zmianie rekordu A z TTL 300 sekund prawie wszyscy widzą nowy serwer w ciągu kilku minut.

Co jeszcze może ją spowolnić

  • TTL obniżony za późno. Obniżenie TTL pomaga dopiero wtedy, gdy stary, długi TTL wygaśnie w pamięciach podręcznych. Obniż go dzień wcześniej: zob. Obniż TTL przed migracją.
  • Lokalne cache. System operacyjny i przeglądarka też przechowują DNS w pamięci podręcznej. Wyczyść je, zanim uznasz, że propagacja utknęła.
  • Zapomniany rekord. www nadal wskazuje stary serwer albo stary rekord AAAA (IPv6) wciąż kieruje tam odwiedzających przez IPv6.
  • CDN lub proxy przed stroną. Jeśli przed stroną działa Cloudflare lub inne proxy, odpowiedź DNS to adres CDN i się nie zmienia. Zmienić trzeba ustawienie origin w CDN, a Cloudflare stosuje je w ciągu sekund, więc nie ma czego propagować: zamiast tego sprawdź nowy serwer linkiem do podglądu.
  • Resolvery, które trzymają odpowiedzi dłużej niż TTL. Zdarzają się takie. Stanowią mniejszość, dlatego stary serwer pozostawia się włączony jeszcze dzień lub dwa po przełączeniu.

Jak sprawdzić propagację DNS

  1. Krok 1: Potwierdź zmianę na autorytatywnych serwerach nazw

    Odpytaj własne serwery nazw domeny. Jeśli nadal zwracają starą wartość, rekord nie został zapisany i czekanie nie pomoże.

  2. Krok 2: Odpytaj publiczne resolvery na całym świecie

    Wpisz domenę i oczekiwaną wartość w sprawdzanie propagacji DNS, aby zobaczyć, które resolvery już ją zwracają.

  3. Krok 3: Sprawdź każdą nazwę hosta i typ rekordu

    Powtórz dla www, innych subdomen i rekordów AAAA. Zapomniany rekord to najczęstszy powód, dla którego zmiana wygląda na zablokowaną.

  4. Krok 4: Wyczyść własne cache

    Wyczyść pamięć podręczną DNS systemu operacyjnego i uruchom ponownie przeglądarkę, zanim sam przetestujesz stronę.

  5. Krok 5: Potwierdź, że strona odpowiada z nowego serwera

    Użyj narzędzia Czy moja domena jest już przełączona?, aby sprawdzić, czy domena rozwiązuje się na nowy IP i strona tam odpowiada.

  6. Krok 6: Otrzymuj powiadomienie zamiast odświeżać

    Włącz alerty o propagacji DNS dla linku do podglądu, a DNSPeek będzie sprawdzać co kilka minut i wyśle Ci e-mail, gdy zmiana się zakończy.

Sprawdzanie z wiersza poleceń

Odpytaj wybrane publiczne resolvery bezpośrednio. Liczba w sekcji odpowiedzi to pozostały TTL zapamiętanej odpowiedzi w sekundach:

Terminal (macOS / Linux)
dig @8.8.8.8 example.com A +short
dig @1.1.1.1 example.com A +short
dig @9.9.9.9 example.com A +noall +answer
PowerShell (Windows)
Resolve-DnsName -Name example.com -Type A -Server 8.8.8.8
Resolve-DnsName -Name example.com -Type A -Server 1.1.1.1

Aby zobaczyć, co mówią autorytatywne serwery nazw bez żadnej pamięci podręcznej, odpytaj je bezpośrednio. Znajdź je poleceniem dig NS example.com +short lub narzędziem sprawdzanie serwerów nazw, a potem uruchom dig @ns1.your-dns-host.com example.com A. Jeśli nawet odpowiedź autorytatywna jest stara, zmiana nie została zapisana.

Czyszczenie lokalnej pamięci podręcznej DNS
# Windows
ipconfig /flushdns

# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Kiedy można uznać, że gotowe?

Nie ma globalnego przełącznika, który przeskakuje w jednej chwili, więc wybierz regułę. DNSPeek stosuje taką: propagacja jest zakończona, gdy co najmniej 90% publicznych resolverów, które odpowiedziały, zwraca nową wartość i odpowiedziała co najmniej połowa wszystkich resolverów. Resolvery, które nie odpowiedziały w czasie, są pomijane, więc jeden nieosiągalny resolver Cię nie zatrzyma. Najwyższy wciąż widoczny TTL mówi, jak długo może utrzymać się nieaktualna pamięć podręczna. Gdy nowa wartość to adres Cloudflare, liczy się każdy adres Cloudflare, ponieważ Cloudflare daje każdemu regionowi własny adres IP brzegowy.

Darmowe sprawdzanie propagacji DNS stosuje tę regułę do 20 publicznych resolverów odpytywanych z serwera DNSPeek. W panelu link do podglądu może na żądanie sprawdzić 16 resolverów, a w planach płatnych DNSPeek może powiadomić Cię e-mailem lub webhookiem, gdy propagacja domeny się zakończy, a potem ponownie uruchomić raport QA na domenie produkcyjnej.

Dlaczego odpowiedzi resolverów się różnią

Widok starego adresu z jednego resolvera i nowego z innego jest w połowie procesu normalny. Każdy resolver zapamiętał rekord w innej chwili, więc każdemu wygasa on w innej chwili. Duże publiczne resolvery mają też wiele oddzielnych pamięci podręcznych za jednym adresem, dlatego dwa zapytania do tego samego resolvera w odstępie minuty mogą dać różne wyniki.

Martw się tylko wtedy, gdy podział się nie zmienia. Jeśli udział nowych odpowiedzi pozostaje taki sam dłużej niż stary TTL, poszukaj rekordu, którego nie zmieniono, drugiego zestawu serwerów nazw, który nadal serwuje starą strefę, lub CDN odpowiadającego za domenę. Narzędzie Porównanie DNS pokazuje, czy dwa serwery nazw zwracają różne rekordy.

Co robić w trakcie oczekiwania

Propagacja jest stresująca tylko wtedy, gdy nowego serwera wcześniej nie sprawdzono. Jeśli przed przełączeniem otworzono stronę na nowym IP za pomocą linku do podglądu, okres oczekiwania oznacza jedynie, że niektórzy odwiedzający nieco dłużej widzą starą kopię. Utrzymuj na obu serwerach te same treści, unikaj zmian treści na starym i przeglądaj jego logi dostępu: gdy prawdziwi odwiedzający przestaną się pojawiać, można go bezpiecznie wyłączyć.

Checklista rozwiązywania problemów z propagacją

Rozwiązywanie problemów z propagacją

  • Autorytatywne serwery nazw zwracają nową wartość
  • TTL obniżony co najmniej jeden stary TTL przed zmianą
  • www i inne nazwy hostów zaktualizowane
  • Stary rekord AAAA zaktualizowany lub usunięty
  • Origin w CDN zaktualizowany, jeśli strona działa przez proxy CDN
  • Lokalna pamięć podręczna DNS wyczyszczona, przeglądarka uruchomiona ponownie
  • Większość publicznych resolverów zwraca nową wartość
  • Stary serwer działa, dopóki nie ustanie na nim ruch

Najczęstsze pytania

Dlaczego propagacja DNS trwa od 24 do 48 godzin?

Przeważnie już tak nie jest. Ta liczba pochodzi od zmian serwerów nazw, których delegacja jest zapamiętywana nawet do dwóch dni, oraz od długich TTL. Zmiana rekordu z krótkim TTL dociera do prawie wszystkich w ciągu kilku minut.

Czy mogę przyspieszyć propagację DNS?

Tylko z wyprzedzeniem. Obniż TTL rekordu do 300 sekund dzień przed zmianą, aby pamięci podręczne trzymały starą odpowiedź najwyżej pięć minut. Po zmianie nie da się zmusić innych resolverów do usunięcia pamięci podręcznej, ale własną można wyczyścić.

Dlaczego widzę starą stronę, gdy inni widzą nową?

Twój resolver lub komputer nadal ma w pamięci podręcznej starą odpowiedź. Wyczyść lokalną pamięć podręczną DNS i uruchom ponownie przeglądarkę albo sprawdź przez publiczny resolver. Sprawdź też, czy www i ewentualny rekord AAAA wskazują nowy serwer.

Jak za darmo sprawdzić propagację DNS?

Użyj narzędzia do sprawdzania propagacji, które odpytuje jednocześnie wiele publicznych resolverów, np. darmowego sprawdzania propagacji DNS od DNSPeek, albo sam odpytaj kilka resolverów za pomocą dig lub nslookup. Porównaj każdą odpowiedź z oczekiwaną nową wartością.

Czy mogę przetestować nowy serwer przed propagacją DNS?

Tak. Link do podglądu lub wpis w pliku hosts kieruje żądania do Twojej domeny na nowy IP niezależnie od DNS. Dzięki temu sprawdzisz stronę przed przełączeniem, a okres oczekiwania po nim nie niesie ryzyka.

Moving a site? Use the migration checklist

Every step from lowering the TTL to checking email after the switch, on one printable page. With a free account you keep your preview links in one place and run a QA report of the site on the new server.

Sprawdź nowy serwer przed przełączeniem

DNSPeek daje Ci jeden link HTTPS, który pokazuje Twoją stronę z nowego serwera, podczas gdy DNS nadal wskazuje stary. Otwórz go na dowolnym urządzeniu, udostępnij zespołowi lub klientowi i uruchom skanowanie QA na tym samym linku.

Utwórz darmowy link do podglądu