Kratak odgovor
DNS propagacija je period dok nove DNS vrednosti ne stignu do svih resolvera i ne istekne stari cache. Najčešće traje par minuta do par sati; gornji okvir koji se obično navodi je 24 do 48 sati. Ako se menja nameserver, A zapis ili MX, deo korisnika privremeno vidi staru verziju sajta ili ima prekid u pošti, dok drugi već vide novu. Razlog je TTL i način na koji resolveri keširaju odgovore.
Šta je DNS propagacija
DNS sistem ne radi sa jednim centralnim serverom. Kada pregledač treba IP adresu nekog sajta, upit ide preko rekurzivnog resolvera koji najčešće drži vaš internet provajder. Resolver svoj odgovor čuva u kešu određeno vreme (TTL); dok taj keš ne istekne, vraća isti odgovor svim korisnicima koji ga pitaju.
Kada promenite DNS vrednost (na primer da A zapis pokazuje na novu IP adresu), nova vrednost se odmah upisuje u autoritativnu DNS zonu vašeg domena. Ali resolveri sa starim kešom to ne znaju dok god u kešu drže prethodni odgovor. Period dok se taj stari keš ne potroši kod svih relevantnih resolvera i klijenata, zove se propagacija. Isti proces se dešava svaki put kada se nešto menja u DNS-u, bilo da prvi put povezujete nov domen sa hostingom, menjate nameservere, ili samo dodajete TXT zapis za verifikaciju.
Zašto DNS promene nisu odmah vidljive
DNS odgovor se kešira na više nivoa, a svaki ima svoj rok trajanja:
- autoritativni nameserver, koji odmah ima novu vrednost
- rekurzivni resolver vašeg internet provajdera, koji drži staru dok ne istekne TTL
- lokalni OS keš (Windows DNS Client, systemd-resolved, macOS mDNSResponder), koji drži šta je dobio od resolvera
- pregledač, jer Chrome i Firefox imaju svoj DNS keš odvojen od OS-a, sa svojom logikom
Svaki sloj produžava propagaciju. Korisnik kome je sva tri keša sveža starom vrednošću vidi stari sajt; korisnik kojem je sve isteklo vidi novi; korisnik u sredini može videti pomešano (slike sa starog servera, HTML sa novog).
Šta je TTL
TTL (time-to-live) je polje u DNS zapisu koje govori resolverima koliko sekundi smeju da čuvaju odgovor pre nego što ponovo pitaju autoritativni server. Tipične vrednosti:
shellA @ 300 185.10.20.30 // 5 minuta A @ 3600 185.10.20.30 // 1 sat A @ 86400 185.10.20.30 // 24 sata
Veći TTL znači manji broj upita ka autoritativnom serveru (manji trošak, brži odgovor iz keša), ali veće kašnjenje pri promeni. Manji TTL znači brža propagacija, ali više saobraćaja. Za stabilan sajt se obično uzima TTL od jednog do šest sati; pre planirane migracije se privremeno spušta na 300 sekundi.
Koliko traje DNS propagacija
Vreme zavisi od dve stvari: TTL vrednosti koja je važila za stari zapis, i ponašanja konkretnih resolvera koje vaši posetioci koriste.
- mala izmena, na primer dodavanje
TXTzapisa za verifikaciju, može biti vidljiva za par minuta jer obično nema starog keša koji mora da istekne - izmena
Azapisa najčešće prati raspon TTL-a koji je bio postavljen na starom zapisu - promena nameservera ume da potraje duže, jer TLD registry ima svoj keš (često 24 do 48 sati za
.com,.rsi slično)
Standardna procena „24 do 48 sati" je više bezbedna gornja granica nego stvarno tipično vreme. Mnogi posetioci vide promenu znatno ranije, ali ko se osloni na pretpostavku „sad je već propagiralo" posle 30 minuta često bude razočaran.
Zašto meni ne radi, a drugima radi
Tipičan scenario posle promene hostinga: kod kuće ste na Wi-Fi mreži, u telefonu imate mobilni internet. Wi-Fi mreža možda koristi DNS keš vašeg internet provajdera koji još drži staru IP adresu. Mobilni operator koristi drugi resolver, koji je već dobio novu vrednost. Rezultat: sajt vam radi na telefonu, ne radi na računaru, iako je promena izvršena pre par sati.
Ista priča važi u kancelariji: ako neki kolege koriste 1.1.1.1 (Cloudflare DNS) na svojim računarima, a drugi default DNS provajdera, jedna grupa vidi novu vrednost ranije. Ovo nije bug; to je normalan rad DNS sistema u prelaznom periodu.
Šta proveriti ako domen ne radi posle promene
Pre nego što se proglasi da je nešto pokvareno, kratka lista provera:
- da li su nameserveri tačno upisani kod registrara (štamparska greška u imenu vraća
NXDOMAIN) - da li
Azapis pokazuje na pravu IP adresu novog servera - da li postoji
AAAAzapis koji još pokazuje na staru IPv6 adresu (često se zaboravi i blokira sajt na IPv6 mrežama) - da li je SSL sertifikat izdat za domen (inače pregledač javlja grešku, što izgleda kao da sajt ne radi)
- da li je hosting fizički dodao taj domen u konfiguraciju servera (IP postoji, ali nema vhost-a za vaš domen)
- da li su MX zapisi i ostale email zone prebačene ako se očekuje da pošta i dalje radi
Za detaljniji troubleshooting kompletne migracije sajta sa starog na nov hosting, postoji poseban tekst o prebacivanju sajta na novi hosting.
Promena nameservera i email problemi
Kada se promene nameserveri, DNS zona ne dolazi sa starog hostinga sama. Nova zona kreće prazna (ili samo sa default zapisima koje hosting napravi automatski) i, dok ručno ne upišete MX, SPF, DKIM i DMARC, dolazna pošta odjednom prestane da stiže.
To je najčešći uzrok situacije „sajt radi, ali je pošta nestala". Sajt radi jer ste verovatno upisali bar A zapis. Pošta ne radi jer MX nije prenet sa stare zone. Više o samom postavljanju poslovnog email-a na sopstvenom domenu i o tome šta sve treba prebaciti, ima u zasebnom tekstu.
Kako ubrzati DNS promene
Najefikasniji potez se radi unapred, ne posle promene:
- spustite TTL na nisku vrednost (na primer 300 sekundi) bar 24 sata pre planirane promene, dok stari TTL ne istekne kod svih resolvera
- pripremite kompletnu DNS zonu na novom mestu (
A,AAAA,CNAME,MX, sveTXTzapise) pre nego što izmenite nameservere - proverite da svi zapisi rade na novom hostingu pre nego što stvarno preusmerite domen
- ne menjajte sve zapise istovremeno; promena nameservera,
Azapisa iMX-a u istom satu pravi haos kada nešto pukne jer ne znate šta je uzrok
Posle promene, TTL se vraća na uobičajenu vrednost. Više o samim nameserverima i koracima za njihovu izmenu ima u tekstu o nameserverima.
Kada čekati, a kada tražiti pomoć
Pravilo palca:
- ako su prošli sati i
digiliwhoispokazuju ispravne (nove) zapise, problem je gotovo sigurno lokalni keš kod vas ili kod vašeg provajdera; pomaže brisanje OS DNS keša, restart pregledača, ili testiranje sa drugog uređaja i druge mreže - ako alati i posle nekoliko sati pokazuju pogrešne zapise ili domen vraća
NXDOMAIN, propagacija nije razlog; postoji greška u registru, kod registrara, ili u zoni na novim nameserverima
Ako se ne snalazite u DNS alatima i proverama, ima smisla pitati hosting podršku. Kada su domen i hosting paket kod istog provajdera, podrška može da uđe u zonu i proveri šta je upisano bez razmene ekrana i prebacivanja podataka.
Najčešća pitanja
Koliko traje DNS propagacija?
Zavisi od TTL-a starih zapisa i ponašanja resolvera kod vaših posetilaca. Najčešće od par minuta do par sati. Standardna gornja granica koja se navodi u literaturi je 24 do 48 sati, ali to je više bezbedna procena nego stvarno tipično vreme. Promena nameservera obično traje duže od izmene pojedinačnog zapisa.
Da li mogu da ubrzam DNS propagaciju?
Direktno ne, jer kada je promena već napravljena nemate kontrolu nad tuđim kešom. Indirektno, najefikasniji potez je da pre planirane promene spustite TTL na nisku vrednost (na primer 300 sekundi) i sačekate da stari TTL istekne. Tada nove vrednosti stižu kod resolvera mnogo brže čim konačno promenite zapis.
Zašto sajt radi na telefonu, ali ne radi na računaru?
Telefon i računar koriste različite DNS resolvere (mobilni operator vs Wi-Fi provajder), i imaju različite lokalne keš slojeve. Jedan je verovatno već dobio novu vrednost, drugi još drži staru. Brisanje DNS keša na uređaju koji ne radi i restart pregledača često reši stvar, ako je promena već stigla do vašeg internet provajdera.
Da li promena DNS-a može da pokvari email?
Da, ako se menjaju nameserveri ili MX zapisi. Promena A zapisa za sajt ne dira email, jer pošta prati MX. Ali kada se prebace nameserveri, nova zona kreće prazna i MX se mora ručno upisati, inače dolazna pošta prestane da stiže. Stari mejlovi koji su već isporučeni ostaju netaknuti na poštanskom serveru.
Da li treba menjati nameservere ili samo DNS zapise?
Zavisi od situacije. Ako selite samo sajt na drugi server (a email i ostalo ostaje), dovoljno je promeniti A zapis u postojećoj zoni. Ako prebacujete kompletnu uslugu (sajt, email, DNS panel) na drugog provajdera, menjaju se nameserveri i nova zona se popunjava ručno.
Reference
Osnivač NIJEFILA DOO. Piše o hostingu, DNS-u, email infrastrukturi i serverskoj administraciji.