Domænenavnssystemets udvikling

Af Martin Borgen, 7. april 2002

Domænenavnssystemet forkortes DNS og op opstod i 1982 i erkendelse af, at der var behov for et nyt system for adressering af computere på Internet. Domænenavne skulle gøre det lettere for brugerne af elektronisk post at sende meddelelser til hinanden ved hjælp af et distribueret og hierarkisk opbygget system.

Som afløser for det eksisterende navnesystem, der brugtes til elementær dataoverførsel, foresloges i 1982 i RFC 819 at indføre et nyt og bedre system. Et system der byggede på en hierarkisk og distribueret styring af navne. I stedet for som hidtil at benytte et navn for en modtagers computer skulle man nu benytte et sammensat navn. Det sammensatte navn skulle bestå af flere og minimum 2 enkelte navne adskilt af et punktum ("dot"). På den måde kunne man danne et hierarkisk system, der dels kunne give mulighed for flere navne, dels kunne distribuere ansvaret for grupper af navne i det hierarkiske system. Det er således med RFC 819, at grundstenen til Internets navnesystem blev lagt. Brugeren kunne ikke med det nye system selv angive domænenavnet, hvilket medførte, at domænenavne blev unikke på globalt plan.

Strukturen i DNS kan deles op i to væsentlige elementer. For det første er DNS hierarkisk og for det andet er DNS distribueret. Sidstnævnte er kendt allerede fra Internets fødsel, nemlig det forhold at data spredes til flere computere og lagres herpå og samtidig kan tilgås fra en hvilken som helst computer, der er koblet på netværket. Den hierarkiske struktur er nødvendig for at gøre net-værket større, og i takt med udbredelsen, for at kunne håndtere det.

Strukturen skal desuden sikre et funktionsdygtigt system. Det væsentligste er således, at domænenavne er unikke. Der kan ikke i systemet forefindes to ens domænenavne. Herudover skal det sikres, at domænenavne er knyttet til et IP-nummer, og at information om, hvilket IP-nummer og domænenavn der er knyttet sammen, lagres på en DNS-server koblet på det globale DNS-netværk.

Et IP-nummer er et nummer, der identificerer en computer på et netværk. Identifikationen er fun-damental for datakommunikation.  IP-numrene angives af brugeren eller tildeles automatisk på brugerens maskine eller fra den navneserver eller router, som maskinen automatisk kontakter ved opkobling på netværket. For at kommunikere med en anden computer i et netværk kræves, at man kender denne computers IP-nummer, så data kan finde frem til destinationen. IP-numre kan sam-menlignes med telefonnumre. Før man kan tale sammen via telefonen kræves telefonnummeret. Det samme gør sig gældende ved IP-numre.

DNS er hierarkisk

Det hierarkiske element i DNS indeholder to hierarkier, der hænger nøje sammen. Det ene hierarki er selve strukturen af top-level-domæner. Hvert niveau i en webadresse adskilles af et punktum. Når man bevæger sig fra et niveau til et andet, bevæger man sig fra et lag i hierarkiet til et andet.

Reglen, om at domænenavne skal være unikke, gælder for hvert niveau. Dette skal forstås således, at et 3. ordensdomænenavn eksempelvis: harddisken (harddisken.dr.dk) kun kan forekomme en gang på niveauet ovenfor. Niveauet ovenfor er i dette eksempel et 2. ordensdomænenavn: dr. Det vil således være muligt at benytte harddisken som 3. ordensdomænenavn under et andet 2. ordensdomænenavn, eksempelvis harddisken.sos.dk, uden at dette skaber konflikt med harddisken.dr.dk.

Det andet element i den hierarkiske struktur er selve hardwaren og softwaren. Hermed menes de navneservere, der er placeret verden over og forbundet via Internet. De kan ved hjælp af software udveksle oplysninger i DNS og sikre global adgang hertil. Til hver navneserver er knyttet en ansvarlig, der enten er en juridisk eller fysisk person. Der findes regler for, hvordan den ansvarlige skal drive sin virksomhed og drive navneserverne. 

Sammenhængen mellem de to hierarkiske strukturer er nødvendig. Fra rodzonen delegeres TLD'erne til registraturene. Hvert TLD opfattes som et 1. ordensdomænenavn. Dette adskilles, som beskrevet, fra 2. ordensdomænenavnet med et punktum, der angiver, at man nu befinder sig på niveau 2 i hierarkiet, nemlig hos den enkelte virksomhed eller hos en hostmaster med ansvar for særlige 2. ordensdomænenavne.

DNS er distribueret

Det forhold, at navneserverne og ansvaret for deres drift er placeret over hele verden, er udtryk for, at DNS er distribueret. Informationerne om domænenavne er spredt på globalt plan og lagres på computere, der er forbundet via et netværk. Der er således tale om en database, der er placeret fysisk mange forskellige steder.

For at kunne styre den distribuerede database er DNS opdelt i zoner. En zone er udtryk for en del af den samlede database. Fordelen ved denne struktur er, at databasen kan vedligeholdes af mange dataansvarlige. Man løfter således i flok, og det samlede arbejde er lettere, end hvis samtlige oplysninger i DNS skulle findes et sted.

Det er essentielt, at informationer i DNS kan udveksles mellem de mange navneservere uden risiko for fejl. Derfor er det defineret, hvilken software der skal bruges til driften af en navneserver, samt en række krav til ejeren af en navneserver.

DNS og de tekniske aspekter

Blandt de tekniske aspekter af DNS fremstår selve sammenkædningen af IP-nummer og domæne-navn som det vigtigste. Når et IP-nummer, der er knyttet til et domænenavn, skal findes, foretages et navneopslag. Navneopslaget indebærer, at der sendes en forespørgsel ud på netværkets navneservere. Svaret findes og returneres via resource records og zoner i hierarkiet. Navneopslag, resource records og zonehierarkiet uddybes i det følgende:

