
dnsglobe v0.5.0
Controllore di propagazione DNS globale TUI — osserva un record DNS propagarsi attraverso 34 resolver pubblici in tutto il mondo, su una mappa mondiale nel tuo terminale
dnsglobe
Un controllo globale della propagazione DNS per il tuo terminale — una TUI in Rust che interroga 34 resolver DNS pubblici in tutto il mondo in parallelo, confronta le loro risposte e mostra la propagazione del tuo record su una mappa del mondo.

Pensa a dnschecker.org / whatsmydns.net, ma nel tuo terminale, con la modalità watch: avvii un controllo e riinterroga finché il record non si è propagato ovunque.
I resolver coprono le reti anycast globali (Google, Cloudflare, Quad9), il Nord America, l'Europa, la Russia, il Medio Oriente, l'Asia orientale e l'emisfero meridionale (Telstra AU, SafeSurfer NZ, UOL BR) — ciascuno interrogato direttamente, così vedi la visione attuale del record di ogni singolo server.
Ogni resolver viene interrogato direttamente (niente cache, EDNS0, fallback TCP per le risposte troncate), quindi ciò che vedi è la visione attuale del record di ogni singolo server. Le risposte che condividono un qualsiasi record vengono raggruppate — così il DNS round-robin (ogni resolver che mette in cache un sottoinsieme diverso di un pool di IP) conta come una risposta coerente, non venti in conflitto. L'indicatore di propagazione mostra quanti resolver sono nel gruppo di maggioranza; le eccezioni vengono contrassegnate con ≠ DIFFERS una volta che tutti i risultati sono arrivati.
La tabella entra in un terminale da 80 colonne: l'indirizzo IPv4 completo di ogni resolver, il tempo di andata e ritorno, il TTL e il conto alla rovescia della scadenza restano intatti, e il verdetto di ogni riga si riduce al glifo nel margine sinistro (✓ ≠ ! ↻ ∅ ✗) così la risposta mantiene lo spazio. Il conto alla rovescia è volutamente approssimativo — 45s, 4m, 2h, 1d — perché una colonna di secondi che scorrono fuori sincrono è rumore oltre il minuto.
Quando il terminale è abbastanza largo, a destra appare una vista del mondo con un punto per ogni resolver, colorato in base allo stato (verde concorda, magenta differisce, rosso errore, giallo in volo). La vista si adatta alla larghezza: i terminali con ≥157 colonne ottengono una mappa del mondo piatta, quelli più stretti (≥131 colonne) un globo 3D rotante, che richiede meno colonne; ridimensionare oltre la soglia trasforma l'una nell'altro. Ctrl+O alterna mappa/globo manualmente, e --view auto|map|globe (o view = "..." nel file di configurazione) impone uno stile direttamente.
A ogni resolver viene chiesto quale dei suoi siti ti sta rispondendo, tramite NSID (RFC 5001) — un'opzione EDNS che il nodo che risponde compila con il proprio nome (gpdns-yul, yul01, res721.qyul1, jfk-dns1-02.inet.centurylink.net). Non richiede alcun supporto per operatore, quindi anche i resolver che aggiungi tu possono segnalare un sito. Dove NSID non indica un luogo, subentrano le query di identificazione specifiche dell'operatore: Quad9 (TXT id.server.on.quad9.net), Cloudflare (CH TXT id.server), Google (subnet di uscita tramite TXT o-o.myaddr.l.google.com confrontata con TXT locations.publicdns.goog), OpenDNS (TXT debug.opendns.com), CleanBrowsing e Neustar UltraDNS. Il sito individuato appare nella colonna Loc con codici stile →YUL e il punto del resolver sulla mappa si sposta al POP che sta effettivamente servendo le tue query.
Utilizzo
Installa:
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
Esegui:
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
EDNS Client Subnet (ECS)
--ecs (o ecs = [...] nel file di configurazione) aggiunge un'opzione EDNS Client Subnet (RFC 7871) a ogni query, così le zone GeoDNS rispondono per quella rete client invece che per il punto di osservazione del resolver. Le subnet sono CIDR o IP puri; la maggior parte dei resolver pubblici usa al massimo /24 (IPv4) o /56 (IPv6). Con più subnet configurate, Ctrl+N cicla quella attiva (più una posizione off) e riinterroga immediatamente; --once esegue ogni subnet e termina con un riepilogo di convergenza per subnet. I resolver che ignorano deliberatamente ECS (Cloudflare, Quad9, …) sono contrassegnati con NO ECS — la loro risposta viene mostrata come riferimento ma esclusa dalla percentuale di propagazione, poiché descrive la loro posizione, non la rete sondata.
Tasti
| Tasto | Azione |
|---|---|
| tipo / ⌫ / Del | modifica il dominio |
| ←/→ / Home/End | sposta il cursore nel campo del dominio |
| Invio | avvia il controllo e osserva: riinterroga ogni 30 s finché la propagazione non raggiunge il 100% |
| Ctrl+R | interrompe o riprende l'osservazione |
| Tab / Shift-Tab | seleziona il tipo di record (A, AAAA, CNAME, MX, NS, TXT, SOA) e riinterroga |
| ↑/↓ / PgUp/PgDn | sposta l'evidenziazione nella tabella dei resolver (scorre per seguire) |
| + | aggiunge un resolver per questa sessione (nome, IP, posizione facoltativa e posizione sulla mappa) |
| Ctrl+X | rimuove il resolver evidenziato per questa sessione |
| Ctrl+S | cicla l'ordinamento della tabella: resolver / posizione / ping / stato / risposta |
| Ctrl+O | alterna la vista del mondo tra mappa piatta e globo rotante |
| Ctrl+N | cicla la subnet client ECS e riinterroga (solo quando --ecs/config ne configura una) |
| Ctrl+U | cancella il dominio |
| Esc / Ctrl+C | esci |
Configurazione
Facoltativamente, puoi aggiungere i tuoi resolver — o sostituire completamente l'elenco integrato — con un file di configurazione TOML in ~/.config/dnsglobe/config.toml ($XDG_CONFIG_HOME/dnsglobe/config.toml se impostato). Usa DNSGLOBE_CONFIG per un percorso diverso.
# 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"]
# World-view style: auto (default — pick by terminal width), map, or globe.
# The --view flag overrides this.
view = "auto"