Domännamnets grunder

Av Jonas Wahlund (jonas.w@nmugroup.com)
Bloggserie - Del 1: Vad är ett domännamn?

Välkommen till den första delen i en serie om domännamnets grunder. Tanken är att serien skall kunna vara en hjälp för dig som på något sätt kommer i kontakt med domännamn i ditt arbete, oavsett om du arbetar med IT, marknadsföring eller juridik. Hör gärna av dig med frågor eller kommentarer.


Varför domännamn?

Internets grundläggande infrastruktur är uppbyggd för att skyffla data mellan datorer med IP-nummer som adresser för avsändare och mottagare. Varje ansluten enhet, till exempel en webbserver där en hemsida finns lagrad, tilldelas ett unikt IP-nummer.

Till en början - när antalet anslutna maskiner var få - var det inte svårt att hålla reda på de olika IP-numren man var i behov av att ansluta till. Efterhand som nätverket växte och fler datorer anslöt sig, blev det också fler och fler IP-nummer att hålla koll på. De allra flesta av oss är inte utrustade med fotografiskt minne och nummerserier, såsom ett IP-nummer, är därför inte särskilt lätta att komma ihåg. En TV-reklam som hänvisar till en hemsida på http://132.243.192.102 hade nog inte gett så många besök. Det är mycket lättare att komma ihåg ord, gärna sådana som också knyter an till den information du letar efter. Lösningen på detta problem var domännamnssystemet (DNS). Eftersom internet var konstruerat för att adressera trafik till med hjälp av IP-nummer, behövdes det då ett kompletterande system där domännamn kunde slås upp och tillhörande IP-nummer läsas ut. Med andra ord mycket likt en gammal hederlig telefonkatalog.

Utöver det faktum att det är lättare att komma ihåg domännamn än IP-nummer, bidrog också domännamnet med lösning på problem som kan uppstå vid byte av IP-nummer. Om man flyttar på en dator till en plats där det ursprungliga IP-numret inte kan behållas, måste man kommunicera det nya IP-numret till berörda användare. Vidare kan det finnas behov att strukturera om användningen av IP-nummer inom en serie av ett IP-nummer, exempelvis inom ett universitet, och då uppstår samma behov av att sprida datorns nya nummer. Med ett domännamn på plats, kan man istället uppdatera tillhörande IP-nummer på ett ställe i domännamnskatalogen. Alla som slår upp domännamnet efter ändringen kommer automatiskt att få veta det nya numret.

Den nya domännamnskatalogen administrerades centralt i form av en fil vid namn HOSTS.TXT. Om man ville använda ett domännamn, kontaktade man administratören för domännamnskatalogen som beslutade om tilldelning. Samma förfaringssätt om man ville ändra något. Den som ville göra uppslag i katalogen, fick ladda ned en kopia och för att vara säker på att man hade de senaste ändringarna med, fick man med jämna mellanrum ladda ned den senaste versionen. I början när antalet användare och anslutna datorer var få, fungerade lösningen med en central databas tillfredsställande. När antalet datorer på nätverket - och därmed antalet användare - ökade, började däremot problem uppstå. Ju fler användare desto större efterfrågan på domännamn. Fler domännamn innebär fler ändringar. Fler ändringar innebar naturligtvis i sin tur ökad belastning för databasadministratören men samtidigt ökade också sannolikheten att en användare lokalt satt med en gammal version av databasen och nya versioner efterfrågades därför allt oftare. Om domännamnskatalogen dessutom av någon anledning inte gick att nå, dröjde uppdateringar och nya versioner. Det blev efterhand uppenbart att en central domännamnskatalog inte var en lösning som skulle kunna växa i takt med internet och man satte sig ned för att hitta en ny. Efter en del arbete kom man fram till att en distribuerad databas var att föredra framför en central. I en distribuerad databas kan ansvar för en eller flera underliggande nivåer delegeras. Dagens domännamnssystem (DNS) föddes.


Domännamnets delar

Högst i hierarkin i DNS, återfinns roten. De underliggande nivåerna förgrenar sig sedan därunder i ett rotsystem som kan se ut på följande vis.



Hur är då ett domännamn uppbyggt? Normalt läser vi domännamnet från den lägsta nivån (vänster) till den högsta (höger). Om vi i bilden ovan börjar längst ned till vänster vid nivå 4 och sedan följer vänsterkanten uppåt, skulle det bli www.se.exempel1.com. Det betyder att com är högst, därefter exempel1, sedan se och sist www. Den högsta nivån är egentligen roten, men det skrivs oftast inte ut i andra fall än då man är i behov av att använda exakt adressering med ett så kallat absolut domännamn (en vanlig term är FQDN som står för Fully Quallified Domain Name). Övriga nivåer har en benämning (www, se, exempel1 och com) men roten saknar sådan. Däremot används som vanligt en punkt som avgränsare mellan toppdomän och rot och ett absolut domännamn avslutas därför med en punkt. Den sista punkten kan vanligtvis utelämnas, exempelvis om du skall ge dig ut och surfa och skriver in en adress i webbläsaren, men det går minst lika bra att ta med den avslutande punkten, exempelvis "http://www.google.com.".

