DNS-Hygiene-Check

Perstat liest die SPF-, DMARC- und CAA-Records einer Domain aus jeder Region und bewertet sie als Konfiguration. Ein schwacher oder fehlender Record erscheint als eingeschränkt und öffnet keinen Incident.

Alle Checktypen dns_hygiene

Die Monitoransicht eines DNS-Hygiene-Checks auf perstat.io mit 6 Regionen sowie Uptime und Check-Zahl der letzten 24 h. Sie zeigt das Alarmquorum von 2 von 6 Regionen und den Verfügbarkeitsbalken im Zustand eingeschränkt.
Auf dieser Seite

Was er prüft

Ein DNS-Hygiene-Monitor liest in jedem Intervall aus jeder seiner Regionen 3 Records einer Domain. SPF und DMARC entscheiden, ob die Mail der Domain zugestellt wird, und CAA entscheidet, wer Zertifikate für sie ausstellen darf. SPF vorhanden, DMARC mit p=quarantine oder p=reject und ein CAA-Record ergeben ok, alles darunter ergibt eingeschränkt. Die Bewertung fällt nie unter eingeschränkt, deshalb erscheint ein geschwächter Mail- oder Zertifikatsstand in der Übersicht, ohne jemanden zu alarmieren.

Wann Sie ihn einsetzen

  • Eine Domain versendet Mail wie Rechnungen, Passwort-Resets oder Benachrichtigungen, und ihre SPF- und DMARC-Records müssen jede DNS-Änderung überstehen.
  • Eine DMARC-Policy none oder ein fehlender CAA-Record soll als Befund mit Zeitstempel erscheinen, ohne einen Incident zu öffnen.
  • Die Domain hat keinen eigenen HTTP-Endpunkt, an dem ein HTTP(S)-Monitor den DNS-Hygiene-Subcheck mitführen könnte.

Er bewertet nicht, ob die Domain auflöst oder ob der Mailserver Verbindungen annimmt. Für einen Record, der einen bestimmten Wert tragen muss, nutzen Sie den DNS-Record-Check, für den Mailweg den SMTP- und den IMAP-Check. NS, SOA, DNSSEC und der Ablauf der Registrierung gehören zum Domain-Check.

Das Monitor-Formular mit Typ DNS-Hygiene: der Name und das Feld Domain mit perstat.io. Ein Hinweis sagt, dass SPF, DMARC einschließlich Policy und CAA geprüft werden. Darunter steht der Check-Abschnitt mit Intervall, Regionen und Alarmierung.
Das DNS-Hygiene-Formular: ein Feld, die Domain. Intervall 1 h, 6 Regionen, voreingestellte Alarmierung. Echte Produktoberfläche, Beispieldaten.

Konfiguration

Domain. Die Domain, deren Records der Prüfpunkt liest, zum Beispiel example.com. Einen abschließenden Punkt entfernt Perstat. Die 3 Abfragen gehen an den Apex und an _dmarc. darunter, über den eigenen Resolver des Knotens, aus jeder gewählten Region.

FeldPflichtWerte und VoreinstellungBedeutung
domainDomainjaDomainname, zum Beispiel example.comDie Domain, deren SPF-, DMARC- und CAA-Records der Prüfpunkt liest.
interval_secondsPrüfintervalloptionalVoreinstellung 300 s. Bereich: Minimum des Tarifs bis 24 hWie oft jede Region den Check ausführt. Einen Wert außerhalb des Bereichs hebt Perstat auf das Minimum des Tarifs an oder begrenzt ihn auf 24 h, statt ihn abzulehnen.
regionsRegionenoptionalTeilmenge aus na, eu, as, sa, af, oce. Voreinstellung: die Regionen des TarifsWelche Kontinente den Check ausführen. Ohne Angabe wählt der Tarif seine Voreinstellung.

So läuft ein Check ab

  1. Ist ein Check fällig, fragt jede Region den eigenen Resolver des Knotens nach den TXT-Records am Apex der Domain und sucht einen, der v=spf1 enthält.
  2. Sie liest die TXT-Records unter _dmarc.<domain>, sucht einen, der v=dmarc1 enthält, und zieht daraus die p=-Policy.
  3. Sie fragt nach CAA-Records am Apex. Es zählt nur, ob sie vorhanden sind, nicht ihr Inhalt.
  4. Ein fehlender SPF- oder DMARC-Record ergibt eingeschränkt, und das Detail nennt, was fehlt. Sonst ergibt eine DMARC-Policy außer quarantine oder reject oder ein fehlender CAA-Record eingeschränkt, und das Detail nennt, was schwach ist. Ist alles vorhanden, ergibt das ok.
  5. Die Region sendet ihr Ergebnis an die Control Plane. Ein eingeschränktes Ergebnis bleibt aus der Incident-Bewertung heraus. Dort zählt nur ein Fehler als Ausfall, sobald das Quorum einig ist.
