Propagacja DNS

Protokoły i standardy
Okres, w którym resolvery DNS aktualizują zapisane w pamięci podręcznej odpowiedzi po zmianie rekordu DNS.
← Wróć do słownika

Czym jest propagacja DNS?

Propagacja DNS to okres, w którym zmiana opublikowana przez autorytatywny serwer nazw staje się widoczna za pośrednictwem innych serwerów autorytatywnych, resolverów rekurencyjnych i lokalnych pamięci podręcznych. Serwer nazw publikujący zmianę może obsługiwać nowy rekord od chwili jej opublikowania, podczas gdy inne serwery autorytatywne mogą być jeszcze w trakcie aktualizacji, a resolvery rekurencyjne mogą zwracać starszą odpowiedź zapisaną w pamięci podręcznej. Wartości TTL określają czas przechowywania danych w pamięci podręcznej, ale zachowanie resolverów może się różnić, dlatego nieaktualne odpowiedzi mogą czasami utrzymywać się dłużej niż nominalny TTL.

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.