Ett domännamn är formellt namnet på en nivå, relativt en annan, exempelvis www.se.exempel1 eller se.exempel1. Vanligtvis brukar domännamn anges relativt roten, vilket då blir www.se.exempel1.com. I de flesta fall, används begreppet domännamn endast för domännamn på nivå 2. På nivå 1, är den vanliga benämningen toppdomän eller TLD (efter engelskans Top Level Domain). Det finns tillfällen då gränserna för begreppen suddas ut något. Många toppdomäner erbjuder registreringar dels i andra nivån, men även i den tredje. Så är exempelvis fallet för Japan där man kan registrera domännamn både under .jp och .co.jp, båda vilka ofta benämns toppdomäner. I bilden ovan skulle därför både exempel1.jp och exempel2.co.jp kallas domännamn samt .jp och .co.jp toppdomäner. I dagligt tal, brukar domännamn användas på den högsta nivån som registreras av en privatperson eller ett företag, oavsett om det är på andra eller tredje nivån. Ett sätt att se på det, är att domännamn kallas den del som registerhålls och för vilken ägaren betalar förnyelseavgifter till sin leverantör.

DNS kan hantera upp till 127 nivåer och namnet på varje nivå kan bestå av upp till 63 tecken.

Precis som IP-nummer måste domännamn vara unika för att undvika förvirring.

Domännamn som delar samma föräldranivå och befinner sig på samma nivå måste vara unika. Det kan alltså inte finnas två exempel1.com, men däremot kan exempel1.com samexistera med exempel1.jp. Likaså går det bra med exempel1.exempel1.com eller www.www.exempel1.com.

I DNS gäller att den som har kontroll över en nivå i DNS, också har också kontroll över samtliga underliggande nivåer. Det betyder alltså att den som har kontroll över exempel1.com också har kontroll över att lägga till och ta bort nivåer därunder. I bilden ovan finns se och jp som två olika undernivåer, men administratören för www.exempel1.com skulle alltså exempelvis kunna byta ut jp mot no. Information om de olika domännamnen återfinns i så kallade namnservrar som innehåller information om de olika delarna av den distribuerade databasen som nämndes ovan. Rent teoretiskt, skulle en uppsättning namnservrar kunna innehålla information om alla domännamn som används, det vill säga allt från se.exempel1.com till ftp.exempel2.se. Som jag har nämnt tidigare, är det dock inte särskilt praktiskt om all information skall hanteras i en och samma databas. Genom att delegera ansvar för underliggande nivåer, kan en namnserveradministratör minska belastningen och låta andra administratörer ta hand om sina delar.

Domännamnssystemets mest grundläggande uppgift, är att omvandla domännamn till IP-nummer och tvärtom. Men hur hittar man då till den namnserver som innehåller just den information som för tillfället efterfrågas? Om vi återanvänder exemplet www.se.exempel1.com, så skall vi titta närmare på vad som händer i DNS om du skriver in domännamnet i din webbläsare. Din dator vill hitta en IP-nummer till webbservern som innehåller själva hemsidan för www.se.exempel1.com. Vanligtvis används en programvara i ditt operativsystem, så kallad resolver, för att göra sökningarna i DNS-systemet (för många hemanvändare används sedan internetleverantörens namnservrar som fortsatt resolver). Först tittar resolvern om den har gjort uppslagningen tidigare och därför har resultatet sparat (mer om den delen i senare delar av artikelserien, vi utgår ifrån att inga resultat finns sparade). När resultatet inte finns sparat, börjar resolvern med att fråga de namnservrar som den kan adresserna (IP-numren) till, nämligen rotservrarna. Med jämna mellanrum hämtas nämligen adresserna till rotservrarna av resolvern, från en given källa.

Rotservrarna svarar i sin tur att de inte vet vilka namnservrar som har information www.se.exempel1.com, men att de däremot känner till vilka namnservrar som har information om domännamn under com (en nivå ned). Som nämnts tidigare, kan rotservrarna teoretiskt hantera information om alla domännamn som används, men gör inte så av praktiska skäl. När resolvern vet vilka namnservrar som innehåller information om com-domännamn, ställer den en fråga till en av de servrarna. Resolvern får då till svar att namnservern inte hanterar information om just www.se.exempel1.com, men däremot om exempel1.com (en nivå ned). Även här har alltså ansvaret delegerats till andra namnservrar. Resolvern frågar sedan en av namnservrarna till vilka exempel1.com är delegerat och får till svar att IP-numret för www.se.exempel1.com är 74.125.232.127. Resolvern är nöjd med resultatet och meddelar sedan webbläsaren som då kan be webbservern på 74.125.232.127 om hemsidan för www.se.exempel1.com som den gärna visar. Värt att notera, är att även se.exempel1.com skulle kunna vara delegerat till ytterligare en uppsättning namnservrar som har information om allt därunder, (inklusive www.se.exempel1.com).

Den del av domännamnssystemet som en namnserver håller information om, kallas zon. En gren (med alla undernivåer) av domännamnssystemet kallas domän, oberoende av hur olika delar har delegerats till olika namnservrar. En domän och zon kan vara samma sak, men behöver inte vara det.

I nästa del kommer vi titta närmare på olika toppdomäner och hur styrningen av internet är organiserad ur ett domännamnsperspektiv.





Källor:
Liu, C. and P. Albitz (2006). DNS and BIND, O'Reilly Media Inc.