Domännamnssystemet

Domännamnssystemet eller DNS (från engelskan: Domain Name System) är ett system för att förenkla adressering av datorer på IP-nätverk som till exempel internet. Det kopplar ihop domännamn (av typen www.example.com) med IP-adresser (av typen 192.0.2.26), som används för den egentliga kommunikationen. Domännamnssystemet används också som en mer generell databas. DNS är en del av internets infrastruktur och går att likna vid en telefonkatalog som kopplar ihop ett telefonnummer med en person eller ett företag. IP-adressen är nödvändig för att dirigera trafiken på internet.

På ARPANET, internets föregångare, sköttes kopplingen mellan datornamn och IP-adresser med textfiler (HOSTS.TXT, jfr hosts) som innehöll listor på alla datorer man behövde kunna kommunicera med. Då nätet växte blev detta ohållbart. DNS uppfanns år 1983 av den amerikanske datavetaren Paul Mockapetris. DNS är ett distribuerat system, där så kallade zoner av IP-nummer delegeras till företag och organisationer, som alltså tar ansvar för sina egna (och eventuellt kunders) IP-adresser. DNS är ett klient–server-system där klienten vanligen finns inbyggd i system som kommunicerar genom IP-nätverk. Serverdelen utgörs av så kallade DNS-servrar, som också omnämns domännamnsservrar eller ibland mera slarvigt domänservrar. På internet finns tretton specifika så kallade rotservrar som berättar vilka DNS-servrar som ansvarar för en viss grupp adresser eller domännamn. I allmänhet sker förfrågningarna i flera steg.

Funktion 
Varje dator i ett IP-nätverk har en egen IP-adress i sifferform, och med hjälp av DNS kan man koppla en sådan adress till en adress i textformat. Så istället för att ange IP-adressen "217.21.237.35" i sin webbläsare när man vill komma till Stockholms stads webbplats kan man använda sig av domännamnet "www.stockholm.se" (enbart IP-adressen fungerar inte för alla webbplatser, då domännamnet också används som sådant i HTTP). Man kan alltså förenklat säga, att DNS "översätter" till och från sifferbaserade nätadresser, som är lämpliga när datorer och servrar kommunicerar med varandra, och textbaserade nätadresser, som är enklare att hantera för oss människor. DNS kan också göra bakuppslag där en IP-adress omvandlas till ett DNS-namn.

När en internetanvändare ska besöka en webbplats och skriver in  en webbadress, till exempel www.stockholm.se, skickar webbläsaren en förfrågan till användarens internetoperatörs DNS-server. Frågan går att översätta till "vilken IP-adress pekar detta domännamnet till?". Det är inte alltid internetoperatörens DNS-server vet svaret på frågan, men om den har svaret skickar den tillbaka rätt IP-adress så att internetanvändarens dator vet vart den ska ansluta för att kunna besöka webbsidan. Om internetoperatörens DNS-server däremot inte känner till vilken IP-adress www.stockholm.se pekar på så går frågan vidare. För att veta vart DNS-servern ska skicka frågan kontaktar den någon av internets rotservrar (se nedan), som det finns 13 uppsättningar av runt om i världen. Rotservrarna har kännedom om samtliga toppdomäner, till exempel .se, som i sin tur pekar vidare till den namnserver som hanterar domännamnet ifråga (förfrågningarna görs ofta i flera steg, då DNS-servern på varje nivå kan hänvisa till en server med ett mer specifikt ansvarsområde). Internetanvändarens dator får till slut den korrekta IP-adressen som svar på den förfrågan som ursprungligen ställdes. Internetoperatörens DNS-server sparar domännamnets IP-adress med tanke på om en annan abonnent inom kort skulle ställa samma fråga, som då kan besvaras snabbare. Även internetanvändarens egen dator sparar IP-adressen så att den inte behöver ställa samma fråga vid varje återbesök.

DNS använder sig av både TCP och UDP på port 53 för att besvara DNS-frågor. Nästan alla DNS-frågor består av en UDP-förfrågan från klienten och ett UDP-svar från servern. TCP används bland annat när datamängden överstiger 512 byte, exempelvis vid zonöverföringar.

DNS är inte bundet till internet utan kan också användas i andra IP-nätverk.

DNS begränsar sig inte till funktionen att koppla ihop domännamn och IP-adresser. Många andra typer av resurser används allmänt, till exempel MX-posterna, som anger vilken e-postserver som betjänar e-postadresserna för en viss domän. DNS kan också användas som en databas för mer eller mindre godtyckligt data.

