Introduksjon
Du har nettopp endret en DNS-oppføring. Du har lagret den, bekreftet den, og føler du har full kontroll. Så åpner du nettleseren, skriver inn domenet, og… ingenting har endret seg. Den gamle nettsiden er fortsatt der. Eller enda verre: nettsiden lastes ikke inn i det hele tatt.
Dette er den vanligste årsaken til frustrasjon knyttet til DNS, og den har et navn: propagasjon (propagation). Men “propagasjon”, eller spredning, er et misvisende begrep. Det får det til å høres ut som om endringen i DNS-innstillingene dine sakte beveger seg gjennom internett, og hopper fra server til server som en flaskepost. Det er ikke det som skjer.
Det som faktisk skjer, er mye enklere: caching. DNS-servere over hele verden har lagret det gamle svaret og vil ikke be om et nytt før cachen deres utløper. Endringen din er allerede synlig ved kilden, men resten av internett har ikke sjekket den ennå.
Når du har lest denne veiledningen vil du vite hvordan du kan sjekke om DNS-endringen din faktisk har trådt i kraft, hvilke cacher som ligger mellom deg og svaret, og i hvilke situasjoner det hjelper å tømme den lokale cachen (og når det ikke hjelper).
Trinn 1: Sjekk at endringen er aktiv
Før du tømmer en cache, feilsøker eller får panikk, prøv å svare på ett spørsmål: ble endringen faktisk lagret på det offisielle nivået?
De offisielle navnetjenerne dine er kilden til DNS-oppføringene til domenet. Alt annet, inkludert internettleverandøren, Google, Cloudflare og ruteren din, er kopier. Hvis den offisielle serveren viser den nye verdien, har endringen fungert, og alt annet er bare i ferd med å oppdatere seg. Hvis den offisielle serveren fremdeles viser den gamle verdien, vil det ikke hjelpe å tømme cachen, uansett hvor mange ganger du gjør det.
Sjekk det offisielle svaret
Send en forespørsel direkte til den offisielle navnetjeneren din ved hjelp av metoden fra del 4:
dig NS dittdomene.com +short
dig @ns1.servetheworld.net A dittdomene.com
Hvis svarfeltet viser den nye verdien, er endringen aktiv. Den “oppdateringen” du venter på, er bare at cachen utløper på resten av internett. Hvis svarfeltet fortsatt viser den gamle verdien, betyr det at endringen ikke ble lagret, eller at den ble gjort hos feil leverandør. Gå tilbake til del 4 for å se hvordan du feilsøker.
Trinn 2: Forstå caching-nivåene
Mellom nettleseren din og den offisielle navnetjeneren ligger det flere nivåer med cacher. Hvert av dem lagrer DNS-svar midlertidig for å redusere belastningen og øke hastigheten på gjentatte oppslag. Når du foretar en DNS-endring, må hvert nivå uavhengig av de andre bestemme seg for å hente et nytt svar.
Her er nivåene, fra det nærmeste til det fjerneste:
1. Nettleseren din
Moderne nettlesere har sin egen DNS-cache. Både Chrome, Firefox, Edge og Safari lagrer DNS-oppslag i cachen, uavhengig av operativsystemet. Hvor lenge opplysningene lagres varierer mellom ulike nettlesere, versjoner og innstillinger.
2. Operativsystemet ditt
Operativsystemet ditt har en DNS-cache som alle programmer deler. Når et program på datamaskinen din sender en DNS-forespørsel, sjekker operativsystemet først denne cachen. Hvis den finner et svar som er ferskt nok, returnerer det dette uten å undersøke nærmere.
3. Ruteren din
De fleste hjemmerutere har en liten DNS-cache. Når datamaskinen din ber ruteren om et DNS-svar, kan ruteren oppgi en kopiert versjon fra cachen i stedet for å videresende oppslaget til neste nivå.
4. DNS-serveren til internettleverandøren din
Dette er det viktigste. Internettleverandøren din (ISP) driver rekursive resolvere (serverne som gjør grovarbeidet med å finne DNS-svar). Disse resolverne lagrer mye i cachen fordi de betjener tusenvis (eller millioner) av kunder. Hvor lenge innholdet ligger i cachen, styres av TTL (Time to Live) i den enkelte DNS-oppføring.
Hvis oppføringen hadde en TTL på 86400 (24 timer) da resolveren hentet den sist, vil ikke den aktuelle resolveren se etter nye oppdateringer før det har gått 24 timer, uansett hvor mange ganger du oppdaterer nettleseren din.
Tidslinjen
Når du endrer en DNS-oppføring, oppdateres den offisielle serveren umiddelbart. Men:
- Internettleverandørens resolver vil ikke oppdage det før den gamle TTL-tiden utløper.
- Ruteren din vil ikke oppdage det før den sender en ny forespørsel til resolveren.
- Operativsystemet ditt vil ikke oppdage det før cachen utløper eller tømmes.
- Nettleseren din vil ikke oppdage det før den interne cachen utløper.
Dette er grunnen til at den samme endringen kan synes å være “aktiv” på mobiltelefonen din, men “ikke fungerer” på PCen din (som bruker en annen resolver).
Trinn 3: Sjekk hva offentlige resolvere ser
Når du har bekreftet at det offisielle svaret er riktig (trinn 1), kan du sjekke hva de store offentlige resolverne angir. Dette viser deg om endringen har nådd de resolverne som mesteparten av internett bruker.
Forespørsel til Googles resolver (8.8.8.8)
dig @8.8.8.8 A dittdomene.com
Forespørsel til Cloudflares resolver (1.1.1.1)
dig @1.1.1.1 A dittdomene.com
Forespørsel til internettleverandørens resolver (standard)
dig A dittdomene.com
(Uten @-tegnet bruker dig den resolveren systemet ditt er konfigurert til å bruke. Dette er ofte resolveren til internettleverandøren din, med mindre egendefinerte DNS- eller DoH-innstillinger overstyrer dette.)
Sammenlign resultatene. Hvis den offisielle serveren og alle de store resolverne viser den nye verdien, har endringen nådd de store nettverkene. Hvis den offisielle serveren viser den nye verdien, men en resolver viser den gamle, har ikke cachen til den aktuelle resolveren utløpt ennå. Den vil oppdateres når TTL-tiden utløper.
Sjekk TTL-nedtellingen
Du kan se nøyaktig hvor mye tid som gjenstår på en cachet oppføring. TTL-verdien i dig-resultatene viser den gjenværende cachetiden, ikke den opprinnelige TTL-verdien:
dittdomene.com. 1847 IN A 203.0.113.50
Den «1847»-verdien betyr at resolveren fortsatt vil angi dette cachede svaret i ca. 31 minutter. Hvis du kjører samme forespørsel noen minutter senere, vil tallet være lavere. Når det når null, henter resolveren en ny kopi fra den offisielle serveren.
Trinn 4: Når (og hvordan) du bør tømme DNS-cachen
Når du tømmer DNS-cachen slettes de lokalt lagrede svarene, slik at datamaskinen din blir tvunget til å hente dem på nytt. Dette kan være nyttig når endringen din er aktiv på offisielt nivå, men den lokale maskinen din fremdeles serverer det gamle svaret.
Viktig: Når du tømmer cachen, fjernes kun cachen til den lokale maskinens. Det påvirker ikke ruteren din, internettleverandørens resolver eller noen andre. Hvis internettleverandørens resolver fortsatt har den gamle verdien lagret i cachen, vil tømming av den lokale DNS-en bare føre til at du får det gamle svaret fra resolveren igjen.
- Tøm hvis: den offisielle serveren viser den nye verdien, offentlige resolvere (8.8.8.8, 1.1.1.1) viser den nye verdien, men enheten din fortsatt viser den gamle.
- Ikke bry deg med å tømme cachen hvis: den offisielle serveren fortsatt viser den gamle verdien. Det hjelper ikke å tømme cachen fordi problemet ligger ved kilden, ikke i cachen din.
Tømming av DNS-cachen i Windows
Åpne Kommandoprompt som administrator og kjør:
ipconfig /flushdns
Du bør se en melding som bekrefter at cachen er tømt.
Tømming av DNS-cachen i macOS
Kommandoen varierer avhengig av hvilken versjon av macOS du bruker, men på nyere versjoner av macOS (Ventura og nyere):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Tømming av DNS-cachen i Linux (systemd-resolved)
Hvis distribusjonen din bruker systemd-resolved (vanlig på Ubuntu, Fedora og andre):
sudo resolvectl flush-caches
(På eldre systemer kan denne kommandoen i stedet være systemd-resolve --flush-caches.)
På distribusjoner som ikke bruker systemd-resolved, varierer cache-atferden. Noen lagrer ingenting i lokal cache i det hele tatt, og i så fall er det ikke noe å tømme.
Ikke glem nettleseren
Etter at du har tømt cachen til operativsystemet bør du også tømme DNS-cachen til nettleseren :
- Chrome: Gå til
chrome://net-internals/#dnsand click Tøm vertsbufferen. - Firefox: Gå til
about:networking#dnsog klikk Tøm DNS-hurtiglager. - Edge: Gå til
edge://net-internals/#dnsog klikk Tøm vertsbufferen.
Eller bare lukk nettleseren og åpne den på nytt. Da tømmes de fleste DNS-cacher i nettleseren.
Trinn 5: TTL-strategi før endringer
Den viktigste faktoren du kan påvirke er TTL-strategien vi gikk gjennom i del 4: Senk TTL-verdien til 300 (5 minutter) et par dager før du skal endre noe, vent til den gamle TTL-verdien utløper, og gjennomfør så selve endringen. Resolverne vil da hente den nye verdien i løpet av minutter i stedet for timer.
Hvis du hopper over dette og endrer en oppføring med en TTL på 24 timer, kan det hende du må vente i opptil 24 timer før endringen er synlig overalt. Dette er ikke en feil i DNS. Det er cachesystemet som fungerer akkurat slik det er ment. Se del 4 for en fullstendig trinnvis veiledning.
Feilsøking: “Jeg endret DNS, men ingenting skjer”
Her er et kort beslutningstre for de vanligste scenariene:
Den offentlige navnetjeneren viser fortsatt den gamle verdien
Årsak: Endringen ble ikke lagret, eller du endret hos feil leverandør.
Løsning: Logg inn hos DNS-leverandøren din (bruk kommandoen dig NS dittdomene.com for å finne ut hvem leverandøren er), sjekk oppføringen og lagre på nytt. Se del 4.
Offentlig navnetjener viser en ny verdi, men resolvere viser den gamle verdien
Årsak: Normal ventetid før cachen utløper. Resolverne har lagret den gamle verdien i cachen, og TTL-tiden har ikke utløpt ennå.
Løsning: Vent. Sjekk gjenværende TTL med dig @8.8.8.8 A dittdomene.com. TTL-feltet angir hvor lenge den gamle verdien vil være gyldig.
Offentlig navnetjener og resolver-tjenester viser ny informasjon, men nettleseren din viser gammelt innhold
Årsak: Lokal caching. Operativsystemet, nettleseren, ruteren eller til og med en edge-cache i en CDN kan levere utdatert informasjon.
Løsning: Tøm DNS-cachen i operativsystemet, tøm DNS-cachen i nettleseren, og prøv på nytt. Hvis ruteren din har en DNS-cache, vil en omstart av ruteren også tømme denne. Hvis nettstedet ditt bruker et CDN, må du også tømme CDN-cachen.
Alt viser den nye IP-adressen, men nettsiden lastes ikke inn
Årsak: Dette er ikke et DNS-problem. Webserveren med den nye IP-adressen er ikke konfigurert til å svare på domenenavnet ditt.
Løsning: Kontroller konfigurasjonen av webserveren (virtuelle verter, serverblokker) og brannmurreglene, og sjekk at applikasjonen kjører. DNS har gjort jobben sin. Resten ligger på serversiden.
Nettstedet lastes inn på mobilen din, men ikke på datamaskinen din
Årsak: Telefonen og datamaskinen din bruker forskjellige DNS-resolvere (telefonen bruker mobildata, datamaskinen bruker Wi-Fi hjemme). Resolveren som telefonen din bruker har allerede hentet den nye verdien, mens resolveren til internettleverandøren din hjemme ikke har gjort det.
Løsning: Vent til internettleverandørens resolver-cache utløper, eller bytt midlertidig datamaskinens DNS til en offentlig resolver som 8.8.8.8 eller 1.1.1.1 for å omgå internettleverandørens cache.
Vil du forhåndsvise nettstedet før DNS-oppdateringene trer i kraft overalt?
Noen ganger har man ikke tid til å vente på at endringene skal tre i kraft. For eksempel kan du ha flyttet et nettsted til en ny server og må sjekke at ting som SSL-sertifikatet, databasetilkoblingen og e-postskjemaene fungerer før resten av verden får se det. Hvis det er noe som ikke fungerer, er det bedre å oppdage det nå enn etter at DNS har omdirigert alle besøkende til den nye serveren.
Datamaskinen din har en liten tekstfil (“hosts”-filen) som overstyrer DNS for bestemte domener. Når du legger til en oppføring i denne filen, hopper maskinen over den vanlige DNS-oppslaget og går direkte til IP-adressen du angir. Resten av internett påvirkes ikke. Besøkende ser fortsatt den gamle serveren mens du tester den nye.
Hvor hosts-filen ligger kommer an på operativsystemet ditt:
- Windows:
C:\Windows\System32\drivers\etc\hosts - macOS og Linux:
/etc/hosts
Du må ha administrator- eller rot-rettigheter for å redigere den. I Windows betyr det at du må kjøre tekstredigeringsprogrammet som administrator. I macOS og Linux må du åpne filen med sudo (f.eks. sudo nano /etc/hosts). Ta en sikkerhetskopi av filen før du gjør endringer, slik at du kan gjenopprette den hvis noe går galt.
1. Legg til overstyringen
Åpne hosts-filen og legg til en linje nederst med IP-adressen til den nye serveren etterfulgt av domenenavnet. Hvis du bruker både hoveddomenet og underdomenet www, legger du til begge på samme linje:
203.0.113.50 dittdomene.com www.dittdomene.com
Erstatt 203.0.113.50 med den faktiske IP-adressen til den nye serveren, og dittdomene.com med ditt egentlige domene. Lagre filen.
2. Sjekk at overstyringen fungerer
Bruk ping for å bekrefte at maskinen din når den nye IP-adressen:
ping dittdomene.com
Svaret skal nå vise 203.0.113.50 (IP-adressen til den nye serveren din), ikke den gamle.
digognslookupomgår hosts-filen fullstendig. De sender forespørsler direkte til DNS-serverne. For å bekrefte at overstyringen av hosts-filen fungerer, kan du brukepingeller nettleseren din.
3. Test i nettleseren
Åpne domenet i nettleseren din og sjekk at det nye nettstedet lastes inn. Hvis du fremdeles ser det gamle nettstedet, må du tømme DNS-cachen ved å bruke de samme kommandoene som beskrevet tidligere i denne veiledningen. Deretter må du tømme nettleserhistorikken eller starte nettleseren på nytt og prøve igjen. Et privat/inkognitovindu kan også bidra til å omgå data i cachen.
4. Fjern overstyringen når du er ferdig
Når DNS-endringene har trådt i kraft og du har bekreftet at den nye serveren er i drift via vanlig DNS, sletter du linjene du la til i hosts-filen og lagrer den. Eller gjenopprett sikkerhetskopien du lagde tidligere.
Konklusjon
Ventetiden før du ser DNS-endringer overalt skyldes ganske enkelt caching med en nedtellingsfunksjon. Når du endrer en DNS-oppføring, oppdateres den offentlige serveren umiddelbart. Alt annet handler om at DNS-resolvere over hele verden ikke sjekker for ny informasjon før cachen deres utløper.
Fremgangsmåten for å håndtere dette er enkel: sjekk først den offentlige serveren (dig @ns1... A dittdomene.com), sammenlign med offentlige resolvere (8.8.8.8, 1.1.1.1), tøm lokale cacher ved behov, og bruk TTL strategisk for å kontrollere hvor raskt endringene blir fanget opp.
I del 10, den siste artikkelen i denne serien, ser vi nærmere på DNS-sikkerhet: DNSSEC, cache-forgiftning og hvordan du kan beskytte domenet ditt mot kapring.
Neste trinn: