Check d’enregistrement DNS

Perstat interroge un type d’enregistrement d’un nom depuis 6 régions au plus et compare la réponse à ce que vous attendez. Il valide aussi DNSSEC et peut confronter la réponse à celle d’un monitor frère.

Tous les types de checks dns

La vue du monitor d’un check DNS sur l’enregistrement A de perstat.io. Elle montre 6 régions, un uptime de 100 %, 12 checks en 24 heures et la règle d’alerte avec un quorum de 2 régions sur 6. Elle montre aussi la barre de disponibilité et les onglets des checks récents, des changements d’état et des incidents.
Sur cette page

Ce qu’il vérifie

Un monitor DNS résout un type d’enregistrement pour un nom depuis chacune de ses régions, à chaque intervalle. Par défaut, c’est le résolveur de la sonde qui répond : le check voit donc la zone dans son ensemble. Un serveur de noms désigné dans la config est interrogé directement, sans cache intermédiaire, ce qui révèle quand un serveur d’un groupe tombe ou répond autrement. La réponse est jugée selon vos assertions puis, si elle passe, validée par DNSSEC. Elle peut aussi être confrontée au dernier ensemble de réponses d’un autre monitor de l’organisation : 2 noms qui doivent concorder font alors échouer le check dès qu’ils divergent.

À utiliser quand

  • Un nom doit continuer à se résoudre vers une adresse, un serveur de mail ou un alias connus, comme l’hôte web, l’enregistrement MX ou un CNAME vers un prestataire.
  • Chaque serveur d’un groupe de serveurs de noms doit répondre, et répondre la même chose. Créez un monitor par serveur, chacun avec server réglé sur ce serveur.
  • Deux noms doivent concorder, par exemple l’apex et www, ou le même enregistrement dans 2 zones. Une référence croisée vers le monitor frère transforme une divergence en check en échec.

Il compare un type d’enregistrement d’un nom. Pour la cohérence NS et SOA entre les serveurs faisant autorité, l’expiration du domaine et l’état DNSSEC d’un domaine entier, utilisez le check de domaine. Utilisez le check d’hygiène DNS pour SPF, DMARC et CAA comme posture, et le check HTTP(S) ou TCP pour savoir si le service derrière l’adresse répond.

Le formulaire de monitor avec le type DNS : le nom perstat.io, le type d’enregistrement A et le champ facultatif du serveur de noms avec son texte d’aide. Il montre aussi les assertions sur le texte de la réponse, la regex de la réponse et la liste des valeurs attendues.
Le formulaire DNS : domaine, type d’enregistrement, serveur de noms facultatif et les 3 assertions. Interface réelle du produit, données d’exemple.

Configuration

Cible. Le champ de config name contient le nom à interroger, et le formulaire l’appelle Domaine. Lors de la sauvegarde du monitor, seul le format est vérifié et le nom n’est pas résolu. Il accepte un nom d’hôte sans schéma, chemin ni espace, un littéral IP ou une étiquette seule, avec des étiquettes de 63 caractères au plus et 253 au total.

