Grunnleggende

DNS forklart: internettets telefonkatalog

Egil Skjelbred

Du skriver et navn, ikke et tall, når du besøker en nettside, men datamaskiner forstår egentlig bare tall. Et sted mellom disse to verdenene må noen ta oversettelsen, stille og usett, hver eneste gang du trykker enter i adressefeltet.

Telefonkatalogen for internett

DNS, Domain Name System, er systemet som oversetter navnet google.no til riktig IP-adresse. Tenk på det som internetts telefonkatalog. Du slår opp et navn og får ut et nummer. Denne katalogen er ikke lagret ett sted, den er spredt utover tusenvis av servere verden over som kontinuerlig snakker sammen og oppdaterer hverandre.

Det finnes ingen enkelt hovedbok noe sted som inneholder hele internett samlet på ett sted. I stedet er ansvaret delt opp i biter, litt som om telefonkatalogen for hele landet var delt opp fylke for fylke, kommune for kommune, med hver sin lokale utgave som kun har ansvar for sin egen bit av navnene. Denne oppdelingen gjør systemet langt mer robust. Går én enkelt del av katalogen ned, forsvinner ikke resten av internett med den.

Flere nivåer i oppslaget

Oppslaget skjer egentlig i flere steg. Først spør nettleseren din en lokal katalogtjeneste, gjerne hos internettleverandøren din, om den allerede vet svaret fra et tidligere oppslag. Hvis ikke, går forespørselen videre til en av internetts rotservere, som henviser videre til riktig «avdeling» for .no-domener, som igjen henviser til den spesifikke serveren som har det endelige svaret for akkurat google.no.

Det ligner på å ringe opplysningen, bli satt videre til riktig fylkeskontor, og til slutt få det eksakte telefonnummeret. Hvert nivå i denne kjeden vet bare litt mer enn det forrige, akkurat som et lite lokalkontor kanskje bare vet hvilket regionkontor du bør snakke med videre, uten selv å ha detaljene klare. Regionkontoret sender deg videre til akkurat den avdelingen som faktisk har svaret liggende klart.

Det finnes bare et lite antall rotservere i hele verden, plassert strategisk på forskjellige kontinenter for å sikre at systemet fungerer selv om noen av dem skulle falle ut. Disse rotserverne er blant de mest kritiske maskinene på hele internett, siden enormt mange oppslag i teorien passerer gjennom dem på et tidspunkt i kjeden, selv om mellomlagring i praksis gjør at de færreste forespørsler faktisk trenger å reise helt dit.

Hvorfor det går så raskt

Selv om det høres ut som mange steg, tar hele prosessen som regel bare noen få millisekunder. Grunnen er at svarene mellomlagres, eller caches, underveis. Har noen andre nylig slått opp samme adresse, har den lokale katalogtjenesten allerede svaret liggende klart, og trenger ikke spørre hele veien opp igjen.

Tenk deg en telefonsentral som husker de mest etterspurte numrene utenat, i stedet for å måtte bla gjennom hele katalogen på nytt hver eneste gang noen ringer inn og spør. Slår tusenvis av mennesker opp google.no hvert eneste sekund, ville det vært enormt ineffektivt om hver eneste forespørsel måtte helt til roten av systemet for å få svar. Mellomlagring gjør at bare en brøkdel av forespørslene faktisk trenger å reise hele veien.

Nye domener og oppdateringer

Når du registrerer et nytt domene, er det egentlig bare en ny oppføring som legges inn i denne enorme, distribuerte katalogen. Endrer du hvilken server domenet ditt peker til, kan det ta litt tid, gjerne noen timer, før endringen har spredt seg til alle katalogtjenester verden over, siden mange fortsatt sitter med det gamle svaret mellomlagret.

Denne forsinkelsen kalles gjerne DNS-propagering, et fint ord for at endringen sprer seg trinnvis utover det globale nettverket av katalogtjenester i stedet for å oppdateres momentant overalt samtidig. Det ligner på å sende ut en beskjed om at en butikk har flyttet adresse. Noen naboer får høre det med en gang, andre lenger unna hører det først et par dager senere, avhengig av hvor fort informasjonen sprer seg gjennom de forskjellige kanalene.

