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ść TTL | Czas propagacji | Zastosowanie |
|---|---|---|
| 60s | 1-2 minuty | Aktywne migracje, równoważenie obciążenia |
| 300s (5 min) | 5-10 minut | Zmiany produkcyjne, rozsądna wartość domyślna |
| 3600s (1 godzina) | 1-2 godziny | Stabilna infrastruktura |
| 86400s (24 godziny) | 24-48 godzin | Rzadko 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- Ściśle przestrzegają TTL
- Zapewniają szybką propagację
- Mogą ignorować niskie wartości TTL
- Mogą przechowywać dane dłużej, niż określono
- Mogą opóźnić propagację o kilka godzin
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:
- Pamięć podręczna przeglądarki: zwykle 60 sekund
- Pamięć podręczna systemu operacyjnego: od kilku minut do kilku godzin
- Pamięć podręczna aplikacji: zależnie od aplikacji
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ń DNSexample.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 godzinZmiana serwerów nazw
Przewidywany czas: 24-48 godzinWhy 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 negatywneIf 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 nazwdig @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ówZatrzymana 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ęcie | Znaczenie | Czas trwania |
|---|---|---|
| TTL | Jak długo rekord może być przechowywany w pamięci podręcznej | Ustawia właściciel domeny |
| Propagacja | Czas potrzebny na wygaśnięcie wszystkich pamięci podręcznych | Około 2x TTL |
| TTL serwera nazw | Jak długo rekordy NS są przechowywane w pamięci podręcznej | Często 24-48 godzin (rejestr) |
| Pamięć podręczna negatywna | Jak długo przechowywany jest NXDOMAIN | Minimalny 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.