Propagacja DNS

Protokoły i standardy
Czas potrzebny na rozprzestrzenienie zmian DNS na wszystkich serwerach DNS na świecie.
← Wróć do słownika

Czym jest propagacja DNS?

Propagacja DNS oznacza czas potrzebny, aby zmiany rekordów DNS zostały rozpoznane w całym internecie. Po aktualizacji rekordów DNS, na przykład zmianie serwerów nazw, rekordów A lub rekordów MX, zmiany nie zaczynają działać natychmiast. Muszą przejść przez hierarchiczny system DNS, gdy kolejne pamięci podręczne wygasają i są odświeżane.

Rozumienie „propagacji”

Termin „propagacja” jest nieco mylący, ponieważ zmiany DNS nie „rozchodzą się” aktywnie. Zamiast tego:

1. Aktualizujesz rekordy na autorytatywnym serwerze nazw

2. Kopie w pamięci podręcznej wygasają zgodnie z TTL (Time To Live)

3. Nowe zapytania pobierają zaktualizowane rekordy z serwerów autorytatywnych

4. Stare kopie w pamięci podręcznej są używane do wygaśnięcia TTL

Dokładniej byłoby mówić o „wygasaniu pamięci podręcznej DNS”, ale termin propagacja jest powszechnie używany.

Jak działają zmiany DNS

Proces aktualizacji

Step 1: Update DNS records

example.com A record: 203.0.113.50 → 203.0.113.51

Step 2: Authoritative nameserver immediately serves new record

Step 3: Existing cached copies remain valid until TTL expires

Step 4: New queries after TTL expiration receive updated record

Step 5: All caches eventually expire and refresh

→ "Propagation complete"

Przykład osi czasu

Time: 10:00 - DNS updated (TTL: 300s / 5 minutes)

Resolver A (cached at 09:58):

09:58 - Cached old IP, expires 10:03

10:03 - Cache expires, queries again, gets new IP

Resolver B (cached at 10:01):

10:01 - Cached old IP, expires 10:06

10:06 - Cache expires, queries again, gets new IP

Resolver C (queries at 10:05):

10:05 - No cache, queries immediately, gets new IP

All resolvers have new IP by: 10:06

Propagation time: 6 minutes (worst case based on TTL)

Czynniki wpływające na czas propagacji

TTL (czas życia)

To najważniejszy pojedynczy czynnik:

Wartość TTLCzas propagacjiZastosowanie
60s1-2 minutyAktywne migracje, równoważenie obciążenia
300s (5 min)5-10 minutZmiany produkcyjne, rozsądna wartość domyślna
3600s (1 godzina)1-2 godzinyStabilna infrastruktura
86400s (24 godziny)24-48 godzinRzadko zmieniane rekordy

Zmiany serwerów nazw

Zmiana serwerów nazw trwa dłużej niż inne zmiany DNS:

Registry Level: 24-48 hours (TLD nameserver cache)

Resolver Level: Based on NS record TTL

Total Time: Up to 48 hours worst case

Zachowanie dostawców internetu i resolverów

Nie wszystkie resolvery DNS respektują wartości TTL:

Resolvery przestrzegające zasad: Google (8.8.8.8), Cloudflare (1.1.1.1), OpenDNS Problematyczne resolvery: niektórzy dostawcy internetu

Rozkład geograficzny

Różne regiony aktualizują dane w różnym czasie, zależnie od lokalnej pamięci podręcznej resolvera:

North America: 10:05 - Updated

Europe: 10:08 - Updated

Asia: 10:12 - Updated

Pamięć podręczna po stronie klienta

Nawet po aktualizacji serwerów DNS lokalne pamięci podręczne mogą przechowywać stare wartości:

Sprawdzanie propagacji DNS

Internetowe sprawdzarki propagacji

whatsmydns.net: pokazuje rozwiązywanie DNS z ponad 20 lokalizacji na świecie dnschecker.org: globalnie sprawdza rekordy A, AAAA, CNAME, MX i TXT Kontrola kondycji DomScan:
curl "https://domscan.net/v1/health?domain=example.com"

# Shows current DNS configuration

Sprawdzanie z wiersza poleceń

Sprawdzanie wielu resolverów:
# Google DNS

dig @8.8.8.8 example.com

# Cloudflare DNS

dig @1.1.1.1 example.com

# Your ISP (no @ server specified)

dig example.com

# Compare results

Bezpośrednie zapytanie do autorytatywnego serwera nazw:
# Find nameservers

dig example.com NS

# Query authoritative NS directly

dig @ns1.example.com example.com

Pokazuje to „prawdę” natychmiast, bez udziału pamięci podręcznej.

Sprawdzanie z wielu lokalizacji

# Using curl with DNS over HTTPS

curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'

Minimalizowanie czasu propagacji

Przed wprowadzeniem zmian

Krok 1: Obniż TTL (24-48 godzin przed zmianą)
Old: example.com.    3600    IN    A    203.0.113.50

New: example.com. 300 IN A 203.0.113.50

^^^

Reduced to 5 minutes

Krok 2: Poczekaj na wygaśnięcie starego TTL

Poczekaj pełny czas trwania starego TTL (3600s = 1 godzina).

Krok 3: Zmień DNS
example.com.    300    IN    A    203.0.113.51
Krok 4: Monitoruj propagację

Sprawdzaj resolvery na całym świecie.

Krok 5: Przywróć TTL (po potwierdzeniu powodzenia)
example.com.    3600    IN    A    203.0.113.51

