
Vérificateur global de propagation DNS en TUI — observez la propagation d'un enregistrement DNS sur 34 résolveurs publics dans le monde, sur une carte du monde dans votre terminal
Un vérificateur global de propagation DNS pour votre terminal — une TUI Rust qui interroge 34 résolveurs DNS publics dans le monde en parallèle, compare leurs réponses et affiche la propagation de votre enregistrement sur une carte du monde.

Pensez à dnschecker.org / whatsmydns.net, mais dans votre terminal, avec le mode watch : lancez une vérification et il re-interroge jusqu'à ce que l'enregistrement se soit propagé partout.
Les résolveurs couvrent les réseaux anycast mondiaux (Google, Cloudflare, Quad9), l'Amérique du Nord, l'Europe, la Russie, le Moyen-Orient, l'Asie de l'Est et l'hémisphère sud (Telstra AU, SafeSurfer NZ, UOL BR) — chacun interrogé directement, afin que vous voyiez la vue actuelle propre à chaque serveur de l'enregistrement.
Chaque résolveur est interrogé directement (sans cache, EDNS0, repli TCP pour les
réponses tronquées), donc ce que vous voyez est la vue actuelle propre à chaque serveur de
l'enregistrement. Les réponses partageant un même enregistrement sont regroupées — ainsi, un DNS round-robin
(chaque résolveur mettant en cache un sous-ensemble différent d'un pool d'IP) compte comme une
réponse cohérente, et non vingt réponses contradictoires. La jauge de propagation indique
combien de résolveurs sont dans le groupe majoritaire ; les valeurs aberrantes sont signalées
≠ DIFFERS une fois tous les résultats reçus.
Le tableau tient dans un terminal de 80 colonnes : l'adresse IPv4 complète de chaque résolveur,
le temps de réponse, la TTL et le compte à rebours d'expiration restent intacts, et le
verdict de chaque ligne se réduit au glyphe dans la marge gauche (✓ ≠ ! ↻ ∅ ✗) pour que la réponse
garde la place. Le compte à rebours est volontairement approximatif — 45s, 4m, 2h, 1d
— car une colonne de secondes défilant en désordre est du bruit au-delà d'une minute.
Lorsque le terminal est assez large, une vue du monde apparaît à droite
avec un point par résolveur, coloré selon son état (vert = accord, magenta = différence,
rouge = erreur, jaune = en cours). La vue s'adapte à la largeur : les terminaux ≥157
colonnes obtiennent une carte du monde plate, les plus étroits (≥131 colonnes) un globe 3D
en rotation, qui nécessite moins de colonnes ; redimensionner au-delà du seuil transforme l'un
en l'autre. Ctrl+O permet de basculer manuellement entre carte et globe, et --view auto|map|globe
(ou view = "..." dans le fichier de configuration) impose un style directement.
Chaque résolveur est interrogé pour savoir quel site vous répond, via NSID
(RFC 5001) — une option EDNS que le nœud qui répond remplit avec son propre nom
(gpdns-yul, yul01, res721.qyul1, jfk-dns1-02.inet.centurylink.net).
Cela ne nécessite aucun support par opérateur, donc les résolveurs que vous ajoutez vous-même peuvent indiquer un
site. Lorsque NSID ne nomme aucun lieu, les requêtes d'identification spécifiques à l'opérateur
prennent le relais : Quad9 (TXT id.server.on.quad9.net), Cloudflare
(CH TXT id.server), Google (sous-réseau de sortie via
TXT o-o.myaddr.l.google.com mis en correspondance avec TXT locations.publicdns.goog),
OpenDNS (TXT debug.opendns.com), CleanBrowsing et Neustar UltraDNS. Le
site découvert s'affiche dans la colonne Loc sous forme de codes de style →YUL, et le
point du résolveur sur la carte se déplace vers le POP qui sert réellement vos requêtes.
Installation :
brew install 514-labs/tap/dnsglobe # Homebrew (macOS/Linux)
cargo install dnsglobe # from crates.io
yay -S dnsglobe # from archlinux aur (compile from source)
yay -S dnsglobe-bin # from archlinux aur (install prebuilt binary)
nix run github:514-labs/dnsglobe # Nix flakes (builds from source)
# or grab a prebuilt binary from the GitHub Releases page
Exécution :
dnsglobe # start empty, type a domain
dnsglobe example.com # query immediately and watch
dnsglobe example.com TXT # same, starting on TXT records
dnsglobe --once example.com TXT # no TUI: print results, exit (for scripts)
dnsglobe example.com --ecs 203.0.113.0/24 # see the zone as that client network does
dnsglobe --once example.com --ecs 203.0.113.0/24,198.51.100.0/24
# one table per subnet + a convergence summary
--ecs (ou ecs = [...] dans le fichier de configuration) ajoute une option EDNS Client Subnet
(RFC 7871) à chaque
requête, afin que les zones GeoDNS répondent pour ce réseau client au lieu du
point de vue du résolveur lui-même. Les sous-réseaux sont des CIDR ou des IP nues ; la plupart des résolveurs
publics utilisent au plus /24 (IPv4) ou /56 (IPv6). Avec plusieurs sous-réseaux
configurés, Ctrl+N fait défiler le sous-réseau actif (plus une position off) et
relance la requête immédiatement ; --once exécute chaque sous-réseau et se termine par un
récapitulatif de convergence par sous-réseau. Les résolveurs qui ignorent délibérément ECS
(Cloudflare, Quad9, …) sont marqués NO ECS — leur réponse est affichée à titre de
référence mais exclue du pourcentage de propagation, car elle décrit
leur propre emplacement, et non le réseau sondé.
| Key | Action |
|---|---|
| type / ⌫ / Del | modifier le domaine |
| ←/→ / Home/End | déplacer le curseur dans le champ du domaine |
| Enter | lancer la vérification et surveiller : re-interroge toutes les 30 s jusqu'à ce que la propagation atteigne 100 % |
| Ctrl+R | arrêter ou reprendre la surveillance |
| Tab / Shift-Tab | sélectionner le type d'enregistrement (A, AAAA, CNAME, MX, NS, TXT, SOA) et relancer la requête |
| ↑/↓ / PgUp/PgDn | déplacer la surbrillance dans le tableau des résolveurs (défilement automatique) |
| + | ajouter un résolveur pour cette session (nom, IP, emplacement et position sur la carte facultatifs) |
| Ctrl+X | supprimer le résolveur en surbrillance pour cette session |
| Ctrl+S | changer le tri du tableau : résolveur / emplacement / ping / statut / réponse |
| Ctrl+O | basculer la vue du monde entre carte plate et globe rotatif |
| Ctrl+N | faire défiler le sous-réseau client ECS et relancer la requête (uniquement si --ecs/la config en définit un) |
| Ctrl+U | effacer le domaine |
| Esc / Ctrl+C | quitter |
En option, ajoutez vos propres résolveurs — ou remplacez entièrement la liste intégrée —
avec un fichier de configuration TOML dans ~/.config/dnsglobe/config.toml
($XDG_CONFIG_HOME/dnsglobe/config.toml si défini). Définissez DNSGLOBE_CONFIG pour
utiliser un autre chemin.
# Set to true to replace the built-in list instead of extending it —
# e.g. to watch propagation across your own nameservers only.
replace = false
# EDNS Client Subnet(s) to query with (Ctrl+N cycles; --ecs overrides).
ecs = ["203.0.113.0/24"]