NÄTVERKSPROTOKOLL Föreläsning 6 - 24.9.2010 INNEHÅLL - Applikationsskiktet - DNS (Domain Name System)
Applikationsskiktet Utgör det slutliga gränssnittet mot användaren Fungerar i princip som en virutell nätverksterminal Beskriver funktioner för hantering av applikationsprogram, t.ex: e-post web klienter och web servrar Har som uppgift att erbjuda tjänster för ett applikationsprogram att effektivt kunna kommunicera med ett annat applikationsprogram Applikationsskiktet är inte själva nätverksapplikationen
Applikationsskiktet Kan istället betraktas som en servicenivå som erbjuder följande tjänster: Försäkrar att den andra parten är identifierad och kan nås Om krävs, autentiserar antingen avsändaren av ett meddelande eller mottagaren eller både och Försäkrar att kommunikationsresurser finns tillgängliga (t.ex. finns det ett Ethernet-kort i avsändardatorn) Försäkrar överenskommelse på bägge sidor om bl.a. dataintegritet och “priacy” Bestämmer protokoll- och datasyntaxregler på applikationsnivå Exempel på protokoll som jobbar på applikationsnivå: DNS, DHCP, FTP, HTTP, IMAP, SMTP,IRC, SOAP, SSL, m.m
DNS (Domain Name System) Är ett system för att förenkla adressering av datorer på IP-nätverk Är ett distribuerat system där s.k. zoner av IP-nummer delegeras till ansvariga företag och organisationer Är ett klient-server system där klienten vanligen finns inbyggd i system som kommunicerar genom IP-nätverk
DNS - Funktion Kopplar ihop en IP-adress med en adress i textformat Det är m.a.o. tack vare DNS vi kan surfa på Arcadas web-sida genom att ange domännamnet www.arcada.fi i browsern i stället för att ange IP-adressen 193.167.33.228 Man kan förenklat säga att DNS uppgift är att översätta en sifferbaserad IP-adress till ett domännamn och tvärtom Använder sig av både TCP och UDP på port 53 för att kommunicera med klienter och besvara ”DNS-frågor” UDP används mest, TCP används ibland t.ex. om datamängden överstiger 512 byte
DNS - Domännamnstruktur DNS kan även betraktas som en distribuerad databas över datorer som tar del av ett nätverk DNS databas- eller domännamnsstrukturen ser ut som ett upp och ned vänt träd med roten på toppen Varje nod i trädet representerar: En del av hela databasen En DNS domän Varje DNS domän har ett domännamn som identifierar domänens position i databasen Inom DNS är ett fullständigt domännamn en sekvens av “taggar” börjandes från domänen ända fram till roten där taggarna separeras med “.” t.ex. www.arcada.fi
DNS - Domännamnstruktur Varje domän kan administreras av en skild organisation Varje organisation kan indela sin domän i ett flertal underdomäner Varje domän kan förutom en subdomän förstås också ha värdar (“hosts”) Varje värd på ett nätverk har ett domännamn som innehåller information om värden, precis på samma sätt som en IP-adress. Ett domännamn kan även ha ett alias, dvs flera domännamn för samma IP-adress (t.ex. www.arcada.fi och carlton.arcada.fi)
DNS - Domännamnstruktur Det är fritt fram för organisationer som upprätthåller domäner att välja sina namn under egen domän Det kan t.ex. förekomma två datorer i internet som heter myhost om de sitter i olika domäner eftersom de adresseras från olika föräldradomäner Högst upp i domänstruktur-trädet finns roten (root) ”.” Under roten finns sedan ett antal ”top-level” domäner Roten och ”top-level” domänerna administreras av en central namnregistreringsauktoritet (bl.a. ICANN (Internet Corporation of Assigned Names and Numbers)
DNS - ”top-level” domäner Det finns tre olika typer av ”top-level” domäner: Organisationella en kod med 3 tecken som indikerar funkionen av organisationen Används främst inom USA Exempel: gov, mil, edu, org, com, net Geografiska en kod med 2 tecken som indikerar land eller region exempel: us, fi, se, de Reverse domäner en speciell domän (in-addr.arpa) som används för IP adress-till- namn mappning
DNS - Organisationella ”top-level” domäner Det finns bl.a. följande organisationella ”top-level” domäner: com = kommerciella organisationer edu = utbildande organisationer gov = parlamentariska institutioner int = internationella organisationer mil = amerikanska militära organisationer net = nätverksorganisationer org = organisationer som ej strävar efter ekonomsik vinst
DNS - Servrar DNS upprätthålls som tidigare nämnts av ett distribuerat databassystem som använder klient-server modellen De noder som upprätthåller databaserna kallas för DNS servrar eller namnservrar Varje domän eller subdomän har en eller flera DNS servrar som publicerar information om domänen och om varje underdomän Roten i hiearkin upprätthålls av root DNS servrar Finns för tillfället 13 root DNS servrar i världen, se nästa sida:
DNS - Root servrar
DNS servertyper Finns två olika typer av namnserver Primära Sekundära En primär namnserver är den server som har huvudinformationen för domänen, m.a.o. den är ansvarig för att teknisk information om domännamnet är korrekt Syftet med en sekundär DNS server är att fungera som backup ifall den primära servern krashar och den upprätthåller en kopia av den primära DNS serverns databas Måste finnas minst två DNS servrar per Zon: en primär och en sekundär
DNS resolver Den del i t.ex. egen PC som sköter om att fråga en namnserver efter DNS-uppgiter Man måste i operativsystemet konfigurera vilken DNS server som DNS resolvern skall ta kontakt med vid en sökning Detta kan konfigureras manuellt eller automatiskt (DHCP eller autoconfiguration) I t.ex. Linux kan man konfigurera tre olika DNS servrar medan man i Windows vanligen konfigurerar en ”prefferred” och en ”alternate”
DNS sökning - Forward lookups Anta att du sitter vid en dator i ett av Arcadas ADB-klassrum Du slår in adrssen www.openvpn.org i din browser Browsern skickar då, via datorns DNS resolver, en DNS förfrågan till den första DNS servern som konfigurerats för resolvern (I detta fall Arcadas primära DNS server 193.167.33.232) och begär IP- adressen för www.openvpn.org Arcadas DNS börjar med att kolla om IP adressen för www.openvpn.org finns i serverns lokala cache för tidigare DNS förfrågningar. Om så är fallet skickar den svaret till din dator. Om inte går DNS sökningen vidare till nästa steg
DNS sökning - Forward lookups Arcadas DNS server kontrollerar i sin databas alla domäner som den är ansvarig för och ser om det finns en IP adress som matcher www.openvpn.org. Om servern hittar en matchande IP adress skickar den svaret tillbaka till resolvern i din PC dator. Om inte går DNS sökningen vidare till nästa steg. Arcadas DNS server skickar förfrågan vidare till en av root DNS servrarna (i detta fall troligtvis till den rootserver som finns stationerad i Sverige). Root servern söker i sin databas efter information om underdomänen openvpn under topdomänen org vilken den hittar. Den skickar ett s.k ”NS record” tillbaka till Arcadas DNS server innehållande info om bl.a. IP adressen för den primära och sekundäre DNS servern i domänen openvpn.org
DNS sökning - Forward lookups Nu när Arcadas DNS vet vilkenn DNS server som har hand om domänen openvpn.org kan den skicka samma förfrågan dit När den primära DNS servern (eller sekundära) i domänen openvpn.org tagit emot förfrågan gör den en sökning i sin databas efter IP-adressen för www.openvpn.org, vilken den hittar och skickar då en ”NS record” tillbaka till Arcadas DNS server innehållande bl.a. IP-adressen för www.openvpn.org När Arcadas DNS server tagit emot denna information sparar den informationen i sin cash och skickar sedan till slut informationen vidare till din dator
DNS sökning - Forward lookups Observera att i framtiden när vilken som helst dator i Arcadas domän gör en förfrågan på samma adress går sökningen mycket smidigare eftersom svaret finns i Arcadas DNS cash.
Forwarding DNS En DNS server kan även konfigurereras att skicka en DNS förfrågan vidare till en annan DNS server Detta görs främst för att minska belastningen på en DNS server Vi kan t.ex i en underdomän av arcada.fi sätta upp en egen DNS server som upprätthåller information underdomänen och alla andra förfrågningar skickas vidare till Arcadas DNS Om vi då från en dator kopplad till vår underdomän skulle göra en DNS förfrågan för www.openvpn.org så skulle inte DNS servern för underdomänen ta kontakt med en root server utan förfrågan skulle skickas vidare till Arcadas DNS som sen i sin tur sköter skickar förfrågan vidare till en root DNS
DNS sökning - Reverse lookups Syftet med en Reverse sökning är att få fram domännamnet för en IP-adress För att få Reverse DNS att fungera har utvecklarna skapat en special domän som kallas ”in-addr.arpa” dit alla IP adresser hör Vid forward lookups är finns ju namnet för toppdomänen längst till höger När det gäller en IP-adress och reverse lookup är fallet precis tvärtom eftersom det är adressen för själva värden som betäcknas längst till höger
DNS sökning - Reverse lookups För att få en Reverse sökning att fungera på samma sätt som Forward sökning har man beslutat att invertera ordningen i en IP- adress när man gör en reverse sökning Dvs. om man vill söka fram domännamnet för IP-adressen 193.167.32.15 ser själva reverse förfrågan ut så här: ”15.21.167.193.in-addr.arpa” För reverse mapping skall fungera måste varje DNS server upprätthålla två databaser: En för forward En för reverse
DNS ”records” Används i DNS servrar för att ge olika typer av information om en viss domän Vanliga typer av ”records” är bl.a: A = address record - används för att mappa ett värdnamn med en IPv4-adress AAAA = IPv6 address record - används för att mappa en ”hostname” med en IPv6-adress CNAME = Används för att skapa en alias av ett värdnamn som redan finns NS = Name server record - Delegerar en primär namnserver i en underdomän PTR = Används för reverse DNS
Konfiguering av DNS servrar Exempel på konfigurering av en Linux baserad DNS server: http://www.zytrax.com/books/dns/ch6/#master