W trakcie zmian

Użyj DNS anycast: dostawcy tacy jak Cloudflare korzystają z sieci anycast, które niemal natychmiast aktualizują dane w całej swojej globalnej sieci. Monitoruj stale: śledź propagację w kluczowych regionach i resolverach. Miej plan wycofania: utrzymuj starą infrastrukturę do zakończenia propagacji.

Typowe scenariusze propagacji

Zmiana rekordu A

Przewidywany czas: 5-30 minut (zależnie od TTL)
# Before

example.com → 203.0.113.50

# After

example.com → 203.0.113.51

# Propagation: 1x TTL duration

Zmiana rekordu MX

Przewidywany czas: 5-30 minut (zależnie od TTL) Ryzyko: podczas propagacji poczta może być dostarczana do starego serwera Ograniczenie ryzyka: utrzymuj stary serwer pocztowy aktywny przez 24-48 godzin

Zmiana serwerów nazw

Przewidywany czas: 24-48 godzin
Why so long?
  • TLD registry caches NS records
  • Registry TTL often 24-48 hours
  • No control over registry cache
Dobra praktyka: skonfiguruj wszystkie rekordy na nowych serwerach nazw przed ich przełączeniem.

Dodanie nowej subdomeny

Przewidywany czas: od chwili natychmiastowej do 1 godziny Pułapka: buforowanie negatywne
If subdomain was queried and didn't exist:

→ NXDOMAIN cached (SOA minimum TTL)

→ New subdomain won't resolve until cache expires

Ograniczenie ryzyka: obniż minimalny TTL SOA przed dodaniem nowych rekordów.

Rozwiązywanie problemów z propagacją

Zmiana się nie propaguje

Sprawdzenie 1: Zweryfikuj autorytatywny serwer nazw
dig @ns1.example.com example.com

# Should show new value

Sprawdzenie 2: Zweryfikuj TTL
dig example.com | grep -i ttl
Sprawdzenie 3: Sprawdź SOA pod kątem pamięci podręcznej negatywnej
dig example.com SOA

# Look at minimum TTL field

Sprawdzenie 4: Wyczyść lokalną pamięć podręczną

Wyczyść pamięć podręczną przeglądarki, systemu operacyjnego i aplikacji.

Częściowa propagacja

Objaw: niektórzy użytkownicy widzą nowe rekordy, a inni stare Przyczyna: różne resolvery zapisały dane w pamięci podręcznej w różnym czasie Rozwiązanie: poczekaj maksymalny czas TTL, a następnie wyczyść pamięci podręczne klientów

Zatrzymana propagacja

Objaw: po kilku dniach niektóre resolvery nadal zwracają stare rekordy Przyczyna: resolver dostawcy internetu ignoruje TTL albo jest nieprawidłowo skonfigurowany Rozwiązanie:

1. Sprawdź, czy autorytatywny serwer nazw jest prawidłowy

2. Jeśli problem trwa, skontaktuj się z dostawcą internetu

3. Użytkownicy mogą przełączyć się na publiczny DNS (8.8.8.8, 1.1.1.1)

Propagacja DNS a TTL pamięci podręcznej

PojęcieZnaczenieCzas trwania
TTLJak długo rekord może być przechowywany w pamięci podręcznejUstawia właściciel domeny
PropagacjaCzas potrzebny na wygaśnięcie wszystkich pamięci podręcznychOkoło 2x TTL
TTL serwera nazwJak długo rekordy NS są przechowywane w pamięci podręcznejCzęsto 24-48 godzin (rejestr)
Pamięć podręczna negatywnaJak długo przechowywany jest NXDOMAINMinimalny TTL SOA

Dobre praktyki

1. Obniż TTL przed zmianami: zmniejszaj TTL 24-48 godzin przed aktualizacjami DNS

2. Używaj odpowiednich wartości TTL: równoważ wydajność (wysoki TTL) i elastyczność (niski TTL)

3. Monitoruj globalnie: sprawdzaj DNS z wielu regionów geograficznych

4. Utrzymuj stare usługi: pozostaw poprzednie serwery do zakończenia propagacji

5. Dokumentuj zmiany: zapisuj co i kiedy się zmieniło na potrzeby diagnozowania

6. Testuj dokładnie: sprawdź działanie nowych rekordów DNS przed przełączeniem

7. Komunikuj się z użytkownikami: ostrzegaj o możliwych krótkich przerwach

8. Używaj zarządzanego DNS: dostawcy z sieciami anycast minimalizują czas propagacji

9. Automatyzuj monitoring: skonfiguruj alerty zmian DNS i stanu propagacji

10. Miej plan wycofania: wiedz, jak cofnąć zmiany w razie problemów

Lista kontrolna propagacji

☐ Lower TTL 24-48 hours before change

☐ Wait for old TTL to expire

☐ Make DNS change

☐ Verify on authoritative nameservers

☐ Check multiple public resolvers

☐ Test from multiple geographic locations

☐ Monitor for 2x TTL duration

☐ Verify no errors reported

☐ Restore higher TTL if desired

☐ Document change completion

Propagacja DNS jest naturalnym skutkiem buforowania DNS. Zrozumienie działania TTL i odpowiednie planowanie zmian zapewniają płynne, przewidywalne aktualizacje przy minimalnych zakłóceniach.

Wykorzystaj tę wiedzę w praktyce

Użyj API DomScan, aby sprawdzić dostępność domen, ich kondycję i więcej.