Hvordan virker DNS – deep dive
Har du læst min side om hvordan DNS(Domain Name System). virker generelt?
Hvis ikke så skynd dig at se den, så du har det helt grundlæggende på plads. Du finder det her
Men hvordan virker DNS – deep dive?
Ved at gå lidt dybere kan du lære hvordan DNS virker så det bliver IT made easy.
Hvor skal man starte for at finde ud af hvordan DNS virker?
Hvorfor ikke starte på det lokale netkort opsætning?
DNS Server oplysning på netkort
DNS server IP adressen på netkortet kan du finde med kommandoen ipconfig /all i din kommandoprompt/commandprompt.(Arbejder du i linux, kan du bruge ip a)
Denne IP adresse fortæller din computer hvilken DNS server der primært skal bruges for at kunne oversætte domæne navne til IP adresser. Typisk vil det være ip adressen på din router., hvis det er dit hjemmenetværk. Er det i en virksomhed, vil IP adressen typisk være til den lokale DNS eller Domain Controller. Læs mere om Domain Controller her
Holdt, routeren er da ikke en DNS server! Nej, men langt de fleste routeren har en DNS service som du kan sammenligne med en mini DNS server.
Denne service gør det blandet andet muligt at kontakte hinanden på det lokale netværk – LAN’et – ved blot at bruge navnet på enhederne i stedet for IP adresserne.
Den lokale DNS server/Service
Den lokale DNS Server eller DNS Service har 2 dele – Resolver og Authoritative server. Disse 2 dele ser vi ikke til dagligt, da DNS serveren håndterer det så fint for os, men lad os se lidt nærmere på disse 2 dele for at få en forståelse af hvordan DNS serveren virker, for hvordan virker DNS – deep dive?
Herunder har jeg forsøgt at illustrerer en DNS Server eller DNS Service, som har disse 2 dele.
De 2 dele – Resolver og Authoritative
Disse 2 dele har alle DNS Servere og DNS Services. Typisk vil vi kun kunne se den ene del.
Resolver
Resolver delen er en form for midlertidig lagerplads som vi kender det fra eks. ARP tabeller. Forestil dig at PC 1 vil have IP Adressen på www.krak.dk. Det første DNS serveren gør, er at undersøge om det har domænet i sin Authoritative del. Det har den tydeligvis ikke, så den spørger en mere overordnet DNS Server som enten kan være sat op som en DNS Forwarder eller en Root server.
Når denne forespørgsel kommer tilbage, vil den opdaterer resolver delen, som det kan ses herunder:
Nu vil IP adressen for krak.dk være opdateret i resolver delen, som er at sammenligne lidt med en meget lokal telefonbog.
Denne opdatering er baseret på at DNS serveren/Servicen har haft fat i en DNS server, der har autoritet til at administrer et domæne.
Resolver del på hver enkelt klient
Denne resolver del, som ligger i DNS, ligger også på hver enkelt enhed i en lidt mere simpel udgave.
Den kan du se indholdet, ved at åbne din kommandoprompt og indtaste kommandoen ipconfig /displaydns
Den del af det du får som resultat, kan du se i illustationen herunder.
Det fører os fint frem til den næste del – authoritative delen.
Authoritative del
Hvert domæne har en authorative server, som er den der så at sige bestemmer for domænet. I denne simple opsætning.
Denne del, indeholder DNS informationer fra tidligere for den del af netværket som DNS servereren er navneserver ansvarlig for.
For at se nærmere på illustrationen fra før, er der en tabel i den authoritative del som fortæller noget om navne og IP adresser, men KUN for det domæne navn som DNS serveren er ansvarlig for. Hvor domaine navn har en eller flere authoritative servere tilknyttet. Af illustrationenen herunder kan man se hvilken DNS Server der authoorativ for krak.dk:
Denne information er fundet fra dk-hostmaster.dk som er den overordnede myndighed, der håndterer alle domæner der slutter på .dk.
Ud af dette kan vi se at de authorative navneservere for krak.dk blandt andet er
ns.domainnetwork.se
Det betyder at for kunne finde ud a hvilken IP adresse der ligger bag ved www.krak.dk skal vi spørge DNS serveren ns.domainnetwork.se.
DNS i praksis
Det var en del teori, men hvordan får vi det omsat til noget vi kan forholde os til?
Vi vil igen tage udgangspunkt i tegningen fra før:
Lokalt DNS opslag
Det første der sker, når pc1 i illustrationen forsøger at slå navnet www.krak.dk op, er at den lokale DNS server/service kontrollerer om den er authorativ for krak.dk
Det er den ikke, så den vil dernæst se i resolver delen. Den del er lige nu tom.
Derfor vil den spørge enten det i fagsprog kalder en forwarder, som vi for nuværende ikke vil komme nærmere ind på, eller den vil spørge en root server.
For at vi kan følge med i hvad der sker i kommunikationenen med en af root serverne, må vi hente et hjælpeværktøj der hedder whois.
IANA (Internet Assigned Numbers Authorativ) der står for blandt andet fordeling af IP adresser og top-level domæner (TLD) har en sådan whois service.
Denne service operer på port 43.
Selve servicen og principperne for Whois kan du læse om her.
For at gøre brug af Whois vil vi hente en klient til dette formål. Hvis du bruger linux, er det indbygget. Windows klienten kan du hente her.
Jeg vil i de følgende bruge Whois klienten til windows. IANA har en whois service på adressen whois.iana.org som vi kan bruge.
Whois klient
For at vi kan følge med i hvad der sker, vil vi bruge whois klienten.
Start derfor med at åbne din kommandoprompt.
Herefter skriver du whois:
Som vi kan se, kræver den at vi angiver et domainname som et domænenavn. I dette tilfælde er det krak.dk. Derudover skal vi angive en whois server. Den whois server vi vil bruge til at starte med er whois.iana.org
De har en liste over alle TLD (Top-level domains) som forespørgslen skal sendes videre til.
For at få alle informationer omkring det pågældende domæne, skal vi tilføje parameteren -v, så vi skriver nu
whois -v krak.dk whois.iana.org
TLD refer
Som vi nu kan se, får vi en information hvor der i en af de første linjer står “refer”. Det betyder at vores root server henviser os videre til en anden whois server. I linjen lige under, kan vi se at den gør det fordi den hører til TLD DK.
En komplet liste over disse TLD kan du læse mere om på IANAS’ hjemmeside
Derfor skal vi nu tilpass vores whois til næste niveau.
TLD whois
Som vi fandt ud af, skal vi bruge whois.dk-hostmaster.dk. Derfor tilpasser vi nu vores whois kommando, så den nu hedder
whois -v krak.dk whois.dk-hostmaster.dk
Her kan vi se at den authorative nameserver står under Nameservers – Hostnames.
Nu kan vores DNS server sende forespørgslen om www.krak.dk til authorative DNS server som vi fandt i ovenstående billede.
Dette kan vi se ved at bruge værktøjet nslookup som du også kan gøre brug af fra kommandoprompten.
nslookup
skriv nu nslookup /? for at se hvordan du kan bruge det.
Som vi kan se, skal vi skrive nslookup domænevan DNSServer.
Derfor skriver vi:
nslookup www.krak.dk ns.domainnetworks.se
Nu får vi et svar med en adresse som er en IP adresse. Disse informationer om IP adresse og domain name www.krak.dk gemmes nu i vores lokale dns – i resolver delen.
Opsamling
Så det at vi får oversat et domænenavn til IP adresser i vores DNS server er slet ikke så simpelt som vi kunne tro.
Jeg håber dog at du har fået et bedre overblik over de værktøjer du selv kan bruge for at kunne forstå hvad der sker. Derfor er det IT made easy.