# Dig online via DoH: A, MX, TXT da rete mobile o restricted

> Test DNS over HTTPS online con 6 resolver selezionabili (Cloudflare, Google, AliDNS, dns.sb): query A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, PTR, SRV e confronto incrociato per scoprire risposte filtrate.

Strumento gratuito nel browser (nessun upload): https://www.mauriziofonte.it/strumenti/test-dns-https-online

Risoluzione DNS via **DNS over HTTPS** con **6 resolver selezionabili**: Cloudflare (standard, Security, Family), Google, AliDNS e dns.sb, con confronto incrociato in un click. Resolve **A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, PTR**. Output: Answer section parsata in tabella, JSON raw completo per debug e status code RFC 8484. La query parte direttamente dal browser verso Cloudflare: utile per verificare propagazione DNS, debug di SPF/DKIM/DMARC e troubleshooting MX da remoto, anche da rete mobile o restricted.

## Come fare un DoH query

1. **Inserisci dominio** - Senza schema (no `https://`), niente trailing slash, niente path. Es. `www.mauriziofonte.it`, `mail.google.com`. Per reverse PTR: inserisci `1.0.0.127.in-addr.arpa` (IPv4) o ARPA inverso (IPv6).
2. **Scegli il tipo record** - **A** (IPv4), **AAAA** (IPv6), **CNAME** (alias), **MX** (mail server), **TXT** (SPF/DKIM/DMARC/verifications), **NS** (nameservers), **SOA** (zone authority), **CAA** (cert authority), **PTR** (reverse). **ANY** non garantito (resolver moderni rifiutano per anti-amplification).
3. **Scegli la modalità e premi Interroga** - **Interroga** chiede un tipo di record al resolver scelto, **Profilo dominio** raccoglie tutti i record principali del dominio, **Confronta** pone la stessa domanda a tutti i resolver dell'elenco. Il risultato compare in una tabella con nome, tipo, TTL e valore.
4. **Leggi il JSON raw** - Sotto la tabella, JSON raw completo per debug. Campi rilevanti: `Status` (0 = OK, 2 = SERVFAIL, 3 = NXDOMAIN), `TC` (truncation), `RD` (recursion desired), `RA` (recursion available), `AD` (DNSSEC validated), `CD` (DNSSEC checking disabled).

## DNS over HTTPS, in pratica