Die Monitoransicht eines DNS-Hygiene-Checks auf perstat.io mit 6 Regionen sowie Uptime und Check-Zahl der letzten 24 h. Sie zeigt das Alarmquorum von 2 von 6 Regionen und den Verfügbarkeitsbalken im Zustand eingeschränkt.
Die Monitoransicht über 24 h: Uptime 100 % mit 6 Checks in der ersten Stunde, einer je Region, und ein Quorum von 2 von 6 Regionen. Der Verfügbarkeitsbalken zeigt eingeschränkt, einen Befund zur Konfiguration ohne Incident. Echte Produktoberfläche, Beispieldaten.

Was ein Ergebnis enthält

Detailzeile
Eine Zeile nennt die fehlenden Records (SPF, DMARC) oder die schwachen, etwa DMARC p=none oder kein CAA. Ist alles vorhanden, lautet sie SPF · DMARC p=reject · CAA, mit der Policy, die der Record trägt.
Antwortzeit
Die Zeit für alle 3 Abfragen zusammen, je Region. Dieser Typ meldet keinen Antwortcode und keine Ursachenschicht.
Region
Jedes Ergebnis trägt die Region, die es gemessen hat. Es gibt keine Teilergebnisse je Familie oder Adresse.

Zustände und Schwere

  • okSPF ist vorhanden, DMARC trägt p=quarantine oder p=reject, und ein CAA-Record existiert.
  • eingeschränktSPF oder DMARC fehlt, DMARC trägt eine andere Policy als quarantine oder reject, oder es existiert kein CAA-Record. Eine Abfrage, die fehlschlägt oder nichts liefert, zählt als fehlend, nicht als Fehler.
  • FehlerDer Check kann nicht laufen: Die Konfiguration lässt sich nicht lesen, die Domain ist leer, oder der Resolver des Knotens lässt sich nicht initialisieren. Das zählt als Ausfall mit Schwere critical.

Per Quorum bestätigt: Standardmäßig müssen 2 Regionen den Fehler melden, bevor Perstat einen Incident öffnet. Die Bewertung des Konfigurationsstands lautet ok oder eingeschränkt, nie ausgefallen. Nur ein Fehler, wenn der Check nicht laufen kann, zählt als Ausfall. Die Voreinstellung der Organisation verlangt 2 Regionen und 2 aufeinanderfolgende Checks, und ein Monitor kann eine eigene Regel tragen (Anzahl oder Prozent, aufeinanderfolgende Checks und Mindestdauer).

Tarife und Grenzen

Kürzestes Intervall
Free erlaubt 300 s, Pulse 60 s und Sentinel 30 s. Command erlaubt 15 s und Enterprise 10 s, beide nur über MCP. Das Webformular bietet 30 s, 1 min, 5 min, 15 min und 1 h.
Regionen
Free nutzt 2 von 6 Regionen und Pulse 3 von 6. Alle 6 stehen ab Sentinel bereit.
Monitore
Free enthält 10 regionale Monitore, Pulse 50, Sentinel 150 und Command 500. Die Kontingente in Enterprise sind individuell. Die Zahl gilt für die 11 regionalen Checktypen, Host-Agenten und Heartbeats haben eigene Kontingente.

Alle Tarifgrenzen vergleichen

Aus der Pipeline oder von einem Agenten

Dieselbe config gilt im Deploy-Schritt, in einem MCP-Client wie Claude Code und im Formular oben. create_monitor braucht einen API-Schlüssel für die ganze Organisation. Wenn Sie regions weglassen, wählt der Tarif seine Voreinstellung.

{
  "name": "example.com mail hygiene",
  "type": "dns_hygiene",
  "interval_seconds": 3600,
  "config": {
    "domain": "example.com"
  }
}

Jede Schnittstelle mit ihrer Grenze

Grenzen

  • Es gibt keine SPF-Syntaxprüfung. Ein TXT-Record am Apex muss nur v=spf1 enthalten.
  • Es gibt keine DKIM- und keine MX-Prüfung, und den Inhalt eines CAA-Records liest der Check nicht.
  • Eine Abfrage, die fehlschlägt, zählt als fehlender Record, nicht als Messfehler.
  • Es gibt keine IP-Familien und keine Teilergebnisse je Adresse. Die Abfragen laufen über den eigenen Resolver des Knotens, und der Knoten bricht einen Lauf nach 120 s ab.
  • Ein fehlender oder schwacher Record ergibt nie eine Bewertung unter eingeschränkt. Für einen Record, der einen bestimmten Wert tragen muss, nutzen Sie den DNS-Record-Check.
  • Ab dem Build vom 13. September 2026 liest der Validator domain, wenn Sie einen Monitor über die API anlegen oder ändern. Zwischen dem 11. August 2026 und diesem Build las er name und wies eine Anfrage ohne dieses Feld ab (name must not be empty), während die Engine weiter domain las und bestehende Monitore weiterliefen. Bis dieser Build ausgerollt ist, senden Sie name mit demselben Wert neben domain.

Alle Checktypen