Hopp til innhold

Fagstoff

DNS-oppslag

På internett benytter de fleste seg av domenenavn for å navigere til bestemte nettsider eller servere. Domenenavn-systemet (DNS) omadresserer domener til IP-adresser som datamaskiner og nettverksutstyr trenger for å kunne sende datapakker over nettverk og internett til riktig mottaker.
Finger som trykker på en knapp merket .com. Rundt den er andre knapper med andre topp-domener. Foto
Åpne bilde i et nytt vindu

Domain Name system (DNS) er tjenesten som brukes når det skal gjøres domenenavn-oppslag. Det er en sentral del av store nettverk og spesielt Internett. Systemet gjør at brukerne kan benytte seg av domener som ndla.no i stedet for IP-adresser som er lange og vanskelige å huske når de skal finne fram på internettet.

Modell av et hierarki med fire nivåer og linjer som går ned til laget under. Øverst er rot, under er toppdomener som .se og .no. Vanlige domeneservere er under dette igjen for eksempel for ndla. Til sist er underdomener for eksempel om eller deling. Når man setter dette sammen kan en få adresser som om.ndla.no. Modell
Åpne bilde i et nytt vindu

DNS er satt opp i en hierarkisk struktur. Denne strukturen fordeler belastningen av flere hundre tusen DNS-oppslag per sekund globalt mellom servere med ansvar for forskjellige domenenavn-soner (autoritative domeneservere). De forskjellige nettleverandørene har i tillegg sine egne DNS-servere (DNS-resolver) som gjør oppslag på vegne av sine brukere og har midlertidige mellomlagre av tidligere brukte oppslag. Disse DNS-serverne har ikke ansvar/definisjons-rett for en sone av DNS og er derfor ikke-autoritative.

I denne artikkelen fokuserer eksemplene på DNS-oppslag som er gjort av vanlige brukere. Men DNS brukes også innen IT-drifting, brukt både i lokale nettverk og på internett for unngå å hardkode-IP-adresser inn i datasystemer som skal kommunisere med hverandre. Ved å bruke domenenavn i stedet reduseres arbeidet når IP-adresser til servere forandres. En forandring i IP-adresse trengs da kun å registreres et sted (hos DNS-serveren med ansvar), og alle enheter som trenger denne adressen vil få den via vanlig DNS-oppslag i løpet av kort tid. Denne bruken har ikke et sterkt fokus i denne teksten, men er en viktig bruk av DNS som de fleste ikke er klar over.

De forskjellige lagene med autorative domeneservere

DNS fungerer fordi arbeidet med å gjøre oppslag er fordelt i et hierarki med tre lag. DNS rotservere er øverst, så nasjonale toppdomeneservere og ordinære domene-servere nederst. Disse er alle autorative domene-servere fordi de har ansvar for et område av domener.

Rotservere

Vi har 13 rotservere. Disse er plassert på forskjellige steder og har identiske lister over IP-adresser til alle de nasjonale toppdomene-serverne. Rot-serverne vet ingenting om domenene under hvert av topp-domenene, bare hvor DNS-serverne til alle toppdomenene finnes.

Nasjonale toppdomeneservere

Hvert toppdomene er styrt av en organisasjon. Domener under .no er for eksempel styrt av Norid AS. Toppdomeneserverne vet om alle domeneserverne som håndterer domener som ligger under deres toppdomene. Den norske toppdomeneserveren vil vite om alle domeneservere som håndterer adresser som bruker .no-domener.

Domeneservere

Et domene kan ha mange underdomener og forskjellige rutiner mellom adresse og typer tjenester som er oppsatt. Det er derfor nødvendig å ha dette tredje nivået med DNS-servere. En større bedrift kan styre sin egen domeneserver, mens for mindre bedrifter og privatpersoner leies denne tjenesten ofte inn fra en domenebutikk.

Rekkefølgen i et DNS-oppslag

Det er ønskelig at hvert DNS-oppslag gjøres så raskt og effektivt som mulig og ikke overbelaster DNS-systemet. Det er derfor mange av oppslagene som ikke kommer så langt som til de autorative domeneserverne, men får oppslaget sitt besvart enten fra den lokale DNS-cachen på brukerens egen maskin eller fra DNS-cache hos nettleverandørens DNS-resolver.

DNS-cachene er små tabeller med nylig brukte oppslag. For hvert oppslag er domenenavnet, IP-adresse og en TTL-verdi (Time To Live) lagret. TTL er en tidsfrist oppgitt i sekunder som forteller cachene hvor lenge et gammelt oppslag er gyldig. Når TTL-verdien har telt ned, slettes oppslaget fra cachen og oppslaget må gjøres på nytt mot den autoritative domeneserveren med ansvar for det spesifikke domenet. Dette sikrer at oppdateringer av DNS-oppslag blir tilgjengelige overalt innen kort tid.

Animasjonen under viser hvordan et oppslag ville gå hvis ingen av DNS-cachene hadde et gyldig oppslag. Dette viser dermed det mest omfattende og tidskrevende oppslaget som kan gjøres. I virkeligheten vil et DNS-oppslag nesten alltid gjøres raskere fordi en av cachene underveis vil ha et gyldig oppslag. Men med med jevne mellomrom (avhengig av TTL-lengden) må oppslag gjøres på nytt igjen, og da gjøres de slik.


I animasjonen ble det brukt to typer DNS-forespørsler, rekursive og iterative forespørseler.

Rekursiv forespørsel

Forespørsel som ber mottaker (som oftest nettleverandørs DNS-resolver) om å gjøre et komplett oppslag på vegne av brukeren. Hvis serveren som får en rekursiv forespørsel har svaret, vil den returnere dette med en gang. Hvis ikke vil denne serveren ta ansvar for å finne svaret ved å kontakte de forskjellige autoritative domeneserverne (de som har ansvar for et domeneområde). Først når det endelige svaret på oppslaget er på plass, vil DNS-resolveren sende svaret tilbake til brukeren.

Iterativ forespørsel

Er en enklere type DNS-forespørsel, hvor mottaker-DNS-serveren (som oftest en autoritativ domeneserver) enten gir tilbake svaret på forespørselen (hvis den har informasjonen) eller sender tilbake forslag om en annen DNS-server som kan spørres.

DNS-serveren som mottar en iterativ forespørsel vil dermed ikke påta seg å finne svaret for deg, men hjelper deg på veien videre. Dette er en mindre belastende forespørsel enn en rekursiv foresprøsel.

Alle DNS-servere vil svare på iterative forespørsler, og mange, spesielt autoritative domeneservere (som har ansvar for et domeneområde), vil bare svare på forespørsler som er iterative.

Relatert innhold

CC BY-SASkrevet av Tron Bårdgård.
Sist faglig oppdatert 30.01.2020

Læringsressurser

Nettverkstjenester og protokoller