**DoH vs DNS classico.** DNS over HTTPS (RFC 8484) è DNS incapsulato in HTTPS sulla porta 443, indistinguibile dal normale traffico web in transito. Vantaggi: privacy (le query DNS in chiaro su UDP/53 sono ispezionabili dal provider e dagli intermediari di rete), aggiramento del DNS hijacking tipico di reti pubbliche WiFi, bypass di censura DNS-based (l'ispezione richiede DPI più costoso). Costi: latenza in più nell'ordine di 10-30 ms rispetto a UDP/53, e una concentrazione di traffico verso pochi endpoint pubblici (1.1.1.1, 8.8.8.8, 9.9.9.9).

**Endpoint Cloudflare in JSON.** Il tool interroga `cloudflare-dns.com/dns-query` con `Accept: application/dns-json`, il formato REST pubblico di Cloudflare. La risposta è un JSON già strutturato con Status, Answer, Authority, Additional, leggibile senza dover decodificare il formato binario wire di RFC 1035.

**Casi d'uso operativi.** Verifica della propagazione DNS dopo un cambio (TTL expire monitoring), debug dei record TXT per SPF/DKIM/DMARC prima di abilitare l'email auth, verifica degli MX per troubleshooting di delivery email, ispezione DNSSEC tramite il flag `AD`. Funziona dal browser senza installare strumenti CLI: comodo per debug rapido da mobile o da reti dove `dig` non è disponibile.

 Se la domanda non è "cosa risponde questo resolver" ma "il mio cambio DNS è finito", serve il piano autoritativo: quello lo copre la [verifica della propagazione DNS](/strumenti/verifica-propagazione-dns), che interroga direttamente i nameserver della zona e, oltre a mostrare ogni divergenza, la classifica.

## Glossario

- **DoH**: DNS over HTTPS, RFC 8484. DNS incapsulato in HTTPS port 443. Endpoint pubblici: Cloudflare cloudflare-dns.com/dns-query, Google dns.google/dns-query, Quad9 dns.quad9.net/dns-query.
- **DoT**: DNS over TLS, RFC 7858. DNS in TLS port 853. Alternativa a DoH, più efficiente (no HTTP overhead) ma identificabile da firewall (port dedicata). Implementato da systemd-resolved, Android 9+, AdGuard, Pi-hole.
- **TTL**: Time To Live in secondi. Tempo che un record DNS resta cachato dai resolver downstream. Tipici: 300 (5 min) per record dynamic, 3600 (1h) per stable, 86400 (24h) per zone authoritative.
- **DNSSEC**: DNS Security Extensions: signing crittografico dei record DNS per prevenire spoofing. Cloudflare valida DNSSEC by default (campo `AD` = true se la zona è DNSSEC-signed e validata).
- **Authoritative server**: Server DNS che ha la copia originale (zone file) per un dominio. Distinto da resolver caching (1.1.1.1, 8.8.8.8) che chiedono agli authoritative e cachano. Authoritative dichiarati in NS records.
- **ANY query**: Query DNS che chiede tutti i record types per un dominio. Deprecato (RFC 8482) per anti-amplification (ANY response può essere 100x size della query, abusato in DDoS). Cloudflare risponde con `HINFO` placeholder.

## Domande frequenti

### Posso usare un endpoint diverso da Cloudflare?

Sì, dalla UI: il selettore Resolver offre 6 endpoint DoH (Cloudflare 1.1.1.1, Cloudflare Security 1.1.1.2, Cloudflare Family 1.1.1.3, Google 8.8.8.8, AliDNS 223.5.5.5, dns.sb) e il bottone **Confronta tutti i resolver** interroga tutti e 6 in parallelo, evidenziando le risposte assenti o filtrate (utile per capire se un dominio è bloccato da un filtro DNS). Il link condivisibile conserva dominio, tipo di record e resolver scelto.

### C'è un rate limit?

L'endpoint pubblico Cloudflare ha rate limit indicativo nell'ordine di 1000 richieste/ora per IP. Per debug occasionale (decine di query) è ampiamente sufficiente. Per monitoring continuo, l'approccio corretto è un resolver self-hosted (CoreDNS, Pi-hole, Unbound) con backoff e cache, non interrogare un endpoint pubblico.

### I dati sono privati?

La query passa da Cloudflare (politica privacy: log query 24h, no IP storage permanente, no sale a terze parti, dichiarato in [blog post 2018](https://blog.cloudflare.com/announcing-1111)). Il browser invia HTTPS, il sito di hosting (mauriziofonte.it) NON vede la query (è una fetch cross-origin diretta dal browser a Cloudflare).

### Differenza vs `dig @1.1.1.1 example.com`?

Equivalenti. `dig` usa UDP port 53 plain-text, questo tool usa HTTPS port 443 cifrato. Output identico (Answer section). Vantaggio del tool: funziona dal browser senza installare nulla, comodo da mobile.

### Posso fare query reverse PTR?

Sì, usa il formato `1.0.0.127.in-addr.arpa` (IPv4 reverse) o nibble-ARPA per IPv6, type PTR. Es. per IP `8.8.8.8`: `8.8.8.8.in-addr.arpa` (4 octet inversi + suffix).

### Gestisce CAA records?

Sì. CAA (RFC 8659) controlla quali CA possono emettere certificati per un dominio. Esempio: `letsencrypt.org` ha CAA che ammettono solo Let's Encrypt. Se cambi CA, ricorda di aggiornare il CAA prima del nuovo issue.

### Risposta in formato wire (DNS classic) è supportata?

No, solo JSON. Per wire format (RFC 1035 binary) cambia `Accept` in `application/dns-message` e la risposta è `application/dns-message` binaria, da parsare manualmente. Tool come `dnscrypt-proxy` lo fanno; questo tester resta sul JSON-friendly subset.

---
Uno strumento di Maurizio Fonte, senior backend engineer. Tutti gli strumenti: https://www.mauriziofonte.it/strumenti/