Når katalogen misbrukes

Fordi DNS er så grunnleggende for hvordan internett fungerer, er det også noe useriøse aktører av og til prøver å utnytte. Et triks går ut på å lure noen til å tro at de besøker riktig nettside, mens de i virkeligheten sendes til en forfalsket kopi, ved å tukle med selve oppslagsprosessen. Det ligner på om noen klarte å bytte ut ett enkelt nummer i telefonkatalogen slik at du tror du ringer banken din, mens du egentlig blir satt over til noen helt andre.

Dette er blant grunnene til at mange nettlesere og operativsystemer i dag har innebygde beskyttelsesmekanismer som sjekker at svarene faktisk kommer fra en pålitelig kilde, ikke bare hvilken som helst server som hevder å ha riktig svar.

Ulike typer oppføringer i katalogen

Telefonkatalogen inneholder ikke bare vanlige personnummer. Den har også bedriftsoppføringer, viderekoblingsnumre og spesialnumre for nødetater. DNS-katalogen fungerer på lignende vis, med flere forskjellige typer oppføringer for forskjellige formål. En A-post forteller hvilken IP-adresse et domene peker til, akkurat som et vanlig telefonnummer. En CNAME-post fungerer mer som en viderekobling, «ring i stedet dette andre nummeret», nyttig når flere navn skal peke til samme sted uten å måtte oppdateres hver for seg. En MX-post forteller spesifikt hvor e-post til domenet skal leveres, en helt egen oppføring atskilt fra der selve nettsiden bor.

Det er fullt mulig, og faktisk ganske vanlig, at nettsiden og e-posten til samme domene ligger hos to forskjellige leverandører, akkurat som et firma kan ha ett nummer for kundeservice og et helt annet for regnskapsavdelingen, begge oppført under samme firmanavn i katalogen, men med forskjellige mål.

Hvor lenge et svar holder seg gyldig

Hver oppføring i DNS-katalogen har også en angitt levetid, kalt TTL, time to live, som forteller hvor lenge andre katalogtjenester har lov til å stole på svaret før de må spørre på nytt. En kort levetid betyr at endringer sprer seg raskere neste gang noe endres, men også at systemet må spørre oftere i mellomtiden. En lang levetid sparer ressurser, men gjør at endringer tar lengre tid å slå igjennom overalt.

Det ligner på et klistremerke på en gammel papirkatalog som sier «gyldig i tre måneder». Skal du gjøre en stor endring snart, som å bytte hostingleverandør, er det lurt å senke denne levetiden på forhånd, slik at overgangen skjer raskere for alle når den dagen faktisk kommer, i stedet for at halve verden fortsatt sitter med det gamle, utdaterte svaret liggende klart i flere dager etterpå.

Hvorfor er dette nyttig å vite

Hvis en nettside plutselig blir utilgjengelig for deg men fungerer for andre, kan feilen ligge i akkurat denne oppslagsprosessen, ikke i selve nettsiden. Kanskje din lokale katalogtjeneste har et utdatert eller feilaktig svar liggende mellomlagret, mens andres katalogtjenester allerede har oppdatert seg.

Og flytter du en nettside til en ny leverandør, forklarer dette hvorfor eieren ofte ber om litt tålmodighet mens endringen «sprer seg» utover internett. Det er ikke noe som er gått galt, det er rett og slett den globale telefonkatalogen som gradvis oppdaterer seg selv, ett lokalkontor om gangen, helt til hele verden igjen er enige om hvor nettopp den adressen faktisk fører.

Neste gang du hører noen si «det er nok bare et DNS-problem», vet du nå omtrent hva det betyr: ikke at nettsiden i seg selv er ødelagt, men at telefonkatalogen et sted mellom deg og målet ennå ikke har fått med seg den ferskeste versjonen av sannheten.