Fram till år 2003 fungerade DNS bara med bokstäverna a till z, siffrorna 0 till 9 och bindestreck (och punkt som avskiljare mellan nivåer), men numera går det att använda många andra tecken i domännamnen. Exakt vilka som får användas bestämmer varje toppdomän. Fortfarande finns denna begränsning kvar på låg nivå, men klientprogramvara omkodar andra tecken till dessa med punycode. Domännamn som använder sådana andra tecken kallas IDN ("Internationalized Domain Name").

DNS-systemet anses vara driftsäkert då det bygger på distribuerade nätverk. I stället för att hela internet förlitar sig på en gemensam databas finns DNS-informationen utspridd över världens DNS-servrar. Att ta ner internets DNS-rotservrar skulle kunna orsaka avbrott på internet, eftersom det då inte skulle gå att hitta IP-adresserna. Sådana försök har skett, bland annat år 2016 när DNS-leverantören Dyns servrar utsattes för överbelastningsattacker. Dyn är ansvarig för infrastrukturen för populära tjänster som Twitter, Paypal, Reddit och Spotify vilket medförde att attackerna orsakade störningar för många av tjänsternas användare.

Rotserver 
DNS-servrar, domännamnsserver, på internet. För att en DNS-server på internet ska ha någonting att utgå ifrån när den får en fråga rörande en zon den inte vet något om, finns det 13 delegerade så kallade rotservrar världen över, varav en, i.root-servers.net, opereras av svenska Netnod. Bakom de 13 namngivna root-servrarna finns hundratals maskiner som ser till att det finns kapacitet nog att hantera den trafik som kommer till root. Samtliga toppdomäner delegeras från root-servrarna. En toppdomän är den del som avslutar domännamnet, exempelvis .org, .se eller .eu.

Dynamisk DNS 
Eftersom de flesta internetleverantörer ("ISP") tilldelar IP-adresser dynamiskt till sina kunder istället för att tilldela dem ett fast nummer, så har det tidigare varit svårt för de flesta internetanvändare att koppla ett eget domännamn till en egen dator. Detta har lösts genom så kallade dynamiska DNS-servrar. Dessa servrar kan, med hjälp av ett litet program som installeras på datorn, dynamiskt uppdateras så ofta som det behövs med den IP-adress som gäller vid varje tillfälle. Därmed kan man nå datorn på basen av ett fast domännamn. Servrarna upprätthålls ofta av tredje part, varvid en förfrågan enligt IP-adress ("reverse DNS") inte ger det domännamn kunden önskar. Att sambandet mellan IP-adress och domännamn är inkonsekvent på detta sätt (vilket inte är helt ovanligt heller i webbhotell) kan göra att servern betraktas som opålitlig.

Vanliga posttyper i DNS 
I DNS finns ett antal olika typer av poster specificerade. De vanligaste av dessa är:

 A, Host address – kopplar namn till IP-adress i IPv4
 AAAA, Host address – kopplar namn till IP-adress i IPv6
 CNAME, Canonical name for an alias – hanterar alias
 MX, Mail exchange – specificerar vilka servrar som hanterar e-post åt en viss domän
 NS, Authoritative name server – specificerar den DNS-server som är ansvarig för zonen
 PTR, Domain name pointer – en variant av CNAME, används främst för att koppla en IP-adress till ett namn ("reverse lookup")
 SOA, Start of authority – markerar starten på en ny zon
 SRV, Service records – variant av MX, men som kan användas för godtyckliga tjänster (t.ex. XMPP)
 TXT, Text strings – används för kommentarer och numera även till exempelvis publicering av Sender Policy Framework

Dessa posttyper (kallade RR, Resource Record) finns specificerade i diverse RFC:er, och registrerade av IANA.

DNSSEC 
Domain Name System Security Extensions, är en utvidgning av DNS-systemet som syftar till att öka säkerheten i DNS. Detta säkerhetstillägg har utvecklats med målet att förhindra missbruk där man lurar DNS-systemet med falsk information genom så kallad cacheförgiftning. DNSSEC använder sig av kryptografiska signaturer för att säkerställa att DNS-svaret kommer från rätt källa och att data inte har manipulerats under överföringen.

Specifikation 
Standarden för DNS specificeras ursprungligen i RFC 882. År 1987 uppdaterades DNS i och med publiceringen av RFC 1034 och RFC 1035. Flera ytterligare RFC:er har publicerats som specificerar olika utökningar till grundprotokollet.

Källor

Externa länkar 

 En genomgång av DNS på svenska
 Grunder i DNS: PTR-poster, och varför de är viktiga
 ISC: Bind 
 NLNet: nsd 

Applikationsskiktsprotokoll
Internet