DNS-Telemetrie: Resolver-Latenz und Errors messen ist in modernen Cloud- und Kubernetes-Umgebungen kein „Nice-to-have“, sondern eine Voraussetzung für stabile Applikationen. DNS ist ein Querschnittsdienst: Wenn Namensauflösung langsam wird oder sporadisch fehlschlägt, wirken Symptome schnell wie „Netzwerkproblem“, „Service ist down“ oder „Random Timeouts“ – obwohl die eigentliche Ursache im Resolver, im Cache-Verhalten oder in Upstream-Abhängigkeiten liegt. Besonders tückisch ist, dass viele Systeme DNS-Probleme nicht eindeutig loggen: Anwendungen melden nur Verbindungsfehler, Proxies zeigen Upstream-Timeouts, und Traces brechen ohne klare Kante ab. Um solche Situationen zuverlässig zu erkennen und zu beheben, benötigen Sie DNS-Telemetrie, die zwei Dinge sichtbar macht: erstens die Resolver-Latenz (wie lange dauert eine Auflösung wirklich, inklusive Retries und Cache-Entscheidungen), und zweitens die Fehlerarten (NXDOMAIN, SERVFAIL, REFUSED, Timeout, Truncation). Dieser Artikel erklärt, welche Messpunkte sinnvoll sind, welche Metriken und Labels Sie erfassen sollten, wie Sie Fehler korrekt interpretieren und wie Sie ein Monitoring aufbauen, das im Incident schnell Antworten liefert – ohne unnötige Komplexität und ohne Datenflut.
Warum DNS-Telemetrie oft fehlt – und warum das gefährlich ist
In vielen Teams gibt es detaillierte Metriken für HTTP (p95/p99, 5xx, Retries), aber DNS läuft „irgendwie mit“. Das ist riskant, weil DNS-Ausfälle selten vollständig sind. Häufig sind sie partiell: nur bestimmte Namespaces, nur einzelne Nodes, nur bestimmte Query-Typen oder nur unter Last. Zudem kaschieren Caches das Problem: Ein Dienst kann Minuten lang stabil wirken, bis TTLs auslaufen und plötzlich die Auflösung eskaliert. Ohne Telemetrie sehen Sie dann nur die Folge: steigende App-Fehler und Latenz. Mit DNS-Telemetrie sehen Sie stattdessen die Ursache frühzeitig: steigende Resolver-Latenz, wachsende Retry-Raten oder ein Sprung bei SERVFAIL.
Als Grundlage für Begriffe und Fehlcodes ist die DNS-Spezifikation hilfreich, insbesondere für Response Codes (RCODE) und TTL-Verhalten. Eine zentrale Referenz ist RFC 1035.
Messpunkte: Wo Sie Resolver-Latenz und Errors erfassen können
DNS ist eine Kette. Je nachdem, wo Sie messen, bekommen Sie unterschiedliche Wahrheiten. Die beste Telemetrie entsteht, wenn Sie Messpunkte bewusst wählen und die Ergebnisse korrelieren.
- Client-Sicht (Applikation oder Sidecar): Misst, wie DNS die Applikation tatsächlich erlebt. Vorteil: Nutzernahe Wahrheit. Nachteil: schwer zu standardisieren über viele Sprachen/Stacks.
- Node-/Cluster-Resolver (z. B. CoreDNS, NodeLocal DNSCache): Idealer Kontrollpunkt in Kubernetes. Vorteil: zentrale Metriken und Logs, gute Labels. Nachteil: zeigt nicht immer, wie einzelne Apps mit DNS umgehen (z. B. eigene Resolver-Libraries).
- Upstream-Resolver (z. B. Cloud DNS, Unternehmensresolver): Zeigt, ob Ihr internes DNS oder die externe DNS-Infrastruktur Probleme hat. Vorteil: klare Verantwortlichkeit. Nachteil: oft weniger Kontext zu Kubernetes-spezifischen Dimensionen.
In Kubernetes ist CoreDNS häufig der primäre Messpunkt; die offizielle Dokumentation beschreibt Funktionen, Plugins und Betriebsmodelle: CoreDNS Manual.
Was genau bedeutet „Resolver-Latenz“?
Resolver-Latenz ist nicht nur „Zeit bis zur Antwort“. Sie setzt sich aus mehreren Komponenten zusammen, die Sie unterscheiden sollten, um Ursachen sauber zu trennen:
- Cache-Hit-Latenz: Antwort kommt aus Cache; typischerweise sehr niedrig.
- Cache-Miss-Latenz: Resolver fragt Upstream; abhängig von Netzwerk, Upstream-Load und Rekursion.
- Retry-Latenz: Wenn erste Anfrage keine Antwort bekommt, entstehen zusätzliche Delays (Timeouts, Backoff).
- TCP-Fallback-Latenz: Bei Truncation (TC=1) oder großen Antworten kann UDP zu TCP wechseln.
Ein Telemetrie-Setup, das nur Durchschnittswerte zeigt, verschleiert diese Unterschiede. Ziel ist daher eine Verteilung (z. B. p50/p95/p99) und eine Segmentierung nach Cache-Hit/Miss, Query-Typ und RCODE.
DNS-Fehler richtig kategorisieren
„DNS Error“ ist kein einheitlicher Zustand. Es gibt semantisch unterschiedliche Fehler, die unterschiedliche Gegenmaßnahmen erfordern. Folgende Kategorien sind in der Praxis besonders wichtig:
- NXDOMAIN: Name existiert nicht. Kann „normal“ sein (z. B. Service nicht vorhanden) oder ein Hinweis auf falsche Konfiguration/Service Discovery Drift.
- SERVFAIL: Resolver konnte nicht korrekt antworten (Upstream-Fehler, DNSSEC-Probleme, Rekursion gescheitert).
- REFUSED: Anfrage wird abgelehnt (Policy, ACL, fehlende Rekursion).
- Timeout: Keine Antwort rechtzeitig erhalten. Häufig Last, Netzwerk, Upstream-Probleme oder Paketverlust.
- Truncation (TC=1): Antwort zu groß für UDP; Client muss per TCP nachfragen. Kann Latenz erhöhen und Verbindungsprobleme auslösen.
Für ein sauberes Verständnis der DNS-RCODEs ist RFC 1035 die Basis; für DNSSEC und erweiterte Fehlerbilder können je nach Einsatz weitere RFCs relevant sein, aber als Startpunkt genügt meist die klassische DNS-Spezifikation: RFC 1035.
Die wichtigsten DNS-Metriken für Monitoring und Incident Response
Wenn Sie DNS-Telemetrie aufbauen, sollten Sie sich zuerst auf wenige, belastbare Metriken konzentrieren. Entscheidend ist, dass diese Metriken im Incident sofort eine Richtung geben: „Ist es Cache? Ist es Upstream? Ist es Last? Ist es eine Zone/Node?“
Resolver-Latenz als Histogramm
Die wichtigste Kennzahl ist ein Latenz-Histogramm (oder eine vergleichbare Verteilungsmetrik), aus dem Sie p50/p95/p99 ableiten können. Achten Sie darauf, dass die Latenz sowohl Gesamt- als auch Upstream-Komponente abbildet, wenn möglich getrennt.
- p50: zeigt Baseline, meist Cache-getrieben.
- p95/p99: zeigt Tail-Latenz, oft Upstream oder Retries.
- Max oder „worst bucket“: hilft bei Spikes, sollte aber nicht isoliert interpretiert werden.
Error Rate nach Fehlerklasse
Eine Gesamt-Error-Rate ist zu grob. Sie benötigen mindestens eine Aufschlüsselung nach:
- RCODE (NXDOMAIN, SERVFAIL, REFUSED, NOERROR): semantische Fehlertrennung.
- Transportfehler: Timeout, Netzwerkfehler, TCP-Fallback-Failure.
- Query-Typ: A, AAAA, SRV, TXT, PTR (häufig unterschiedlich betroffen).
QPS und Cache-Hit-Rate
DNS-Probleme sind häufig Lastprobleme. Daher sollten Sie QPS (Queries per second) und Cache-Hit-Rate messen. Ein plötzlicher Anstieg in QPS bei fallender Hit-Rate ist ein Warnsignal: Der Resolver muss mehr Upstream-Arbeit leisten, wodurch Tail-Latenz und Timeouts steigen können.
Upstream-Health
Wenn Ihr Resolver weiterleitet oder rekursiv arbeitet, ist Upstream-Health kritisch. Sinnvoll sind Metriken wie:
- Upstream-Latenz (separat von Gesamt-Latenz)
- Upstream-Timeouts
- Upstream-Errors nach Ziel (welcher Upstream ist betroffen?)
Labels und Dimensionen: Ohne Kontext sind Metriken kaum nutzbar
DNS-Telemetrie wird erst dann wertvoll, wenn Sie sie nach sinnvollen Dimensionen filtern können. Gleichzeitig ist DNS sehr hochvolumig, daher müssen Sie Label-Sprawl vermeiden. Praktisch bewährte Dimensionen:
- Cluster/Region/Zone: Failure Domain sichtbar machen.
- Resolver-Instance/Pod/Node: „Bad instance“-Effekte erkennen.
- RCODE: Fehlerklasse.
- Query-Type: A/AAAA/SRV usw.
- Upstream: Zielresolver oder Forwarder.
- Cache: Hit/Miss (wenn verfügbar).
Vermeiden Sie in Metriken hochgradig kardinale Labels wie vollständige Domainnamen. Das gehört eher in Logs (ggf. mit Sampling) oder in Top-N-Auswertungen, nicht in dauerhafte Metriklabels.
CoreDNS-Observability: Was Sie konkret messen können
CoreDNS bietet mehrere Wege für Telemetrie: Metriken (z. B. via Prometheus), Logs (z. B. query logs) und plugin-spezifische Signale. Für Metriken ist die Prometheus-Integration ein verbreiteter Standard; Grundlagen dazu finden Sie in der Prometheus-Dokumentation: Prometheus Overview. Für CoreDNS-spezifische Details ist das Manual die primäre Quelle: CoreDNS Manual.
Typische, praxisrelevante Signale aus CoreDNS-basierten Setups sind:
- Request count (QPS) und Verteilung nach RCODE
- Request duration (Histogramm) für Latenzverteilungen
- Forwarder-Statistiken (wenn forward genutzt wird)
- Cache-Indikatoren (je nach Plugin-Konfiguration)
- Ressourcenmetriken (CPU, Memory, OOM, throttling) als Ursachenhinweis
Ein häufiger Incident-Auslöser ist CPU-Throttling oder Queueing im DNS-Pfad: DNS wirkt dann „langsam“, ohne dass der Upstream defekt ist. Deshalb sollten Sie DNS-Metriken immer zusammen mit Ressourcenmetriken des Resolver-Deployments betrachten.
NodeLocal DNSCache und lokale Resolver: Latenz reduzieren, Telemetrie verbessern
In Kubernetes kann NodeLocal DNSCache die DNS-Latenz senken und die Stabilität erhöhen, indem ein Cache nah am Pod/Node arbeitet. Telemetrie wird dadurch oft klarer: Sie können unterscheiden, ob Probleme im lokalen Cache, in CoreDNS oder im Upstream entstehen. Gleichzeitig entsteht ein zusätzlicher Messpunkt. In der Praxis sollten Sie dann Latenz und Fehler getrennt für „local cache“ und „cluster DNS“ messen, um Fehlersuche zu beschleunigen.
Wichtig ist, die Cache-Logik zu verstehen: Ein lokaler Cache kann kurzfristig Probleme maskieren (weil Antworten noch im Cache sind) und später eine „Wand“ erzeugen, wenn TTLs ablaufen. Deshalb ist die Kombination aus Cache-Hit-Rate, QPS und Tail-Latenz besonders aussagekräftig.
Synthetische DNS-Checks: Wie Sie Resolver-Latenz aktiv messen
Passive Metriken zeigen, was passiert ist. Synthetische Checks zeigen, ob DNS gerade funktioniert – aus Sicht eines Clients. Für DNS ist ein synthetischer Check besonders effektiv, weil er sehr leichtgewichtig ist und frühzeitig signalisiert, wenn Auflösung kippt. Gute synthetische DNS-Checks testen nicht nur „irgendeinen“ Namen, sondern mehrere Kategorien:
- Interne Service Discovery: z. B. ein interner Service-Name, der existieren muss.
- Externe Names: z. B. ein stabiler externer Name, um Upstream/Internet-Auflösung zu prüfen.
- Negativtest: Ein Name, der sicher nicht existiert, um NXDOMAIN-Verhalten und Latenz zu beobachten.
Für synthetische Checks sind Messwerte wie „Resolution time“ und „RCODE“ zentral. Achten Sie darauf, Checks aus mehreren Failure Domains (Zonen/Cluster) laufen zu lassen, damit Sie regionale DNS-Probleme erkennen.
Logs sinnvoll einsetzen: Welche DNS-Logdaten helfen wirklich?
DNS-Query-Logs können sehr hilfreich sein, bergen aber zwei Risiken: Datenvolumen und Sensitivität (Domains können Rückschlüsse auf Systeme und Nutzerverhalten zulassen). Daher sollten Sie Query-Logs gezielt einsetzen, z. B. temporär im Incident oder mit Sampling. Sinnvolle Logfelder:
- Query-Name (ggf. gehasht oder gekürzt je nach Compliance)
- Query-Type
- RCODE
- Antwortzeit
- Upstream-Server (wenn forward genutzt wird)
- Client-Subnetz/Quelle (vorsichtig, datenschutzrelevant)
Best Practice ist, Logs primär für „Top offenders“ zu nutzen: Welche Domains erzeugen die meisten NXDOMAINs? Welche Queries sind besonders langsam? Für die Dauerüberwachung sind Metriken zuverlässiger und günstiger.
Fehlerinterpretation in der Praxis: NXDOMAIN-Spikes, SERVFAIL und „Timeout Storms“
Die häufigsten DNS-Incidents lassen sich oft anhand weniger Muster einordnen, wenn Sie die richtigen Metriken haben.
NXDOMAIN-Spike
Ein sprunghafter Anstieg von NXDOMAIN kann harmlos sein (neuer Code fragt nach optionalen Names), oder kritisch (falsche Konfiguration, Service umbenannt, falscher Namespace, falsche Suffix-Suche). Ein klares Indiz ist, ob gleichzeitig App-Errors steigen und ob die NXDOMAINs aus einer bestimmten Failure Domain kommen. Query-Logs (gesampelt) helfen, den betroffenen Namen zu identifizieren, ohne dass Sie die gesamte Domainlandschaft als Metriklabel führen müssen.
SERVFAIL-Anstieg
SERVFAIL ist häufig ein Upstream- oder Rekursionsproblem. Wenn SERVFAIL steigt und gleichzeitig Upstream-Latenz oder Upstream-Timeouts steigen, ist die Richtung klar: Resolver/Upstream prüfen. Wenn SERVFAIL steigt, aber Upstream-Health stabil bleibt, sind auch DNSSEC- oder Policy-Effekte möglich. In solchen Fällen ist eine getrennte Telemetrie nach Upstream und nach Query-Typ hilfreich.
Timeout Storm
Timeouts sind besonders gefährlich, weil sie Retries auslösen. Retries erhöhen QPS, QPS erhöht Last, Last erhöht Latenz, Latenz erhöht Timeouts – ein Verstärkungseffekt. Telemetrie sollte daher nicht nur Timeouts zählen, sondern auch die QPS-Entwicklung und die Tail-Latenz. Ein typisches Warnsignal ist: p99 steigt zuerst, dann Timeouts, dann QPS (Retry-getrieben), dann SERVFAIL/REFUSED durch Überlast.
Dashboards: Was ein DNS-„Incident-Ready“-Panel enthalten sollte
Ein gutes DNS-Dashboard beantwortet im Incident innerhalb weniger Minuten konkrete Fragen. Minimale Pflichtkomponenten:
- Resolver-Latenz: p50/p95/p99 als Zeitreihe, ideal als Histogramm-Quantile
- Error Breakdown: RCODE-Verteilung (NOERROR, NXDOMAIN, SERVFAIL, REFUSED) plus Timeouts
- QPS und Cache-Hit/Miss: Last und Cache-Qualität
- Upstream-Latenz/Errors: getrennt nach Upstream-Server
- Per-Failure-Domain View: Region/Zone/Cluster/Node, um lokale Probleme zu isolieren
- Ressourcen: CPU/Memory/Throttling/OOM des Resolver-Deployments
Wenn Sie Prometheus nutzen, ist es sinnvoll, die Dashboard-Queries so zu gestalten, dass sie auf Labels wie cluster/zone/rcode/type filtern können, ohne dass Kardinalität explodiert. Eine gute Grundlage dafür ist das Prometheus-Konzept von Labels und Aggregationen: Prometheus Best Practices: Naming.
Alerting: Welche DNS-Alarme wirklich sinnvoll sind
DNS erzeugt schnell Alarmrauschen, wenn man naive Schwellenwerte setzt. Sinnvoll sind Alarme, die starke Korrelation zu User-Impact haben und gleichzeitig Actionability bieten:
- p99 Resolver-Latenz über Baseline (z. B. dynamisch über Anomalieerkennung oder pro Cluster)
- Timeout-Rate über einem kleinen, aber stabilen Grenzwert
- SERVFAIL-Rate signifikant erhöht, insbesondere bei gleichzeitig steigender Upstream-Latenz
- QPS-Spike plus fallende Cache-Hit-Rate (Hinweis auf Retry-Storm oder Cache-Bypass)
- Resolver-Sättigung (CPU throttling, OOM, Pod restarts) als Frühwarnsignal
NXDOMAIN sollte man oft nur alarmieren, wenn es plötzlich stark ansteigt und gleichzeitig App-Fehler steigen, oder wenn es auf kritische Names hindeutet. Andernfalls erzeugt NXDOMAIN häufig Noise.
Tracing und DNS: Warum „nur Traces“ nicht reichen
Distributed Tracing ist wertvoll, aber DNS ist darin oft nur indirekt sichtbar. Viele Tracing-Instrumentierungen erfassen DNS nicht explizit, und selbst wenn, ist die Auflösung häufig in Libraries oder im Betriebssystem verborgen. DNS-Telemetrie sollte daher als eigener Signalpfad existieren, der Traces ergänzt. Wenn Sie dennoch DNS in Observability integrieren möchten, kann OpenTelemetry als Standard hilfreich sein, um Metriken/Logs/Traces konsistent zu gestalten: OpenTelemetry Dokumentation.
Praktische Einführung: Schritt-für-Schritt zu belastbarer DNS-Telemetrie
- Schritt 1: Legen Sie den primären Messpunkt fest (CoreDNS, NodeLocal, Upstream) und entscheiden Sie, welche Failure Domains abgedeckt werden müssen.
- Schritt 2: Erfassen Sie Latenz als Verteilung (Histogramm) und nicht nur als Durchschnitt.
- Schritt 3: Erfassen Sie Errors nach RCODE und gesondert Timeouts/Transportfehler.
- Schritt 4: Ergänzen Sie QPS und Cache-Signale, um Last- und Retry-Effekte sichtbar zu machen.
- Schritt 5: Bauen Sie ein Incident-Dashboard mit Drilldowns nach Zone/Node/Upstream.
- Schritt 6: Implementieren Sie synthetische Checks aus mehreren Zonen/Clustern.
- Schritt 7: Definieren Sie wenige, hochwertige Alerts und vermeiden Sie NXDOMAIN-Alarmfluten.
Outbound-Quellen für vertiefende Informationen
- RFC 1035: Domain Names – Implementation and Specification
- CoreDNS Manual: Plugins, Betrieb und Observability
- Prometheus Overview: Metriken, Labels und Alerting
- Prometheus Best Practices: Naming und Label-Strategien
- OpenTelemetry Dokumentation: Telemetrie-Standards für Metriken und Logs
- RFC 6891: Extension Mechanisms for DNS (EDNS(0))
Cisco Netzwerkdesign, CCNA Support & Packet Tracer Projekte
Cisco Networking • CCNA • Packet Tracer • Network Configuration
Ich biete professionelle Unterstützung im Bereich Cisco Computer Networking, einschließlich CCNA-relevanter Konfigurationen, Netzwerkdesign und komplexer Packet-Tracer-Projekte. Die Lösungen werden praxisnah, strukturiert und nach aktuellen Netzwerkstandards umgesetzt.
Diese Dienstleistung eignet sich für Unternehmen, IT-Teams, Studierende sowie angehende CCNA-Kandidaten, die fundierte Netzwerkstrukturen planen oder bestehende Infrastrukturen optimieren möchten. Finden Sie mich auf Fiverr.
Leistungsumfang:
-
Netzwerkdesign & Topologie-Planung
-
Router- & Switch-Konfiguration (Cisco IOS)
-
VLAN, Inter-VLAN Routing
-
OSPF, RIP, EIGRP (Grundlagen & Implementierung)
-
NAT, ACL, DHCP, DNS-Konfiguration
-
Troubleshooting & Netzwerkoptimierung
-
Packet Tracer Projektentwicklung & Dokumentation
-
CCNA Lern- & Praxisunterstützung
Lieferumfang:
-
Konfigurationsdateien
-
Packet-Tracer-Dateien (.pkt)
-
Netzwerkdokumentation
-
Schritt-für-Schritt-Erklärungen (auf Wunsch)
Arbeitsweise:Strukturiert • Praxisorientiert • Zuverlässig • Technisch fundiert
CTA:
Benötigen Sie professionelle Unterstützung im Cisco Networking oder für ein CCNA-Projekt?
Kontaktieren Sie mich gerne für eine Projektanfrage oder ein unverbindliches Gespräch. Finden Sie mich auf Fiverr.

