Når en bruger siger “internettet virker ikke”, er DNS ofte den egentlige synder. I CCNA 200-301 v2.0 er DNS et selvstændigt emne: 4.4 Diagnose issues with DNS records (A, AAAA, CNAME, MX, NS, and PTR) to support host, web application, and mail server access by name. Her gennemgår vi de seks record-typer, hvordan et opslag foregår, og hvordan du fejlsøger fra både klient og Cisco-enhed.
Hvad gør DNS?
DNS (Domain Name System) oversætter navne som www.example.dk til IP-adresser og omvendt. Det er en hierarkisk, distribueret database:
- Root-servere kender serverne for topdomænerne (.dk, .com …).
- TLD-servere (fx for .dk) kender de autoritative navneservere for hvert domæne.
- Autoritative navneservere har selve recordsene for domænet.
- Rekursive resolvere (fx din internetudbyders, virksomhedens eller en offentlig resolver) laver arbejdet for klienten og cacher svarene.
DNS bruger UDP port 53 til almindelige opslag og TCP port 53 til store svar og zoneoverførsler.
De seks record-typer
| Type | Formål | Eksempel |
|---|---|---|
| A | Navn → IPv4-adresse | www.example.dk. A 192.0.2.10 |
| AAAA | Navn → IPv6-adresse | www.example.dk. AAAA 2001:db8::10 |
| CNAME | Alias: et navn peger på et andet navn | intranet.example.dk. CNAME web01.example.dk. |
| MX | Mailserver for domænet, med prioritet (lavest foretrækkes) | example.dk. MX 10 mail1.example.dk. |
| NS | Autoritative navneservere for domænet | example.dk. NS ns1.example.dk. |
| PTR | Omvendt opslag: IP → navn | 10.2.0.192.in-addr.arpa. PTR www.example.dk. |
Vigtige detaljer:
- Et CNAME må ikke stå på selve domænets rod (apex), fx
example.dk, og må ikke eksistere side om side med andre records for samme navn. - MX skal pege på et navn med A/AAAA-records, ikke på et CNAME og ikke direkte på en IP-adresse.
- PTR ligger i en særlig zone:
in-addr.arpafor IPv4 (oktetterne baglæns) ogip6.arpafor IPv6. Zonen styres typisk af den, der ejer IP-blokken, fx internetudbyderen. Mange mailservere tjekker PTR, før de modtager mail. - TTL (time to live) bestemmer, hvor længe et svar må caches. En ændring slår derfor først igennem, når TTL er udløbet.
Fejlsøgning fra klienten
Windows
ipconfig /all
nslookup www.example.dk
nslookup -type=MX example.dk
nslookup 192.0.2.10
ipconfig /flushdns
Linux og macOS
dig www.example.dk A
dig www.example.dk AAAA
dig example.dk MX
dig example.dk NS
dig -x 192.0.2.10
dig @192.0.2.53 www.example.dk
resolvectl status # Linux med systemd-resolved
Med dig @server spørger du en bestemt DNS-server direkte. Det er nyttigt, når du vil sammenligne svaret fra den autoritative server med svaret fra din resolver.
Typiske DNS-fejl og hvordan du genkender dem
| Symptom | Mulig årsag | Sådan tjekker du |
|---|---|---|
ping 192.0.2.10 virker, men ping www.example.dk gør ikke |
Klienten har forkert eller ingen DNS-server, eller recorden mangler | ipconfig /all, nslookup |
| Navnet slår op til en gammel adresse | Svaret er cachet og TTL er ikke udløbet, eller A-recorden er ikke opdateret | dig mod den autoritative server, tøm cachen |
| Hjemmesiden virker over IPv4, men ikke for nogle brugere | AAAA-recorden peger på en forkert eller utilgængelig IPv6-adresse | dig AAAA, test ping -6 |
| Mail til domænet kommer ikke frem | Manglende eller forkert MX, eller MX peger på et navn uden A-record | dig MX, derefter dig A på målet |
| Udgående mail afvises som spam | Manglende eller forkert PTR for mailserverens IP | dig -x <ip> |
| Hele domænet svarer ikke | NS-records peger på servere, der ikke svarer, eller fejl i delegeringen | dig NS, dig +trace |
| Et alias virker ikke | CNAME peger på et navn, der ikke findes | dig CNAME, følg kæden |
DNS på Cisco IOS
En Cisco-router kan både være DNS-klient og videresende opslag:
R1(config)# ip domain lookup
R1(config)# ip name-server 192.0.2.53
R1(config)# ip domain name example.dk
Nu kan routeren selv slå navne op, fx ping www.example.dk. ip domain name bruges også, når du genererer RSA-nøgler til SSH.
Routeren kan også fungere som simpel DNS-server/forwarder for klienterne:
R1(config)# ip dns server
R1(config)# ip host printer1.example.dk 192.168.10.50
Og den klassiske irritation i labbet: Skriver du en forkert kommando, prøver routeren at slå den op som et værtsnavn. Slå det fra i labs med:
R1(config)# no ip domain lookup
Brug kun no ip domain lookup i labs. I produktion vil du typisk gerne have, at routeren kan slå navne op.
DHCP og DNS hænger sammen
Klienter får normalt adressen på deres DNS-server via DHCP. Er DHCP-poolen sat forkert op, rammer det alle klienter på én gang:
R1(config)# ip dhcp pool KLIENTER
R1(dhcp-config)# dns-server 192.0.2.53 192.0.2.54
R1(dhcp-config)# domain-name example.dk
Se også Opsætte DHCP på Cisco router.
Et komplet opslag trin for trin
Sådan foregår et opslag på www.example.dk, når intet er cachet:
- Klienten spørger sin konfigurerede resolver (fx 192.0.2.53).
- Resolveren spørger en root-server, som henviser til .dk-serverne.
- Resolveren spørger en .dk-server, som henviser til de autoritative navneservere for example.dk (deres NS-records).
- Resolveren spørger den autoritative server, som svarer med A- eller AAAA-recorden.
- Resolveren cacher svaret i TTL-perioden og sender det til klienten, som også cacher det.
Kommandoen dig +trace www.example.dk viser netop denne kæde, og den er god til at finde ud af, hvor i kæden et opslag fejler.
Interne og eksterne navne
Mange virksomheder har både en intern DNS (fx på domænecontrollerne) og en ekstern DNS hos en udbyder. Peger klienterne på en ekstern resolver, kan de ikke slå interne navne op. Peger de omvendt kun på intern DNS, og den ikke kan videresende opslag, kan de ikke slå navne på internettet op. Tjek derfor altid, hvilken DNS-server klienten faktisk bruger, før du leder efter fejlen i selve recordsene.
Det skal du kunne til eksamen
- Kende A, AAAA, CNAME, MX, NS og PTR og vide, hvad hver især bruges til.
- Ud fra et symptom (navn virker ikke, mail kommer ikke frem, gammel adresse) kunne udpege den sandsynlige record-fejl.
- Bruge
nslookup/digog kende de grundlæggende IOS-kommandoer til DNS.
Relateret: IP adresse typer, PING forklaret og vores artikel om IPv6 grundlæggende.