Vad är en DNS-resolver?
En DNS-resolver (även kallad rekursiv resolver eller rekursiv DNS-server) är en server som tar emot DNS-frågor från klientenheter och tar reda på IP-adressen för ett domännamn. Resolvern fungerar som mellanhand mellan klienterna och DNS-hierarkin och hanterar rekursion genom rotservrar, TLD-servrar och auktoritativa namnservrar.
Så fungerar DNS-resolvers
Upplösningsprocessen
När du skriver "example.com" i webbläsaren:
1. Client → Resolver: "What's the IP for example.com?"
2. Resolver checks cache
→ Cache hit: Return cached result
→ Cache miss: Begin recursion
3. Resolver → Root Server: "Where's .com?"
Root → Resolver: "Ask these .com nameservers"
4. Resolver → .com TLD: "Where's example.com?"
.com → Resolver: "Ask these nameservers"
5. Resolver → Authoritative NS: "What's example.com's IP?"
Auth NS → Resolver: "203.0.113.50"
6. Resolver → Client: "203.0.113.50"
(Also caches result based on TTL)
Rekursiva och iterativa frågor
Rekursiv fråga (klient → resolver):Client: "Give me the final answer for example.com"
Resolver: "Here's the IP: 203.0.113.50"
(Resolver does all the work)
Iterativ fråga (resolver → namnservrar):
Resolver: "What's example.com?"
Root: "I don't know, ask .com servers"
Resolver: "What's example.com?"
.com: "I don't know, ask ns1.example.com"
Resolver: "What's example.com?"
ns1: "203.0.113.50"
Typer av resolvers
Stub-resolver
Inbyggd i operativsystem och applikationer:
- Vidarebefordrar frågor till konfigurerade DNS-servrar
- Minimal logik
- Utför inte rekursion
Rekursiv resolver
Fullständiga servrar som utför hela DNS-upplösningen:
- Cachelagrar resultat
- Följer hänvisningar
- Implementerar säkerhetsfunktioner
Vidarebefordrande resolver
Vidarebefordrar frågor till en annan resolver i stället för att utföra rekursion:
- Vanligt i företagsnätverk
- Central policyhantering
- Färre externa frågor
Client → Corporate Resolver (forwarding) → ISP Resolver (recursive) → Internet
Populära offentliga resolvers
| Leverantör | IPv4 | IPv6 | Funktioner |
|---|---|---|---|
| Cloudflare | 1.1.1.1, 1.0.0.1 | 2606:4700:4700::1111 | Snabb, integritetsfokuserad, loggar inte |
| 8.8.8.8, 8.8.4.4 | 2001:4860:4860::8888 | Tillförlitlig, global anycast | |
| Quad9 | 9.9.9.9 | 2620:fe::fe | Säkerhetsfiltrering, blockerar hot |
| OpenDNS | 208.67.222.222 | 2620:119:35::35 | Innehållsfiltrering, nätfiskeskydd |
Byta resolver
Windows:Control Panel → Network → Adapter Settings
→ Properties → IPv4 → Use these DNS servers:
Preferred: 1.1.1.1
Alternate: 8.8.8.8
macOS:
System Preferences → Network → Advanced → DNS
→ Add: 1.1.1.1, 8.8.8.8
Linux (/etc/resolv.conf):
nameserver 1.1.1.1
nameserver 8.8.8.8
Resolverfunktioner
Cachelagring
Resolvers cachelagrar DNS-svar utifrån TTL:
First query: example.com
→ Full recursion (50ms)
→ Cached for 300s (TTL)
Subsequent queries: example.com
→ Cache hit (1ms)
→ Served until TTL expires
Cache-statistik visar ofta träffgrader över 80-90 %.
Negativ cachelagring
Resolvers cachelagrar även negativa svar (NXDOMAIN):
Query: nonexistent.example.com
Response: NXDOMAIN
Cached: Based on SOA minimum TTL
Det förhindrar upprepade frågor om domäner som inte finns.
Frågeminimering
Moderna resolvers minimerar informationsläckage:
Traditionellt:Query to .com: "What's www.blog.example.com?"
→ Exposes full subdomain structure
Frågeminimering (RFC 7816):
Query to .com: "What's example.com?"
Query to example.com NS: "What's blog.example.com?"
Query to blog.example.com NS: "What's www.blog.example.com?"
→ Reveals only necessary information at each level
DNSSEC-validering
Säkerhetsmedvetna resolvers validerar DNSSEC-signaturer:
Query: example.com (DNSSEC-signed)
→ Resolver validates signatures
→ Returns AD (Authentic Data) flag if valid
→ Returns SERVFAIL if signatures invalid
Resolverns säkerhetsfunktioner
DNS over HTTPS (DoH), krypterad DNS
Krypterar DNS-frågor över HTTPS:
Traditional DNS:
Client → Resolver (UDP port 53, plaintext)
DNS over HTTPS:
Client → Resolver (TCP port 443, encrypted)
Leverantörer: Cloudflare (https://cloudflare-dns.com/dns-query) och Google
DNS over TLS (DoT), krypterad transport
Krypterar DNS-frågor över TLS:
Client → Resolver (TCP port 853, encrypted)
Fördel: Internetleverantörer kan inte se eller ändra DNS-frågorna
Filtrering av skadlig kod och nätfiske
Vissa resolvers blockerar kända skadliga domäner:
Quad9 (9.9.9.9): Blockerar domäner som förknippas med skadlig kod och nätfiske Cloudflare for Families: Blockerar skadlig kod (1.1.1.2) eller skadlig kod och vuxeninnehåll (1.1.1.3)Hastighetsbegränsning
Skyddar mot DNS-förstärkningsattacker:
If source IP sends > threshold queries/second:
→ Temporarily rate limit or block
Kontrollera din aktuella resolver
Windows:ipconfig /all | findstr "DNS Servers"
macOS/Linux:
cat /etc/resolv.conf
Onlineverktyg: browserleaks.com/dns visar vilken resolver webbläsaren använder
Testa upplösningen:
dig example.com
# Look at "SERVER:" in output
Resolverprestanda
Latens spelar roll
Resolverns svarstid påverkar webbprestandan:
| Resolver | Genomsnittlig latens | Påverkan |
|---|---|---|
| Lokal ISP | 10-30ms | Snabb, men varierar |
| Cloudflare | 10-20ms | Konsekvent snabb (anycast) |
| 20-40ms | Tillförlitlig, global | |
| Långsam resolver | 100-200ms | Märkbar fördröjning vid sidladdning |
Anycast-routning
Stora resolvers använder anycast för låg latens:
1.1.1.1 anycast IP
→ Routed to nearest Cloudflare datacenter
→ New York query → New York datacenter
→ London query → London datacenter
→ Result: Global low-latency resolution
Mäta resolverprestanda
Med Namebench (automatiserad testning):# Tests multiple resolvers with your actual query patterns
namebench
Manuell testning:
# Test Cloudflare
time dig @1.1.1.1 example.com
# Test Google
time dig @8.8.8.8 example.com
# Test ISP (current)
time dig example.com
Vanliga resolverproblem
DNS-förgiftning
Angripare matar in falska poster i resolverns cache:
Åtgärder:- Använd resolvers med DNSSEC-validering
- Aktivera slumpmässiga källportar
- Använd DoH eller DoT för att förhindra man-in-the-middle-attacker
Kapad resolver
Internetleverantörer eller skadlig kod omdirigerar DNS-frågor:
Symtom: Sökningar visar ISP-annonser eller oväntade omdirigeringar Lösning:- Byt till en offentlig resolver (1.1.1.1, 8.8.8.8)
- Använd DoH eller DoT för att förhindra störningar från internetleverantören
- Kontrollera om det finns skadlig kod
Föråldrad cache
Resolverns cache innehåller föråldrade poster:
Symtom: DNS-ändringar syns inte Lösning:- Vänta tills TTL löper ut
- Använd tillfälligt en annan resolver
- Töm den lokala cachen
Blockerad resolver
Vissa nätverk blockerar externa resolvers:
Symtom: Det går inte att nå 8.8.8.8 eller 1.1.1.1 Lösning:- Använd DNS over HTTPS (svårare att blockera)
- Använd resolverns DoH-slutpunkt
Konfigurera en lokal resolver
Använda Unbound
# Install Unbound (Linux)
sudo apt install unbound
# Basic config (/etc/unbound/unbound.conf)
server:
interface: 127.0.0.1
do-ip4: yes
do-udp: yes
do-tcp: yes
# Enable DNSSEC
auto-trust-anchor-file: "/var/lib/unbound/root.key"
# Privacy (query minimization)
qname-minimisation: yes
# Start service
sudo systemctl start unbound
sudo systemctl enable unbound
Använda Pi-hole
Nätverksomfattande DNS-resolver med annonsblockering:
# Install Pi-hole
curl -sSL https://install.pi-hole.net | bash
# Configure devices to use Pi-hole as resolver
# Set router DHCP to provide Pi-hole IP as DNS
Bästa praxis
1. Använd välrenommerade offentliga resolvers: Cloudflare, Google eller Quad9 för tillförlitlighet
2. Aktivera DoH eller DoT: Kryptera frågor för integritet och säkerhet
3. Överväg resolverns funktioner: Välj utifrån behov av integritet, hastighet eller säkerhet
4. Övervaka resolverprestanda: Testa latensen regelbundet
5. Ha reservresolvers: Konfigurera sekundär DNS för redundans
6. Använd DNSSEC-validerande resolvers: Skydda mot cacheförgiftning
7. Förstå resolverns policyer: Vissa filtrerar innehåll och andra loggar frågor
8. Testa efter ändringar: Kontrollera att DNS-upplösningen fungerar korrekt
9. Dokumentera valet av resolver: Notera varför en viss resolver valdes
10. Uppdatera resolv.conf försiktigt: Felaktig konfiguration slår ut DNS helt
Resolver jämfört med auktoritativ namnserver
| Funktion | Resolver | Auktoritativ NS |
|---|---|---|
| Roll | Besvarar klientfrågor | Innehåller de faktiska DNS-posterna |
| Rekursion | Ja, frågar andra servrar | Nej, svarar bara för egna zoner |
| Cachelagring | Ja, cachelagrar svar | Nej (auktoritativa data) |
| Används av | Klienter och slutanvändare | Resolvers under rekursion |
| Exempel | 8.8.8.8, 1.1.1.1 | ns1.example.com |
DNS-resolvers är arbetshästarna i DNS-systemet. Att välja en snabb, säker resolver som respekterar integriteten påverkar i hög grad webbupplevelsen och säkerheten på nätet.