DNS

I applikationsskiktet beskrivs alla nödvändiga funktioner som olika serverapplikationer kan använda sig av för att tillhandahålla tjänster åt sina klienter. När vi talar om nätverk har vi i åtanke OSI och TCP/IP kommunikationsmodellerna, även om de inte nämns explicit. Inom TCP/IP Applikationsskiktet specificeras alla nätverkstjänster som tillhandahålls i en server-klient nätverksmiljö, exempelvis domännamnssystemet (DNS).

Domain Name System (DNS)

DNS är en distribuerad databas implementerad i form av en hierarki av servrar, kända som Root Hint-servrar, Internet-servrar eller helt enkelt DNS-servrar. Det finns 13 logiska DNS-servrar (t.ex. a.root-servers.net, b.root-servers.net osv.) som representerar flera hundra fysiska DNS-servrar som är distribuerade över olika platser runt om i världen. Enkelt uttryckt är DNS-servrar som innehåller information om alla domäner som finns på internet. Internet DNS-servrar delegerar administreringen av lokala DNS-resurser till lokala DNS-servrar.

Bild 1: DNS hierarki

DNS servertyper

  • Auktoritativ server är en server som är ansvarig för en viss domän och innehåller den aktuella och officiella informationen om DNS-posterna för den domänen. Det inkluderar poster som A (IPv4-adress), AAAA (IPv6-adress) och CNAME (kanoniskt namn) för domänen. Denna typ av server ger auktoritativa svar för de domäner den hanterar.
  • Icke-auktoritativ DNS-server är en server som svarar på förfrågningar från användare men inte är ansvarig för den aktuella domänen i fråga. Den hämtar svar från andra DNS-servrar och lagrar svaren lokalt i sitt cache-minne för att snabbare kunna svara på framtida förfrågningar. En icke-auktoritativ server innehåller inte den officiella informationen om DNS-posterna för domänen; den agerar som en mellanhand som samlar in och ”cachar” DNS-information.
  • Rekursiv resolver (icke-auktoritativ) är en server som skickar en förfråga till en auktoritativ eller icke-auktoritativ server för att få en namnupplösning. Den kallas ”rekursiv” eftersom den utför alla steg för att besvara en fråga för ett givet namn och returnera det slutgiltiga resultatet. Å andra sidan är en auktoritativ DNS-server ansvarig för att innehålla den officiella och uppdaterade informationen för en eller flera domäner. Den svarar direkt på DNS-förfrågningar för de domäner den har auktoritet över.

Förutom dessa servertyper finns det två ytterligare servertyper vid implementationen av DNS:

  • En primär DNS-server som ansvarar för huvuddatabasen och kallas ibland även för en ”Master DNS-server”. Den primära (master) DNS-servern för en zon innehåller alltid en SOA-post eftersom den är ansvarig för att hantera och uppdatera zoninformationen.
  • En sekundär DNS-server som har ingen egen databas utan får en kopia av databasen från master-servern, och kallas därför även för en ”Slave DNS-server”. Även sekundära (slave) DNS-servrar kan ha en kopia av SOA-posten i sin databas för att hjälpa till med zonhanteringen och för att veta när de ska uppdatera sin information från primära DNS-servern.

Den administrativa enheten för DNS är inte en domän utan en zon. Skillnaden är att en domän är ett logiskt namnsystem medan en zon är en fysisk implementation av DNS-databasen på DNS-servrar, som innehåller alla namn och deras tillhörande IP-adresser.

DNS resursposter (records)

Det finns över femtio olika DNS-resursposter som ger olika funktioner till DNS-servrar, förutom att koppla samman namn med IP-adresser. En av dessa poster är SOA-record.

SOA-record (Start Of Authority) – SOA (Start of Authority) är en av de viktigaste posterna i en DNS-zon. Den finns vanligtvis i början av varje zonfil och innehåller grundläggande information om zonen. Här är en förklaring av vad SOA-posten innehåller:

  • Serial Number: Anger antalet konfigurationsändringar. Detta numeriska värde ökar med ett varje gång en ändring görs. Värdet kan formateras på olika sätt, men vanligtvis används en kodad datumformat som exempelvis 1999022301, där 1999 står för året, 02 för månaden, 23 för dagen och 01 för första versionen.
  • Refresh Time: Antal sekunder en DNS-server väntar på en ny uppdatering av DNS-zonerna från den primära DNS-servern. När en uppdatering mottas kontrolleras tiden och om den är högre än Refresh Time accepteras den nya uppdateringen, annars ignoreras den. Det rekommenderas att denna tid är 86 400 sekunder (24 timmar). Tiden bör vara mindre än eller lika med TTL men längre än Retry Time.
  • Retry Time: Antal sekunder en primär DNS-server väntar innan den gör ett nytt försök att uppdatera. Det rekommenderas att denna tid är 7 200 sekunder (2 timmar). Observera att denna tid är hälften av Refresh Time.
  • Expire Time: Antal sekunder en DNS-server behåller en DNS-zon som giltig. Det rekommenderas att denna tid är 3 600 000 sekunder (1 000 timmar).
  • Mimimun TTL: Minsta antal sekunder som DNS-posterna för en domän är giltiga. Det rekommenderas att denna tid är 172 800 sekunder (2 dagar).
  • TTL: Antal sekunder som ett domännamn lagras i cacheminnet innan det hämtas igen från den primära DNS-servern för att uppdateras. Det rekommenderas att denna tid är 43 200 sekunder (12 timmar).

Sekundära DNS-servrar begär DNS-uppdateringar från den primära DNS-servern med jämna mellanrum och då gäller timerinställningarna i SOA-filerna. Den sekundära DNS-servern väntar ett antal sekunder enligt Refresh Time innan den kontaktar den primära DNS-servern. Om kontakt inte kan upprättas försöker den sekundära DNS-servern igen enligt Retry Time. Om den primära DNS-servern inte är tillgänglig gäller Expire Time.