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
noneoder 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.

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.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
domainDomain | ja | Domainname, zum Beispiel example.com | Die Domain, deren SPF-, DMARC- und CAA-Records der Prüfpunkt liest. |
interval_secondsPrüfintervall | optional | Voreinstellung 300 s. Bereich: Minimum des Tarifs bis 24 h | Wie 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. |
regionsRegionen | optional | Teilmenge aus na, eu, as, sa, af, oce. Voreinstellung: die Regionen des Tarifs | Welche Kontinente den Check ausführen. Ohne Angabe wählt der Tarif seine Voreinstellung. |
So läuft ein Check ab
- 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=spf1enthält. - Sie liest die TXT-Records unter
_dmarc.<domain>, sucht einen, derv=dmarc1enthält, und zieht daraus diep=-Policy. - Sie fragt nach CAA-Records am Apex. Es zählt nur, ob sie vorhanden sind, nicht ihr Inhalt.
- Ein fehlender SPF- oder DMARC-Record ergibt eingeschränkt, und das Detail nennt, was fehlt. Sonst ergibt eine DMARC-Policy außer
quarantineoderrejectoder ein fehlender CAA-Record eingeschränkt, und das Detail nennt, was schwach ist. Ist alles vorhanden, ergibt das ok. - 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.

Was ein Ergebnis enthält
- Detailzeile
- Eine Zeile nennt die fehlenden Records (SPF, DMARC) oder die schwachen, etwa
DMARC p=noneoder kein CAA. Ist alles vorhanden, lautet sieSPF · 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=quarantineoderp=reject, und ein CAA-Record existiert. - eingeschränktSPF oder DMARC fehlt, DMARC trägt eine andere Policy als
quarantineoderreject, 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.
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=spf1enthalten. - 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 ernameund wies eine Anfrage ohne dieses Feld ab (name must not be empty), während die Engine weiterdomainlas und bestehende Monitore weiterliefen. Bis dieser Build ausgerollt ist, senden Sienamemit demselben Wert nebendomain.