Navneopslag

Når man ønsker at se indholdet på et website, indtaster man websites adresse i adressefeltet i browseren og kort efter åbnes websitet. Inden dataoverførslen sker, og websitet vises hos brugeren, sker der en række handlinger relateret til DNS.

Når brugeren skriver web-adressen i browseren, rettes en forespørgsel fra brugerens computer til den nærmeste navneserver. Forespørgslen rettes af et lille program kaldet "resolver". Brugeren ser ikke dette program og får ikke at vide, at det afvikles. Forespørgslen indeholder det i adressefeltet indtastede domænenavn. Navneserveren foretager nu et opslag og returnerer svaret i form af IP-nummeret til brugeren.

Opslaget indebærer, at navneserveren lokaliserer det IP-nummer, der knytter sig til domænenav-net og returnerer dette til brugeren, hvorefter kommunikationen kan begynde mellem brugerens computer og den server, hvorpå websitet er placeret.

Navneopslaget kan give et indholdsløst resultat, såfremt der ikke på den adspurgte navneserver findes information om det tilhørende IP-nummer. Navneserveren vil herefter sende forespørgslen videre til en navneserver længere oppe i hierarkiet. Såfremt denne navneserver heller ikke finder resource record tilknyttet domænenavnet sendes forespørgslen videre i hierarkiet af navneservere, indtil resultatet er fundet. Resultatet returneres til brugeren. Denne metode kaldes for rekursiv DNS-forespørgsel.

Når et opslag foretages spiller den hierarkiske struktur en væsentlig rolle. Det er punktummerne i en web-adresse (Uniform Resource Locator = URL), der adskiller de forskellige ansvarsområder i DNS-hierarkiet. Et navneopslag foretages ved at læse web-adressen fra højre mod venstre. På den måde foretages en naturlig afgrænsning gennem hierarkiet. jur.ku.dk er web-adressen til Juridisk Fakultet på Københavns Universitet. Et navneopslag lokaliserer først, at der er tale om .dk. Herefter rettes forespørgslen til DK-hostmaster, der ved opslag i zonefilen kan sende forespørgslen videre til Københavns Universitets navneserver, der enten selv er i besiddelse af resource record, der kan returnere svaret til brugeren, eller sender forespørgslen videre til Juridisk Fakultet. Ved sidstnævnte situation er Københavns Universitet blot i besiddelse af zonefiler og ikke resource records. Derfor sendes forespørgslen videre, præcis som DK-hostmaster gør.

Resource records

En resource record (RR) er den fil på en navneserver, der indeholder alle oplysninger om et domænenavn. Den vigtigste oplysning er henvisningen til det IP-nummer, som domænenavnet knytter sig til. Når der således foretages navneopslag sker der i princippet ikke kun en henvisning til det pågældende IP-nummer, der knytter sig til domænenavnet, men til selve den RR som er knyttet til domænenavnet.

Normalt vil det være således, at selve RR overføres til et cachelager på brugerens maskine eller til den lokale  navneserver. For at undgå at informationen forældes, findes i RR en time_to_live oplysning, der angiver et tidspunkt i fremtiden, hvor RR oplysninger ikke bør anses for at være pålidelige.

En RR indeholder den væsentlige information, der sætter brugeren i stand til via navneopslag at finde den computer, vedkommende ønsker at kommunikere med. RR returneres til brugeren i forbindelse med navneopslag. Det er imidlertid ikke indlysende, hvordan resolveren finder frem til den relevante RR.

Zoner og zoneansvarlige

En zone-fil er en fil på en navneserver, der indeholder oplysninger om, hvor man kan finde RR til et givent domænenavn. En zone-fil er således ikke det samme som RR og indeholder ikke oplysninger om, hvilket IP-nummer der knytter sig til domænenavnet; det er blot en henvisning til den navneserver, hvor man kan finde RR'en.

En zoneansvarlig navneserver har ansvaret for en given zone. En zone er en mængde af RR som er placeret på en navneserver. Såfremt denne navneserver er ansvarlig for disse RR vil den være en "ansvarlig navneserver". Navneserveren er derfor angivet som SOA information i hvert domænenavns RR.

I relation til .dk er der en klar arbejdsdeling mellem DK-Hostmaster og alle navneserverne  i Danmark. Selve zone-filen oprettes og registreres hos DK-Hostmaster. Denne zone-fil kan kun oprettes såfremt, der for et givent domænenavn er angivet en række væsentlige oplysninger her-under mindst 2 funktionsdygtige navneservere, hvorpå RR skal findes. En zoneansvarlig kan være en juridisk eller fysisk person, der opfylder visse krav, som defineres af DK-Hostmaster. Opfyldes disse krav og indgår man i et kontraktforhold om driften af en ansvarlig navneserver, betegnes man af DK-Hostmaster som zonekontakt.

Selvom zone-filen oprettes hos DK-Hostmaster og lagres der, kan den sagtens findes hos flere zonekontakter. Dette skyldes, at zonekontakterne ved at kopiere zone-filer kan sende en fore-spørgsel direkte til den ansvarlige navneserver uden at skulle forbi DK-Hostmasters navneserver. Zone-filerne opdateres automatisk, og zonekontakten følger særlige krav. Disse krav findes i DK-Hostmasters retningslinier.

Derfor vil det være således, at en zone-fil oprettes og placeres hos hostmasteren under et givent TLD, og der indlægges en henvisning til den navneserver, der indeholder domænenavnets RR, der oftest er placeret hos en ISP.