# OPNsense Unbound DNS: High-Performance Resolving & Privacy
TL;DR / Management Summary Der Unbound DNS Resolver ist der Standard-Namensdienst in OPNsense. Im Gegensatz zu einfachen Forwardern löst er Anfragen selbstständig von der Wurzel (Root) an auf oder leitet sie verschlüsselt via DNS-over-TLS (DoT) an vertrauenswürdige Server weiter. Ein Senior Admin optimiert Unbound durch gezieltes Caching (Prefetching) und schützt das Netzwerk durch DNS-Blocklisten (Unbound DNSBL), um Werbung und Malware bereits auf Protokollebene zu blockieren.
# 1. Einführung & Architektur
Der iterative Resolver.
Unbound ist ein validierender, rekursiver Caching-DNS-Resolver.
- Rekursiv: Fragt direkt die Root-Server, dann die TLD-Server (.de), dann die Name-Server der Domain.
- Caching: Speichert Antworten lokal im RAM, um Folgeanfragen in < 1ms zu beantworten.
- Security: Unterstützt DNSSEC (kryptografische Signatur-Prüfung).
# 2. Einrichtung in der Praxis
Performance-Tuning.
Services -> Unbound DNS -> Settings.
# 1. Caching optimieren
- Message Cache Size: Auf 128MB oder mehr erhöhen (bei viel RAM).
- Prefetch: Aktivieren. Unbound aktualisiert beliebte Einträge kurz vor Ablauf der TTL automatisch.
- Prefetch Key: Aktivieren (für DNSSEC).
# 2. DNS-over-TLS (DoT) für Privatsphäre
Vermeiden Sie unverschlüsselte DNS-Anfragen, die der ISP mitlesen kann.
Services -> Unbound DNS -> DNS over TLS.- Add Server:
1.1.1.1, Port853, CN:cloudflare-dns.com. - Add Server:
9.9.9.9, Port853, CN:dns.quad9.net.
# 3. Deep Dive: DNS-Blocklisten (DNSBL)
Werbung und Viren am Eingang stoppen.
OPNsense integriert eine mächtige Blacklist-Funktion direkt in Unbound.
Services -> Unbound DNS -> Blacklist.
- Enable: Aktivieren.
- Type of List: Wählen Sie Listen wie
StevenBlackoderMalwaredomains. - Aktion: Unbound gibt für blockierte Domains die IP
0.0.0.0zurück. Der Browser des Users kann die Seite gar nicht erst laden.
# 4. Day-2 Operations: Local Overrides
Interne Namen ohne AD.
Wenn Sie Dienste in Proxmox haben (z.B. proxmox.meinefirma.local), die keinen eigenen DNS-Server haben:
- Host Overrides:
Services -> Unbound DNS -> Overrides. - Aktion: Mappen Sie
Hostname+Domainfest auf eineIP.
# 5. Troubleshooting & “War Stories”
Wenn die Namen verwirren.
# Top 3 Fehlerbilder
-
Symptom: DNS-Auflösung geht gar nicht.
- Ursache: Unbound wartet auf DNSSEC-Validierung, aber die Systemzeit (NTP) der OPNsense ist falsch.
- Lösung: Uhrzeit manuell setzen oder DNSSEC temporär deaktivieren.
-
Symptom: “NXDOMAIN” für interne Server.
- Ursache: Domain-Suffix Mismatch oder Search-Domain nicht via DHCP verteilt.
- Lösung: DHCP-Option 15 (Domain Name) prüfen.
-
Symptom: Hohe CPU-Last durch Unbound.
- Ursache: Zu viele riesige Blocklisten geladen (z.B. Millionen Einträge).
- Lösung: Listen auf das Nötigste reduzieren.
# “War Story”: Der “DNS-Loop” des Grauens
Ein Admin konfiguriert OPNsense so, dass sie Anfragen an einen internen Windows-DC weiterleitet. Der Windows-DC wiederum hatte die OPNsense als Forwarder eingetragen.
Das Ergebnis: Ein User fragte google.de an. OPNsense schickte an DC, DC schickte an OPNsense, OPNsense schickte an DC…
Die Folge: Innerhalb von 10 Sekunden war die gesamte Bandbreite durch DNS-Pakete gesättigt und die CPU beider Server bei 100%.
Lehre: Definieren Sie eine klare Hierarchie. OPNsense -> Internet ODER Windows-DC -> OPNsense. Niemals im Kreis!
# 6. Monitoring & Reporting
DNS-Statistiken.
# Unbound Metrics
Nutzen Sie das Dashboard-Widget “DNS-Leases” und prüfen Sie unter Reporting -> Settings das Logging von Unbound.
- KPI: Cache Hit Ratio. Ziel: > 50%. Alles darunter deutet auf zu kleine Cache-Größen hin.
# 7. Fazit & Empfehlung
Unbound ist der heimliche Held der Netzwerkleistung.
- Empfehlung: Nutzen Sie DNS-over-TLS konsequent. Es schützt Ihre Firma vor DNS-Spoofing und ISP-Zensur.
- Sicherheit: Aktivieren Sie die DNS-Blacklists. Es ist der effizienteste Schutz gegen Phishing und Malware-C2-Server.
# Anhang: Cheatsheet
| Aufgabe | Pfad / Befehl |
|---|---|
| DNS Cache leeren | pluginctl -s unbound restart |
| Live Log (Shell) | tail -f /var/log/unbound/unbound.log |
| DNS Test (Shell) | drill @127.0.0.1 google.de |
| Overrides | Services -> Unbound DNS -> Overrides |