ChampRequisValeurs et défautSignification
nameDomaineouiNom d’hôte, étiquette seule acceptéeLe nom dont les enregistrements sont interrogés.
record_typeEnregistrementfacultatifA (défaut), AAAA, MX, TXT, CNAME, NSLe type d’enregistrement à interroger. Le formulaire en envoie toujours un, et une requête API sans ce champ interroge A.
expectedLa réponse contient (texte)facultatifChaîneAu moins un enregistrement de la réponse doit contenir ce texte. Plusieurs assertions se combinent par ET.
expected_regexLa réponse correspond à la regexfacultatifExpression régulièreAu moins un enregistrement de la réponse doit correspondre à ce motif. Un motif invalide termine le check en erreur.
expected_allValeurs attendues (toutes présentes)facultatifListe de chaînes, une par ligne dans le formulaireChaque valeur listée doit figurer dans au moins un enregistrement de la réponse. Utilisez-le quand c’est l’ensemble qui compte, par exemple les enregistrements NS d’une zone.
serverServeur de noms (facultatif)facultatifNom d’hôte ou IP. Défaut : le résolveur de la sondeLe serveur de noms à interroger directement, sans cache intermédiaire. Vide, c’est le résolveur de la sonde qui répond, et il voit la zone dans son ensemble.
cross_refMonitor de référence croiséefacultatif{"monitor": "<monitor id>", "mode": "identical"}. Mode identical (défaut), subset ou overlapCompare cet ensemble de réponses au dernier ensemble de réponses d’un autre monitor de l’organisation. Le mode identical exige des ensembles égaux, subset exige que chaque valeur d’ici figure dans l’autre ensemble, et overlap exige au moins une valeur commune.
interval_secondsIntervalle de checkfacultatifDéfaut 300 s. Plage : minimum de l’offre à 24 hLa fréquence à laquelle chaque région exécute le check. Une valeur hors de la plage est relevée au minimum de l’offre ou plafonnée à 24 h, et non rejetée.
regionsRégionsfacultatifSous-ensemble de na, eu, as, sa, af, oce. Défaut : les régions de l’offreLes continents qui exécutent le check. Si vous l’omettez, l’offre applique son jeu par défaut.

Déroulement d’un check

  1. Chaque région dont l’intervalle est échu compile d’abord l’expression régulière et résout le type d’enregistrement. Un motif invalide ou un type non pris en charge termine le check en erreur avant l’envoi de toute requête.
  2. Le résolveur est choisi : le résolveur de mesure du nœud, ou le serveur de noms désigné dans server. Le nom d’hôte de ce serveur est résolu par le résolveur du nœud puis confronté aux plages bloquées, qui comprennent les adresses de boucle locale, privées, link-local et de métadonnées cloud.
  3. La requête s’exécute et est chronométrée, et le temps de résolution devient la latence du check. Le moteur DNS n’applique pas à la requête elle-même la limite fixe de 10 s du monitor, et le nœud arrête toute exécution après 120 s.
  4. Une réponse vide fait échouer le check. Sinon, expected, expected_regex et expected_all se combinent par ET.
  5. Une réponse qui passe est suivie du contrôle DNSSEC sur DS, DNSKEY et l’expiration RRSIG. Une chaîne bogus ou une signature expirée fait échouer le check, et toute autre issue laisse le résultat tel quel.
  6. Le plan de contrôle applique la référence croisée quand il enregistre un résultat réussi avec un ensemble de réponses non vide. Un mode inconnu agit comme identical, et une divergence fait échouer le check avec la gravité critique. Un verdict en échec entre alors dans l’évaluation des incidents, et la politique d’alerte (régions et checks consécutifs) décide de l’ouverture d’un incident.
La vue du monitor d’un check DNS sur l’enregistrement A de perstat.io. Elle montre 6 régions, un uptime de 100 %, 12 checks en 24 heures et la règle d’alerte avec un quorum de 2 régions sur 6. Elle montre aussi la barre de disponibilité et les onglets des checks récents, des changements d’état et des incidents.
La vue du monitor : uptime, nombre de checks, règle de quorum et barre de disponibilité pour l’enregistrement A de perstat.io. Interface réelle du produit, données d’exemple.

Ce que contient un résultat

Réponse
La ligne de détail liste les enregistrements de la réponse, séparés par des virgules. Avec un serveur de noms désigné, l’adresse qui a répondu suit sous la forme (via IP).
Temps de résolution
Le temps de la requête par région est la latence du résultat.
Ensemble de réponses
Le plan de contrôle conserve l’ensemble de réponses normalisé de chaque check réussi : en minuscules, trié et dédoublonné. Une référence croisée compare cet ensemble. Il ne fait pas partie du résultat du check exposé par l’API.
Couche de cause
Un échec à la cible est attribué à la couche target_dns. Les preuves de l’incident l’affichent, si bien qu’un enregistrement manquant n’est pas classé comme un défaut réseau.
Région
Chaque résultat porte la région qui l’a mesuré. Il n’y a pas de sous-résultat par famille IP ni par adresse.

