Ein eigener DNS-Server bedeutet volle Kontrolle ueber den Resolver. Sie eliminieren die Abhaengigkeit von externen DNS-Anbietern, erhalten interne Service Discovery und die Moeglichkeit von Split-Horizon DNS, bei dem dieselbe Domain unterschiedliche IP-Adressen zurueckgibt, je nachdem, ob die Anfrage aus dem internen Netzwerk oder dem Internet kommt. Fuer Unternehmen mit eigener Infrastruktur ist dies ein Grundpfeiler der Netzwerkarchitektur.
BIND¶
# /etc/bind/zones/db.example.local
$TTL 3600
@ IN SOA ns1.example.local. admin.example.local. (
2024010101 3600 900 604800 86400)
@ IN NS ns1.example.local.
ns1 IN A 10.0.1.1
web IN A 10.0.1.10
db IN A 10.0.1.20
BIND ist der am weitesten verbreitete autoritative DNS-Server mit Unterstuetzung fuer DNSSEC, dynamische Updates und Views fuer Split-Horizon. Die Konfiguration ist deklarativ in Text-Zonendateien. Fuer hohe Verfuegbarkeit setzen Sie primaere und sekundaere Server mit Zonentransfers (AXFR/IXFR) ein.
CoreDNS¶
.:53 {
forward . 8.8.8.8 8.8.4.4
cache 30
log
}
example.local:53 {
file /etc/coredns/db.example.local
}
CoreDNS ist der Standard-DNS-Server in Kubernetes. Die Plugin-Architektur ermoeglicht es, genau die Funktionalitaet zusammenzustellen, die Sie benoetigen — von einfachem Forwarding ueber Caching bis zur Service Discovery ueber die Kubernetes-API. Die Corefile-Konfiguration ist sauberer und einfacher als BIND. Fuer Kubernetes-Cluster erstellt CoreDNS automatisch DNS-Eintraege fuer Services und Pods.
Wann was¶
- BIND — Enterprise, autoritatives DNS, DNSSEC, Zonentransfers
- CoreDNS — Kubernetes, Microservices, Plugin-Architektur
- dnsmasq — kleine Netzwerke, DHCP + DNS in einem, Heim-/Buero-LAN
Diagnostik¶
Zur DNS-Fehlersuche verwenden Sie dig (detaillierte Antworten), nslookup (schnelle Pruefung) oder drill (DNSSEC-Validierung). Der Befehl dig +trace example.com zeigt den vollstaendigen Abfrageweg ueber die Root-Server.
DNS-Server = Kontrolle¶
Ein eigener DNS-Server ermoeglicht internen Resolver, Service Discovery, Split-Horizon DNS und DNSSEC. Fuer kleine Umgebungen genuegt dnsmasq, fuer Kubernetes CoreDNS, fuer Enterprise BIND.