Promijenio si DNS A record na novi server IP, otvoriš sajt — vidiš stari sadržaj. Klijent ti javlja "kod mene nije ažurirano". Drugi kolega vidi novi sajt. Različite stvari na različitim mjestima u istom trenutku. To je DNS propagacija, najnečešće objašnjenа tehnička pojava na webu. Ovaj post objašnjava zašto traje, kako utjecati na nju, i kako pratiti gdje točno DNS update stigao.
Zašto se DNS uopće propagira
DNS je distributed cache sistem. Kada netko traži IP od tvojadomena.hr:
- Browser pita lokalni resolver (uglavnom router ili ISP)
- Resolver pita root DNS servere → ".hr" TLD server → tvoj nameserver
- Tvoj nameserver vraća A record (IP adresu)
- Resolver cachira odgovor na X sekundi (TTL)
- Browser dobiva odgovor i prikazuje sajt
Kritični dio: resolver-i cachiraju odgovore. Ako Cloudflare DNS cache-irao "tvojadomena.hr → IP-1" na 3600 sekundi (1 sat), sljedeći sat svi koji koriste Cloudflare DNS vide IP-1 — čak i ako si ti u međuvremenu promijenio u IP-2.
Različiti resolveri imaju različite cache periode → različiti korisnici vide različite verzije.
TTL — što je i zašto je presudan
TTL = Time To Live — koliko sekundi resolver smije cachirati DNS odgovor. Postavljaš ga ti kod registrara ili DNS providera.
Tipične TTL vrijednosti:
- 300 sekundi (5 min): brza propagacija, idealno tijekom migracija
- 600 sekundi (10 min): dobra balansiranja brzine i load-a
- 3600 sekundi (1 sat): standardni default kod mnogih registrara
- 14400 sekundi (4 sata): umjeren, smanjuje DNS load
- 86400 sekundi (24 sata): minimalan DNS load, ali sporiji updates
Pravilo: kraći TTL = brže updates, ali više DNS query-ja → veći load na tvoj nameserver. Duži TTL = sporije updates, ali manji load.
Zašto "do 48 sati"
Standardna fraza "DNS propagacija može trajati do 48 sati". To je worst case scenarij koji uključuje:
- Old TTL bio 24h, dakle bilo koji resolver koji je query-jiao prije promjene cachira do 24h
- Neki resolveri (rijetko) ignoriraju TTL i koriste vlastiti minimum (npr. 48h)
- ISP-ovi sa loše konfiguriranim DNS-om mogu cachirati duže
- Globalne distance — neki manji ISP-ovi sinkroniziraju s root serverima sporo
Realno, u 95% slučajeva propagacija traje 1-4 sata. 48h je formality.
Kako ubrzati propagaciju
1. Smanji TTL UNAPRIJED (24-48h prije promjene)
Najvažniji savjet ovog cijelog posta:
- 2 dana prije planirane DNS promjene, smanji TTL svih record-a na 300 (5 min)
- Pričekaj 24-48 sati — svi resolveri koji query-aju će cachirati novi TTL
- Sada napravi pravu DNS promjenu
- Propagacija se događa za 5-15 minuta umjesto sati
Bez ovog koraka, čak i ako smanjiš TTL u trenutku promjene, neki resolveri još uvijek imaju stari (npr. 24h) TTL u cache-u.
2. Anycast DNS
Standardni unicast DNS = jedan server za sve query-je → globalno spori updates. Anycast DNS = isti DNS odgovor sa servera distribuiranih po svijetu → brže propagiranje.
Anycast DNS provideri:
- Cloudflare DNS (najveća mreža, besplatno)
- Amazon Route 53
- Google Cloud DNS
- WMD ima Anycast nameservere uključene na managed paketima
3. Push DNS flush kod Google i Cloudflare
Velika dva javna resolvera nude alate za prisilno flush-anje cache-a:
- Google: developers.google.com/speed/public-dns/cache
- Cloudflare: 1.1.1.1/purge-cache
- Quad9: quad9.net/result
Ovo ne flusha CIJELI internet, samo specifične servise, ali oni servisiraju veliki postotak svjetskog DNS prometa.
Kako pratiti propagaciju
Alat 1: WhatsMyDNS.net (najpoznatiji)
- Otvori whatsmydns.net
- Upiši domenu
- Odaberi tip record-a (A, MX, NS itd.)
- Klikni Search
- Vidi se globalna karta DNS resolvera s rezultatima — gdje je propagiralo, gdje još nije
Alat 2: DNSChecker.org
Slično WhatsMyDNS, ima brže update-anje i više resolver lokacija.
Alat 3: Manual provjera preko nslookup ili dig
Iz terminala:
# Provjeri na specifičnom resolveru
nslookup tvojadomena.hr 8.8.8.8
# Detaljnija provjera
dig @8.8.8.8 tvojadomena.hr A
dig @1.1.1.1 tvojadomena.hr A
dig @9.9.9.9 tvojadomena.hr A
# Bez cache-a, query direktno na authoritative server
dig +trace tvojadomena.hr
Različiti resolveri:
- 8.8.8.8 — Google DNS
- 1.1.1.1 — Cloudflare DNS
- 9.9.9.9 — Quad9
- 208.67.222.222 — OpenDNS
- 89.42.30.50 — Hrvatski Telekom DNS (jedan od)
Alat 4: Flush svoj lokalni DNS cache
Ako ti se čini da "kod mene još nije propagiralo" — možda samo tvoj lokalni cache.
macOS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Windows:
ipconfig /flushdns
Linux:
sudo systemd-resolve --flush-caches
Browser:
- Chrome: chrome://net-internals/#dns → Clear host cache
- Firefox: about:networking#dns → Clear DNS Cache
Specifični DNS record types — propagacija
Različiti record types propagiraju različito:
A / AAAA records
Standardni TTL behavior. Smanji TTL prije promjene.
MX records (email)
Sporiji od A records jer mail servery često koriste duže TTL cache-eve interno. Plan: 2 sata buffer prije nego se mailovi "zaglave".
NS records (nameserveri)
NAJSPORIJI. NS records imaju TTL na razini TLD registry-a (npr. .hr ima svoj TTL kao 24-48h). Promjena nameservera = 48h+ realan propagation period.
Praktično: ne mijenjaj nameservere često. Bolje koristiti DNS provider (Cloudflare) gdje samo A/MX records mijenjaš.
TXT records (SPF, DKIM, DMARC)
Tipičan TTL behavior. Brze za update, ali email server-i koji ti šalju mail mogu imati interni cache TXT records 24h+. SPF promjene = 24h buffer.
CNAME records
Standardni TTL. Brzi za update.
Specijalne situacije
Migracija sajta na novi server
Standardni postupak:
- Dan -2: smanji TTL na 300s na svim records
- Dan -1: postavi sajt na novi server, testiraj sa hosts file overrideom
- Dan 0, jutro: promijeni A record na novi IP
- Dan 0, 30 minuta kasnije: 50% prometa je na novom serveru
- Dan 0, 2 sata kasnije: 95% prometa
- Dan 0, 24 sata kasnije: 99.9% prometa
- Dan +7: ugasi stari server, vrati TTL na 3600+ (normalni)
Promjena nameservera
Najgori scenarij. Nameserveri imaju TTL kod TLD registry-a.
- Postavi sve DNS records (A, MX, TXT itd.) na NOVOM nameserveru ranije
- Promijeni nameservere kod registrara
- Čekaj 24-48h propagacije
- U tom periodu, neki ljudi pogađaju stari nameserver, neki novi
- Najbolje: ne mijenjati nameservere, ostani na Cloudflare/Anycast DNS i samo update records
Cloudflare proxy aktivacija/deaktivacija
Cloudflare ima "orange cloud" (proxied) i "grey cloud" (DNS only). Switch je instant — Cloudflare propagira interno, ne ovisi o TTL-u.
Ali: ako mijenjaš A record IP-a istovremeno kao Cloudflare status, treba normalan TTL propagation period.
Mitovi i misunderstandings
"DNS propagacija je 48 sati uvijek"
Lažno. Većina propagacija ide u sat-dva ako je TTL postavljen pametno.
"Reboot mojeg računala = DNS flush"
Djelomično — flusha lokalni OS cache. Ne dira ISP/Cloudflare cache. Ako restart-aš i još uvijek vidiš stari sajt, problem je u resolverskom cache-u, ne tvom.
"Ako sajt radi na mom mobitelu a ne na mom laptopu, DNS je problem"
Vjerojatno. Mobile koristi mobile DNS, laptop koristi WiFi (router) DNS — različiti cache-evi. Restart router-a često riješi.
"Ako prebacim DNS na Cloudflare, propagacija nestaje"
Ne. Cloudflare ima Anycast i interni cache koji je brži, ali ostali resolveri u svijetu (Google, ISP) i dalje cachiraju po svom TTL-u.
WMD pristup DNS upravljanju
- Anycast nameserveri uključeni na svim managed paketima
- Smart TTL defaults — postavljamo 300s za records koji se često mijenjaju
- Pre-migration audit — provjeravamo TTL i pripremamo records 48h ranije
- DNS Manager u cPanel-u — sve records pregledno
- Cloudflare integracija — jedan klik za aktivaciju Cloudflare-a
- 24/7/365 hrvatski support — pomažemo s DNS problemima u realnom vremenu
Praktičan checklist prije DNS promjene
- 2 dana prije: smanji TTL svih relevantnih record-a na 300s
- 1 dan prije: pripremi sve nove DNS values u dokumentu
- Dan 0: napravi promjenu rano ujutro (manje promet)
- Provjeravaj WhatsMyDNS svakih 15 minuta prvih 2 sata
- Flush lokalni DNS cache, hard refresh browser (Ctrl+Shift+R)
- Ako klijent kaže "ne vidim", reci mu da flush-a svoj DNS
- Nakon 24h, vrati TTL na normalan (3600+)
DNS promjene ne idu kao planirano? Pošalji nam što si pokušao + screenshot WhatsMyDNS rezultata. Dijagnostiku radimo u 15-30 minuta, identificiramo gdje točno cache zaglavljuje. Ako koristiš naš managed hosting — pokretanje DNS promjena radimo za tebe s pre-migration audit-om.