États et gravité

  • okLa réponse contient au moins un enregistrement et chaque assertion correspond. DNSSEC n’est pas bogus, aucune signature n’a expiré, et la référence croisée, si elle est définie, concorde.
  • en panneLa réponse ne contient aucun enregistrement, une assertion ne correspond pas, ou la référence croisée diverge. Le check échoue aussi sur une chaîne DNSSEC bogus ou un RRSIG expiré. Une erreur de résolution autre que NXDOMAIN, ou un serveur de noms désigné impossible à résoudre, le fait également échouer.
  • erreurLe nom n’existe pas (NXDOMAIN), la regex est invalide, le type d’enregistrement n’est pas pris en charge, ou le serveur de noms désigné se trouve sur une adresse privée ou interne. Cet état compte comme une panne de gravité critique.

Confirmé par quorum : par défaut, 2 régions doivent signaler l’échec avant l’ouverture d’un incident. Le moteur ne renvoie pas d’état dégradé pour ce type, seulement réussi, en échec ou en erreur. La règle par défaut de l’organisation exige 2 régions et 2 checks consécutifs. Un monitor peut porter sa propre règle (nombre ou pourcentage, checks consécutifs et durée minimale).

Offres et limites

Intervalle minimal
Free permet 300 s, Pulse 60 s et Sentinel 30 s. Command permet 15 s et Enterprise 10 s, les deux uniquement par MCP. Le formulaire web propose 30 s, 1 min, 5 min, 15 min et 1 h.
Régions
Free utilise 2 régions sur 6 et Pulse 3 sur 6. Les 6 sont disponibles à partir de Sentinel.
Monitors
Free inclut 10 monitors de sonde, Pulse 50, Sentinel 150 et Command 500. Les quotas Enterprise sont sur mesure. Les 11 types de sonde partagent ce quota.

Comparer toutes les limites

Depuis le pipeline ou un agent

La même config fonctionne dans l’étape de déploiement, dans un client MCP comme Claude Code et dans le formulaire ci-dessus. create_monitor exige une clé API valable pour toute l’organisation. Si vous omettez regions, l’offre applique sa valeur par défaut.

{
  "name": "Apex A record",
  "type": "dns",
  "interval_seconds": 60,
  "config": {
    "name": "example.com",
    "record_type": "A",
    "expected": "203.0.113.10"
  }
}

Chaque interface, avec sa limite

Limites

  • Un type d’enregistrement par monitor. Un nom avec un enregistrement A et un AAAA demande 2 monitors.
  • Aucune comparaison de SOA, de numéro de série ni de délégation entre les serveurs faisant autorité. Le check de domaine s’en charge.
  • Les enregistrements TXT sont comparés comme du texte, sans être analysés.
  • Avec server pointé sur une adresse anycast, chaque région atteint l’instance la plus proche. La ligne de détail indique l’adresse réellement interrogée.
  • Ce type ne prend pas d’address_families et ne renvoie pas de sous-résultats par adresse. Il exécute une requête par région, par le résolveur du nœud ou le serveur de noms désigné.
  • Un nom qui n’existe pas (NXDOMAIN) est une erreur, pas une assertion en échec. Les deux ouvrent un incident une fois le quorum atteint.
  • La référence croisée exige un monitor de la même organisation avec au moins un ensemble de réponses enregistré : un monitor DNS, ou un monitor de domaine avec son jeu NS. Une cible sans ensemble de réponses laisse la référence croisée inactive, et le résultat reste tel que mesuré. L’API et MCP n’acceptent que l’identifiant public du monitor, et le formulaire propose un sélecteur avec tous les monitors du projet.

Tous les types de checks