Il DNS (Domain Name System) è il sistema fondamentale su cui si basa l’intero internet moderno. Non è semplicemente una “rubrica telefonica”, ma un database complesso e distribuito che traduce i nomi leggibili dagli esseri umani (ad esempio, google.com) in identificatori tecnici come indirizzi IP, server di posta, politiche di sicurezza e persino coordinate geografiche. Una configurazione DNS errata è una delle cause più frequenti di indisponibilità dei siti web, problemi di consegna della posta e vulnerabilità della sicurezza.
Questa guida combina tutti gli aspetti del DNS: dai record di base utilizzati quotidianamente ai meccanismi complessi come DNSSEC e DANE. Esamineremo ogni tipo di record, il suo scopo, la sintassi, esempi pratici, errori comuni, comandi per la diagnosi e modelli pronti per la distribuzione. Le informazioni sono strutturate in modo da poter utilizzare questo materiale come libro di testo, riferimento per l’amministratore e checklist per gli ambienti di produzione.
- 1. Terminologia
- 2. Analisi dettagliata di tutti i tipi di record
- A — Record di indirizzo (IPv4)
- AAAA — Record di indirizzo IPv6
- CNAME — Record di nome canonico
- MX — Record di scambio di posta
- TXT — Record di testo
- NS — Record del server dei nomi
- SOA — Record di inizio autorità
- PTR — Record puntatore (DNS inverso)
- SRV — Record di servizio
- CAA — Autorizzazione dell’autorità di certificazione
- NAPTR — Record puntatore dell’autorità dei nomi
- TLSA — Record di associazione certificato TLSA (DANE)
- Record DNSSEC (DNSKEY, DS, RRSIG, NSEC, NSEC3)
- SSHFP — Impronta digitale della chiave pubblica SSH
- Record rari e di servizio
- 3. Raccomandazioni pratiche e sfumature di configurazione
- 4. Modelli completi di file di zona (stile BIND)
- 5. Configurazione passo-passo del dominio di posta (PTR, SPF, DKIM, DMARC)
- 6. Comandi per la verifica e il debug DNS
- 7. Sicurezza e best practice
- 8. Errori comuni e come evitarli
- 9. Checklist prima del rilascio in produzione o migrazione
- 10. Esempi aggiuntivi e spiegazioni dei campi
- 11. Scenari utili
- 12. JSON pronto per l’importazione nel pannello del provider
1. Terminologia
Prima di approfondire i tipi di record, è fondamentale comprendere i termini chiave utilizzati nel DNS. Questo stabilisce una base linguistica comune e aiuta a evitare confusione.
- DNS (Domain Name System): Il Sistema dei Nomi di Dominio. Un database distribuito globale che traduce i nomi di dominio in indirizzi IP e altre informazioni correlate.
- Nome di dominio (Domain Name): Un indirizzo leggibile dall’uomo su internet, ad esempio,
example.com. È composto da etichette separate da punti. - FQDN (Fully Qualified Domain Name): Un nome di dominio completo che identifica in modo univoco un nodo nella gerarchia DNS. Termina sempre con un punto che denota la radice DNS (ad esempio,
www.example.com.). - Zona (Zone): Un’unità amministrativa nel DNS. Una porzione dello spazio dei nomi gestita da un server autorevole (o un gruppo di server). Di solito corrisponde a un dominio o sottodominio.
- File di zona (Zone File): Un file di testo memorizzato su un server DNS che contiene tutti i record per una zona specifica. Utilizza la sintassi definita dallo standard BIND.
- Record (Resource Record, RR): L’unità di base dei dati nel DNS. Ogni record ha un tipo, un nome, un valore e un TTL.
- Tipo di record (Record Type): Definisce quali informazioni contiene il record (ad esempio,
A,MX,TXT). Ogni tipo corrisponde a un codice numerico univoco (ad esempio, 1 perA, 15 perMX). - TTL (Time To Live): La durata della vita del record, specificata in secondi. Determina per quanto tempo i resolver e altri server DNS possono memorizzare nella cache il record prima di richiederlo nuovamente al server autorevole.
- Resolver: Un client o server DNS che riceve una richiesta da un’applicazione (ad esempio, un browser) ed esegue le query necessarie per ottenere una risposta. Può essere ricorsivo (esegue l’intera catena di query) o non ricorsivo.
- Server autorevole (Authoritative Server): Un server DNS che memorizza i record originali per una zona specifica ed è responsabile di essi. Risponde alle query utilizzando i dati del file di zona.
- Server ricorsivo (Recursive Server): Un server che riceve una richiesta da un client e, se non ha la risposta nella sua cache, esegue una catena di query, a partire dai server radice, per trovare il server autorevole e ottenere la risposta.
- Server radice (Root Server): Uno dei 13 gruppi di server (indicati con le lettere da
a.root-servers.net.am.root-servers.net.) che sono il punto di partenza per risolvere qualsiasi nome di dominio. Sanno dove si trovano i server per i domini di primo livello (TLD). - TLD (Top-Level Domain): Un dominio di primo livello. L’ultima parte di un nome di dominio (ad esempio,
.com,.org,.ru,.io). - Registrar: L’azienda attraverso la quale vengono registrati i nomi di dominio. Gestisce le informazioni di delega (quali server NS servono il dominio) nella zona genitore (ad esempio, nella zona
.comper il dominioexample.com). - Registrante (Registrant): Il proprietario del nome di dominio.
- Delega (Delegation): Il processo di trasferimento del controllo di un sottodominio (o dominio) dalla zona genitore a quella figlia. Viene realizzato utilizzando record
NSnella zona genitore. - Record Glue (Glue Record): Un record
AoAAAApubblicato dal registrar per un server dei nomi il cui nome di dominio si trova all’interno della zona delegata. Necessario per rompere una dipendenza circolare. - SOA (Start of Authority): Un record che contiene informazioni amministrative sulla zona, inclusi il server primario, il contatto dell’amministratore e i parametri che controllano il trasferimento della zona ai server secondari.
- Numero di serie (Serial Number): Un campo nel record
SOAche indica la versione della zona. I server secondari lo utilizzano per determinare se è necessario un aggiornamento. - Risoluzione diretta (Forward Resolution): Il processo di conversione di un nome di dominio in un indirizzo IP (ad esempio,
example.com→192.0.2.1). - Risoluzione inversa (Reverse Resolution): Il processo di conversione di un indirizzo IP in un nome di dominio (ad esempio,
192.0.2.1→example.com). Gestito attraverso le zonein-addr.arpa(per IPv4) eip6.arpa(per IPv6). - Cache: Un’archiviazione temporanea per i record DNS su un resolver o un server DNS per accelerare le richieste successive.
- Memorizzazione nella cache (Caching): Il processo di salvataggio dei record DNS in una cache.
- Memorizzazione nella cache negativa (Negative Caching): Memorizzazione nella cache delle informazioni che il record richiesto non esiste.
- RFC (Request for Comments): Un documento ufficiale che descrive standard, protocolli e procedure su internet. Tutti gli aspetti principali del DNS sono descritti in una serie di RFC.
- BIND (Berkeley Internet Name Domain): L’implementazione più comune di un server DNS. La sintassi dei suoi file di zona è diventata lo standard de facto.
- MTA (Mail Transfer Agent): Un server di posta responsabile del trasferimento delle email (ad esempio, Postfix, Exim, Sendmail).
- FCrDNS (Forward-Confirmed Reverse DNS): Un meccanismo di verifica in cui un indirizzo IP ha un record
PTRche si risolve in un nome di dominio, e quel nome di dominio, a sua volta, ha un recordAche punta all’indirizzo IP originale. Critico per la reputazione del server di posta. - DNSSEC (Domain Name System Security Extensions): Un insieme di estensioni che aggiungono firme crittografiche ai record DNS per garantirne autenticità e integrità.
- DANE (DNS-based Authentication of Named Entities): Uno standard che consente di collegare i certificati TLS ai nomi DNS utilizzando record
TLSA. Richiede che DNSSEC sia abilitato. - CAA (Certification Authority Authorization): Un meccanismo che consente al proprietario di un dominio di specificare quali autorità di certificazione (CA) sono autorizzate a emettere certificati per esso.
- SPF (Sender Policy Framework): Un meccanismo che consente al proprietario di un dominio di specificare quali server sono autorizzati a inviare posta a suo nome.
- DKIM (DomainKeys Identified Mail): Un meccanismo che consente di firmare digitalmente le email in uscita, firma che il destinatario può verificare utilizzando una chiave pubblica pubblicata nel DNS.
- DMARC (Domain-based Message Authentication, Reporting & Conformance): Una politica che definisce come i server di posta devono gestire le email che non superano i controlli SPF o DKIM e configura l’invio di rapporti al proprietario del dominio.
- ALIAS / ANAME: Tipi di record non standard offerti da alcuni provider DNS. Consentono di creare alias per il dominio radice (apex), cosa impossibile con un
CNAMEstandard. - CNAME Flattening: Una tecnologia utilizzata da alcuni provider DNS. Quando un
CNAMEviene interrogato per un dominio apex, il server risolve automaticamente la catenaCNAMEe restituisce i recordA/AAAAfinali al client, evitando la violazione della RFC.
2. Analisi dettagliata di tutti i tipi di record
Tutti gli esempi sono forniti nel formato di file di zona stile BIND. I nomi che terminano con un punto (ad esempio, example.com.) sono FQDN. Il TTL (Time To Live) è specificato in secondi e determina per quanto tempo il record può essere memorizzato nella cache dai resolver.
A — Record di indirizzo (IPv4)
- Scopo: Collega un nome di dominio a un indirizzo IPv4 a 32 bit. Il record più basilare e frequentemente utilizzato.
- Formato:
nome TTL IN A indirizzo-IPv4 - Esempio:
example.com. 3600 IN A 192.0.2.1 www.example.com. 3600 IN A 192.0.2.1 - Quando utilizzato: Per specificare l’indirizzo IP di un server web, API, server di gioco o qualsiasi altro servizio accessibile tramite IPv4.
- Verifica:
dig +short example.com A - Migliori pratiche:
- L’utilizzo di un record
Aper il dominio radice (apex,@) è una pratica standard e corretta. - Scegliere il TTL in base alla stabilità dell’indirizzo IP. Per indirizzi stabili — 3600 (1 ora) o 86400 (1 giorno). Prima della migrazione — ridurre a 300 (5 minuti).
- L’utilizzo di un record
AAAA — Record di indirizzo IPv6
- Scopo: Analogico al record
A, ma per indirizzi IPv6 a 128 bit. Criticamente importante per il futuro di internet. - Formato:
nome TTL IN AAAA indirizzo-IPv6 - Esempio:
example.com. 3600 IN AAAA 2001:db8::1 - Quando utilizzato: Per garantire la disponibilità del servizio tramite il protocollo IPv6.
- Verifica:
dig +short example.com AAAA
CNAME — Record di nome canonico
- Scopo: Crea un alias per un nome di dominio. Qualsiasi richiesta a un CNAME viene automaticamente convertita in una richiesta al suo nome di destinazione (canonico).
- Formato:
nome TTL IN CNAME destinazione. - Esempio:
www.example.com. 3600 IN CNAME example.com. blog.example.com. 3600 IN CNAME blog-hosting.example.net. - Restrizioni importanti:
- Conflitto di record: Non è possibile avere un
CNAMEe qualsiasi altro record (A,MX,TXT, ecc.) per lo stesso nome. Questa è una violazione della RFC. - Dominio Apex: Lo standard RFC vieta l’uso di
CNAMEper il dominio radice (ad esempio,example.com.) perché contiene già recordNSeSOA. Per risolvere questo problema, i provider DNS (Cloudflare, AWS Route 53) offrono estensioni non standard:ALIASoANAME, che risolvono l’alias in recordA/AAAAal volo.
- Conflitto di record: Non è possibile avere un
- Applicazione pratica: Connessione a un CDN (fare di
wwwun CNAME all’indirizzo del CDN), utilizzo di piattaforme SaaS (blog, negozio). - Verifica:
dig +short www.example.com CNAME
MX — Record di scambio di posta
- Scopo: Specifica i server che accettano la posta in entrata per il dominio. Il record contiene una priorità: più piccolo è il numero, più alta è la priorità.
- Formato:
nome TTL IN MX priorità server_di_posta. - Esempio:
example.com. 3600 IN MX 10 mail1.example.com. example.com. 3600 IN MX 20 mail2.example.com.- La posta verrà prima inviata a
mail1.example.com.. Se non è disponibile, l’MTA (Mail Transfer Agent) proveràmail2.example.com..
- La posta verrà prima inviata a
- Requisiti chiave:
- Il server di posta (
mail1.example.com.) deve avere il proprio recordAoAAAA. - Un record
PTRdeve essere configurato per l’indirizzo IP del server di posta, e deve corrispondere al nome del server specificato inMX. Questo è critico per la reputazione del server e la consegna della posta.
- Il server di posta (
- Verifica:
dig +short example.com MX
TXT — Record di testo
- Scopo: Memorizza dati di testo arbitrari. Ampiamente utilizzato per le politiche di sicurezza della posta elettronica (SPF, DKIM, DMARC), la verifica della proprietà del dominio (Google, Microsoft, Yandex) e altri scopi.
- Formato:
nome TTL IN TXT "testo" - Esempi:
- SPF (Sender Policy Framework): Definisce quali server sono autorizzati a inviare posta a nome del dominio.
example.com. 3600 IN TXT "v=spf1 ip4:192.0.2.0/24 include:_spf.google.com ~all"ip4:192.0.2.0/24— consente l’intera sottorete.include:_spf.google.com— include le regole della zona di Google (per Gmail).~all— “fallimento morbido” per tutti gli altri (softfail).-all— fallimento rigoroso (fail).
- DKIM (DomainKeys Identified Mail): Pubblica la chiave pubblica per verificare la firma digitale aggiunta alle email in uscita. Generalmente creato per un sottodominio come
selettore._domainkey.dominio.default._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQ..."v=DKIM1— versione.k=rsa— tipo di chiave.p=...— la chiave pubblica stessa in formato base64.
- DMARC (Domain-based Message Authentication, Reporting & Conformance): Imposta la politica per gestire le email che non superano i controlli SPF o DKIM e configura l’invio di rapporti.
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:forensics@example.com; pct=100"p=reject— rifiutare le email che non superano la verifica.rua=mailto:...— indirizzo per i rapporti aggregati.ruf=mailto:...— indirizzo per i rapporti forensi (fallimenti specifici).pct=100— applicare la politica al 100% delle email.
- Verifica:
example.com. 3600 IN TXT "google-site-verification=abc123..."
- SPF (Sender Policy Framework): Definisce quali server sono autorizzati a inviare posta a nome del dominio.
- Note:
- Se una stringa di testo è più lunga di 255 byte, può essere divisa in più parti nel file di zona, con ogni parte racchiusa tra virgolette. Il server DNS le concatenerà automaticamente.
example.com. IN TXT ("v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; " "pct=100; fo=1")
- Se una stringa di testo è più lunga di 255 byte, può essere divisa in più parti nel file di zona, con ogni parte racchiusa tra virgolette. Il server DNS le concatenerà automaticamente.
- Verifica:
dig +short example.com TXT
NS — Record del server dei nomi
- Scopo: Specifica i server DNS che sono autorevoli per la zona. Questi record sono la base per delegare la gestione del dominio.
- Formato:
nome TTL IN NS nome_del_server. - Esempio:
example.com. 3600 IN NS ns1.example.net. example.com. 3600 IN NS ns2.example.net. - Punti importanti:
- I record
NSnella zona devono corrispondere esattamente ai server dei nomi specificati con il registrar del dominio. - Record Glue: Se il server dei nomi (ad esempio,
ns1.example.com.) si trova all’interno della stessa zona che serve (example.com.), si verifica una dipendenza circolare. Per romperla, aggiungere record “glue” — recordAoAAAAper questi server dei nomi — con il registrar.
- I record
- Verifica:
dig +short example.com NS
SOA — Record di inizio autorità
- Scopo: Il record amministrativo principale di una zona DNS. Contiene informazioni sul server primario, l’amministratore e i parametri che controllano la sincronizzazione tra il server primario e quelli secondari.
- Formato:
nome TTL IN SOA server_primario. email_amministratore. ( numero_di_serie ; Serial intervallo_di_aggiornamento ; Refresh intervallo_di_ritentativo ; Retry tempo_di_scadenza ; Expire ttl_minimo ) ; Minimum TTL - Esempio:
example.com. 3600 IN SOA ns1.example.net. admin.example.com. ( 2025092201 ; Serial (YYYYMMDDNN) 7200 ; Refresh (2 ore) 3600 ; Retry (1 ora) 1209600 ; Expire (14 giorni) 86400 ) ; Minimum TTL (1 giorno) - Spiegazioni dei campi:
Serial: Versione della zona. È estremamente importante incrementare questo numero ad ogni modifica della zona. I server secondari confrontano il loroSerialcon ilSerialsul server primario e, se è più piccolo, richiedono un aggiornamento. Formato consigliato:YYYYMMDDNN(anno, mese, giorno, numero di revisione del giorno).Refresh: Intervallo (in secondi) dopo il quale i server secondari devono verificare il server primario per gli aggiornamenti.Retry: Intervallo dopo il quale un server secondario deve riprovare se il primo tentativo di aggiornamento fallisce.Expire: Tempo (in secondi) dopo il quale un server secondario smetterà di rispondere alle query se non può contattare il server primario. La zona è considerata “scaduta”.Minimum TTL: Inizialmente impostava il TTL minimo per tutti i record nella zona. Ora spesso utilizzato come TTL per la memorizzazione nella cache negativa (per quanto tempo memorizzare nella cache una risposta “record non trovato”).
- Verifica:
dig +short example.com SOA
PTR — Record puntatore (DNS inverso)
- Scopo: Fornisce risoluzione inversa — converte un indirizzo IP in un nome di dominio. Gestito dal proprietario dell’indirizzo IP (ISP, provider di hosting), non dal proprietario del dominio.
- Formato per IPv4: L’indirizzo IP è scritto in ordine inverso, e viene aggiunto il suffisso
.in-addr.arpa..- IP
192.0.2.5→5.2.0.192.in-addr.arpa.
- IP
- Formato per IPv6: Ogni parte di 4 bit (nibble) dell’indirizzo è scritta in ordine inverso, e viene aggiunto il suffisso
.ip6.arpa..- IPv6
2001:db8::1→1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
- IPv6
- Esempio (IPv4):
5.2.0.192.in-addr.arpa. 3600 IN PTR mail.example.com. - Significato pratico: Criticamente importante per i server di posta. La maggior parte dei sistemi di posta verifica che il record PTR per l’indirizzo IP del mittente corrisponda al nome che il server presenta nel comando
HELO/EHLO. Una discrepanza è una ragione frequente per cui le email vengono contrassegnate come spam. - Verifica:
dig -x 192.0.2.5 +shortohost 192.0.2.5
SRV — Record di servizio
- Scopo: Specifica la posizione dei server per servizi specifici, inclusi protocollo e porta. Consente ai client di trovare automaticamente il server necessario.
- Formato del nome:
_servizio._protocollo.dominio.- Servizio:
sip,xmpp-server,_minecraft, ecc. - Protocollo:
tcp,udp.
- Servizio:
- Formato del record:
nome TTL IN SRV priorità peso porta destinazione. - Esempio:
_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sipserver.example.com. _minecraft._tcp.example.com. 3600 IN SRV 5 0 25565 mc1.example.com. - Spiegazioni dei campi:
Priority(Priorità): Più piccolo è il numero, più alta è la priorità. Il client proverà prima a connettersi al server con la priorità più bassa.Weight(Peso): Utilizzato per il bilanciamento del carico tra server con la stessa priorità. La probabilità di selezionare un server è proporzionale al suo peso. Se tutti i pesi sono uguali, la selezione è casuale.Port(Porta): La porta su cui il servizio è in esecuzione.Target(Destinazione): Il FQDN del server a cui deve essere diretta la richiesta. Questo server deve avere un recordAoAAAA.
- Applicazione: VoIP (SIP), messaggistica istantanea (XMPP), giochi (Minecraft), directory (LDAP).
- Verifica:
dig +short _sip._tcp.example.com SRV
CAA — Autorizzazione dell’autorità di certificazione
- Scopo: Consente al proprietario del dominio di specificare quali autorità di certificazione (CA) sono autorizzate a emettere certificati SSL/TLS per questo dominio. Questo è un meccanismo di sicurezza importante per prevenire l’emissione non autorizzata di certificati.
- Formato:
nome TTL IN CAA flag tag valore - Esempio:
example.com. 3600 IN CAA 0 issue "letsencrypt.org" example.com. 3600 IN CAA 0 iodef "mailto:security@example.com" - Spiegazioni:
Flags: Generalmente0. Il flag128(critico) significa che una CA che non comprende questo tag deve rifiutare di emettere il certificato.Tags:issue: Consente alla CA specificata di emettere certificati. Un valore vuoto (;) vieta l’emissione da parte di chiunque.issuewild: Consente l’emissione di certificati wildcard (*.example.com).iodef: URL (generalmentemailto:ohttp(s):) per inviare rapporti sui tentativi di violazione della politica CAA.
- Verifica:
dig +short example.com CAA
NAPTR — Record puntatore dell’autorità dei nomi
- Scopo: Utilizzato per regole complesse di riscrittura di nomi e URI. Più spesso applicato nei sistemi di telecomunicazione (ENUM per convertire i numeri di telefono in URI SIP) e per la scoperta dinamica dei servizi.
- Formato:
nome TTL IN NAPTR ordine preferenza flag servizio espressione_regolare sostituzione. - Esempio (semplificato per ENUM):
4.3.2.1.5.5.5.1.e164.arpa. IN NAPTR 100 10 "U" "E2U+sip" "!^.*$!sip:info@example.com!" . - Spiegazioni:
Order(Ordine): Elaborato dal più piccolo al più grande.Preference(Preferenza): Analogico alweightinSRVper record con lo stessoorder.Flags:Usignifica che il risultato è un URI (ad esempio,sip:).Service: Tipo di servizio (ad esempio,E2U+sip— conversione in URI SIP).Regexp: Espressione regolare per trasformare la stringa di input.Replacement: Alternativa all’espressione regolare (generalmente vuota se si usaregexp).
- Applicazione: Scenari di routing complessi in VoIP, ENUM.
TLSA — Record di associazione certificato TLSA (DANE)
- Scopo: Collega un certificato TLS (o parte di esso) a un nome DNS utilizzando un record DNS. Questo fa parte dello standard DANE (Autenticazione Basata su DNS di Entità Nominate). Richiede che DNSSEC sia abilitato per garantire la fiducia; altrimenti, il record può essere falsificato.
- Formato del nome:
_porta._protocollo.nome. - Formato del record:
nome TTL IN TLSA utilizzo selettore tipo_di_corrispondenza dati - Esempio:
_443._tcp.www.example.com. 3600 IN TLSA 3 1 1 d2abde...f21 - Spiegazioni dei campi:
Usage(Utilizzo):3(DANE-EE): Certificato entità finale. Il più comune.1(PKIX-EE): Certificato entità finale, deve essere firmato da una CA attendibile.2(DANE-TA): Certificato dell’autorità di certificazione attendibile.0(PKIX-TA): Certificato CA, deve essere nella catena di fiducia.
Selector(Selettore):0: Certificato completo.1: Solo la chiave pubblica del certificato.
Matching Type(Tipo di corrispondenza):0: Dati esatti (non utilizzato).1: Hash SHA-256.2: Hash SHA-512.
Data: Hash del certificato o della sua chiave pubblica in formato esadecimale.
- Applicazione: Miglioramento della sicurezza TLS, specialmente negli ambienti in cui non ci si può fidare delle CA pubbliche.
- Verifica:
dig +short _443._tcp.www.example.com. TLSA
Record DNSSEC (DNSKEY, DS, RRSIG, NSEC, NSEC3)
DNSSEC (Estensioni di Sicurezza del Sistema dei Nomi di Dominio) è un insieme di estensioni che aggiungono firme crittografiche ai record DNS per proteggere contro la falsificazione (spoofing) e gli attacchi di avvelenamento della cache.
- Principio generale: La zona è firmata con una chiave privata. La chiave pubblica è pubblicata in un record
DNSKEY. Per creare una catena di fiducia, l’hash di questa chiave (DSrecord) è pubblicato nella zona genitore (ad esempio, perexample.com— nella zona.com). I client che supportano DNSSEC possono verificare la firma (RRSIG) di ogni record utilizzando la chiave pubblica e assicurarsi della sua autenticità. DNSKEY: La chiave pubblica della zona.- Esempio:
example.com. 3600 IN DNSKEY 257 3 13 AwEAAa3d...9QAB257— flag (257 = KSK, 256 = ZSK).3— protocollo (sempre 3).13— algoritmo (13 = ECDSA/SHA256).- Ultimo campo — chiave in base64.
- Esempio:
DS(Delegation Signer): Hash della chiave pubblica (DNSKEY) della zona figlia, pubblicato nella zona genitore per creare una catena di fiducia.- Esempio:
example.com. 3600 IN DS 54517 13 2 84C8...D34F54517— Key Tag (identificatore chiave).13— Algoritmo.2— Tipo di digest (SHA-256).- Ultimo campo — hash in esadecimale.
- Esempio:
RRSIG(Resource Record Signature): Firma digitale per un insieme di record DNS.- Esempio (firma per record
A):example.com. 3600 IN RRSIG A 13 2 3600 20251001000000 20250901000000 54517 example.com. oNvL...7Q==A— tipo di record firmati.13— algoritmo.2— numero di etichette nel nome.3600— TTL originale.20251001000000— tempo di scadenza della firma.20250901000000— tempo di inizio della firma.54517— Key Tag della chiave di firma.example.com.— nome del firmatario.- Ultimo campo — firma in base64.
- Esempio (firma per record
NSEC/NSEC3: Utilizzati per autenticare risposte negative (prova che un record con tale nome o tipo non esiste).NSEC3applica inoltre l’hash ai nomi per proteggere contro le “passeggiate di zona”.- Abilitazione di DNSSEC: Questo è un processo separato e complesso:
- Generare coppie di chiavi (KSK e ZSK) sul server DNS.
- Pubblicare record
DNSKEYnella zona. - Generare un record
DSdal KSK. - Pubblicare il record
DScon il registrar del dominio (nella zona genitore). - Abilitare la firma della zona sul server DNS (generazione automatica di
RRSIG,NSEC/NSEC3). - Testare utilizzando
dig +dnssece strumenti online (ad esempio, Verisign DNSSEC Debugger).
- Verifica:
dig +dnssec example.com A(mostreràRRSIGper il recordAse DNSSEC è abilitato e funzionante).dig +short example.com DNSKEYdig +short example.com DS
SSHFP — Impronta digitale della chiave pubblica SSH
- Scopo: Pubblica l’hash (impronta digitale) della chiave SSH dell’host nel DNS. I client SSH possono utilizzare questo record per verificare automaticamente l’autenticità del server al primo collegamento, prevenendo gli attacchi “man-in-the-middle” (MITM). Si consiglia di utilizzarlo con DNSSEC per garantire l’autenticità del record.
- Formato:
nome TTL IN SSHFP algoritmo tipo_di_digest impronta_digitale - Esempio:
example.com. 3600 IN SSHFP 4 2 356a192b7913b04c54574d18c28d46e6395428ab - Spiegazioni:
Algorithm(Algoritmo):1— RSA2— DSA3— ECDSA4— ED25519
Digest Type(Tipo di digest):1— SHA-12— SHA-256
Fingerprint: Hash della chiave pubblica in formato esadecimale.
- Generazione: Sul server, è possibile generare il record con il comando:
ssh-keygen -r example.com - Verifica:
dig +short example.com SSHFP
Record rari e di servizio
HINFO(Informazioni sull’host): Memorizza informazioni sul tipo di CPU e sistema operativo dell’host. Non consigliato per l’uso poiché rivela informazioni potenzialmente sensibili sul sistema.- Esempio:
server1.example.com. 3600 IN HINFO "Intel Xeon" "Ubuntu 22.04"
- Esempio:
LOC(Posizione): Memorizza le coordinate geografiche (latitudine, longitudine, altitudine) dell’host.- Esempio:
example.com. 3600 IN LOC 55 45 21.000 N 37 37 03.000 E 15m
- Esempio:
RP(Persona responsabile): Specifica la persona di contatto responsabile della zona. L’email è specificata nel formato hostname (punto invece di@).- Esempio:
example.com. 3600 IN RP admin.example.com. txt-record.example.com.
- Esempio:
SPF(obsoleto): Esisteva precedentemente come tipo di record separato ma ora è completamente sostituito daTXT. Non deve essere utilizzato.- Esempio (non utilizzare):
example.com. IN SPF "v=spf1 ..."
- Esempio (non utilizzare):
3. Raccomandazioni pratiche e sfumature di configurazione
- Gestione del TTL:
- Valore standard: 3600 secondi (1 ora) — un buon equilibrio tra prestazioni (cache) e flessibilità.
- Prima della migrazione: Ridurre il TTL per i record pertinenti (ad esempio,
A/AAAAper il proprio sito web) a 300 secondi (5 minuti) 24-72 ore prima del cambiamento previsto. Questo riduce il tempo di propagazione dei cambiamenti. - Dopo la migrazione: Una volta che i cambiamenti si sono stabilizzati, aumentare il TTL a un valore ottimale (ad esempio, 3600 o 86400) per ridurre il carico sui server DNS.
- SOA Serial:
- Incrementare sempre il numero di serie dopo ogni modifica della zona. Se non lo si fa, i server secondari non saranno informati degli aggiornamenti.
- Formato consigliato:
YYYYMMDDNN(ad esempio,2024051701). Questo è chiaro e consente di tenere traccia facilmente di quando è stata effettuata l’ultima modifica.
- CNAME su Apex (Dominio radice):
- Problema: Lo standard RFC vieta
CNAMEsul dominio apex (ad esempio,example.com.) perché entra in conflitto con altri record obbligatori (NS,SOA). - Soluzione: Utilizzare le funzionalità fornite dal proprio provider DNS:
ALIAS/ANAME: Tipi di record non standard che si comportano comeCNAMEma vengono risolti dal server DNS del provider in recordA/AAAAper la risposta del client. Questo consente di utilizzare alias sull’apex.- CNAME Flattening: Una tecnologia (ad esempio, in Cloudflare) in cui un
CNAMEsull’apex viene “appiattito” automaticamente — il server DNS restituisce i recordA/AAAAdell’host di destinazione invece delCNAME.
- Problema: Lo standard RFC vieta
- Record Glue:
- Quando necessari: Se i propri server dei nomi (ad esempio,
ns1.example.com.) si trovano all’interno della stessa zona che servono (example.com.). - Cosa fare: Trovare la sezione di configurazione dei record glue con il proprio registrar di dominio e aggiungere record
A(e/oAAAA) per i propri server dei nomi. Questo rompe la dipendenza circolare.
- Quando necessari: Se i propri server dei nomi (ad esempio,
- Configurazione di PTR per la posta:
- Requisito: L’indirizzo IP del proprio server di posta deve avere un record
PTRche si risolva nel suo nome di dominio completamente qualificato (FQDN, ad esempio,mail.example.com.). - Coerenza: Il nome che il server di posta invia nel comando
HELO/EHLOdeve corrispondere al nome del recordPTR, e quel nome, a sua volta, deve avere un recordAche punta allo stesso indirizzo IP. Questo si chiama “Forward-Confirmed Reverse DNS” (FCrDNS) ed è critico per la reputazione. - Dove configurare: Con il proprio provider di hosting o proprietario dell’indirizzo IP, non nella zona DNS del proprio dominio.
- Requisito: L’indirizzo IP del proprio server di posta deve avere un record
- Divisione di record TXT lunghi:
- Se una stringa in un record
TXTsupera i 255 byte, deve essere divisa in più parti nel file di zona. Ogni parte è racchiusa tra virgolette, e il server DNS le concatena automaticamente. - Esempio:
example.com. IN TXT ( "v=DMARC1; p=reject; rua=mailto:dmarc@example.com,mailto:dmarc@thirdparty.com; " "ruf=mailto:forensics@example.com; fo=1; adkim=s; aspf=s; pct=100" )
- Se una stringa in un record
4. Modelli completi di file di zona (stile BIND)
Di seguito sono riportati modelli pronti per tre scenari comuni. Sostituire example.com, example.net, indirizzi IP e chiavi con i propri valori.
a) Sito web semplice (statico, senza posta)
$TTL 3600
@ IN SOA ns1.hosting.net. hostmaster.example.com. (
2025092201 ; serial (YYYYMMDDNN)
7200 ; refresh (2 hours)
3600 ; retry (1 hour)
1209600 ; expire (14 days)
86400 ) ; minimum TTL (1 day)
; Authoritative Name Servers
@ IN NS ns1.hosting.net.
@ IN NS ns2.hosting.net.
; Web Server (IPv4 and IPv6)
@ IN A 192.0.2.10
@ IN AAAA 2001:db8::10
; WWW subdomain (alias to apex)
www IN CNAME @
; Security: Restrict Certificate Authorities
@ IN CAA 0 issue "letsencrypt.org"
@ IN CAA 0 iodef "mailto:security@example.com"
b) Sito web + server di posta proprio
$TTL 3600
@ IN SOA ns1.example.net. admin.example.com. (
2025092201 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
86400 ) ; minimum
; Name Servers
@ IN NS ns1.example.net.
@ IN NS ns2.example.net.
; --- Web Section ---
@ IN A 192.0.2.10
www IN CNAME @
; --- Mail Section ---
; A record for the mail server
mail IN A 192.0.2.20
; MX record pointing to the mail server
@ IN MX 10 mail.example.com.
; --- Email Authentication ---
; SPF: Allow mail server IP and Google Workspace
@ IN TXT "v=spf1 ip4:192.0.2.20 include:_spf.google.com ~all"
; DKIM: Public key for 'default' selector
default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQ..."
; DMARC: Policy to quarantine failures and send reports
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100"
; --- Security ---
@ IN CAA 0 issue "letsencrypt.org"
c) Sito web + CDN + Posta + DNSSEC (esempio complesso)
$TTL 300 ; Lower TTL for flexibility with CDN
@ IN SOA ns1.example.net. hostmaster.example.com. (
2025092201 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
3600 ) ; minimum (also used for negative caching)
; Name Servers
@ IN NS ns1.example.net.
@ IN NS ns2.example.net.
; --- Web Section (with CDN) ---
; Apex domain: Use ALIAS/ANAME (provider-specific) to point to origin or CDN edge
; If your provider supports ALIAS:
; @ IN ALIAS origin.examplehost.net.
; If using CNAME flattening for apex (e.g., Cloudflare):
@ IN A 192.0.2.10 ; Temporary or fallback IP, often managed by provider
; WWW subdomain: CNAME to CDN provider
www IN CNAME cdn-provider.example.net.
; --- Mail Section ---
mail IN A 192.0.2.20
@ IN MX 10 mail.example.com.
; --- Email Authentication ---
@ IN TXT "v=spf1 include:_spf.google.com include:spf.protection.outlook.com -all"
default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQ..."
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:abuse@example.com; pct=100"
; --- Security ---
@ IN CAA 0 issue "letsencrypt.org"
@ IN CAA 0 issuewild "letsencrypt.org"
@ IN CAA 0 iodef "mailto:security@example.com"
; --- DNSSEC (Example keys - REPLACE WITH YOURS) ---
; DNSKEY records (usually auto-generated by DNS server when signing is enabled)
@ IN DNSKEY 257 3 13 ( ; KSK
AwEAAbOv...QAB )
@ IN DNSKEY 256 3 13 ( ; ZSK
AwEAAa3d...9QAB )
; RRSIG records are automatically generated by the DNS server during signing and are not manually added to the zone file.
; NSEC/NSEC3 records are also automatically generated.
; --- Additional Services (Example) ---
; SRV record for SIP service
_sip._tcp IN SRV 10 50 5060 sip1.example.com.
5. Configurazione passo-passo del dominio di posta (PTR, SPF, DKIM, DMARC)
La configurazione della posta è un compito complesso. Seguire questi passaggi per garantire la massima consegna e protezione dallo spam.
Passo 1: Configurare A/AAAA per il server di posta
Assicurarsi che il proprio server di posta abbia un record A (e preferibilmente AAAA).
mail.example.com. 3600 IN A 192.0.2.20
Passo 2: Configurare i record MX
Specificare che la posta per example.com deve essere consegnata a mail.example.com..
example.com. 3600 IN MX 10 mail.example.com.
Passo 3: Configurare PTR (DNS inverso)
Questo è il passo più importante e spesso trascurato. Contattare il proprio provider di hosting o proprietario dell’indirizzo IP (192.0.2.20) e richiedere un record PTR che punti a mail.example.com..
- Verifica:
dig -x 192.0.2.20 +shortdovrebbe restituiremail.example.com..
Passo 4: Configurare SPF (tramite TXT)
Definire quali server sono autorizzati a inviare posta a nome di example.com. Includere il proprio server e qualsiasi servizio di terze parti (Gmail, SendGrid, ecc.).
example.com. 3600 IN TXT "v=spf1 ip4:192.0.2.20 include:_spf.google.com -all"
- Iniziare con
~all(fallimento morbido) per i test, quindi passare a-all(fallimento rigoroso).
Passo 5: Configurare DKIM
- Generare una coppia di chiavi (privata e pubblica) sul proprio server di posta (MTA). Scegliere un “selettore” (ad esempio,
default,202405). - Configurare l’MTA per firmare le email in uscita utilizzando la chiave privata e il selettore scelto.
- Pubblicare la chiave pubblica nel DNS come record
TXTper il sottodominioselettore._domainkey.example.com..default._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQ..."
Passo 6: Configurare DMARC
Definire la politica per gestire le email che non superano i controlli SPF/DKIM e configurare l’invio di rapporti.
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com; ruf=mailto:forensics@example.com; pct=100"
- Strategia di implementazione:
- Iniziare con
p=none— le email non vengono bloccate, si ricevono solo rapporti. - Analizzare i rapporti, correggere gli errori in SPF/DKIM.
- Passare a
p=quarantine— le email sospette vanno nello spam. - Passare a
p=reject— le email sospette vengono rifiutate.
- Iniziare con
Suggerimenti aggiuntivi:
- Assicurarsi che il nome che il proprio server di posta invia nel comando
HELO/EHLOcorrisponda al nome del recordPTR(mail.example.com.). - Utilizzare strumenti online per verificare la configurazione: mail-tester.com, mxtoolbox.com, dmarcian.com.
6. Comandi per la verifica e il debug DNS
Gli strumenti da riga di comando sono indispensabili per gli amministratori.
dig(Domain Information Groper) — lo strumento più potente e consigliato.- Query di base:
dig +short example.com A— ottenere solo l’indirizzo IPv4.dig +short example.com AAAA— ottenere solo l’indirizzo IPv6.dig +short example.com MX— ottenere i record MX.dig +short example.com TXT— ottenere i record TXT (SPF, DKIM, DMARC).dig +short www.example.com CNAME— ottenere CNAME.dig +short _sip._tcp.example.com SRV— ottenere il record SRV.
- DNS inverso:
dig -x 192.0.2.1 +short— ottenere PTR per IP.
- Tracciamento della delega:
dig +trace example.com— mostra l’intero percorso dai server radice ai server autorevoli della propria zona. Ottimo per diagnosticare i problemi di delega.
- Query a server specifico:
dig @ns1.example.net example.com SOA— richiedere il record SOA a un server dei nomi specifico.
- Verifica DNSSEC:
dig +dnssec example.com A— eseguire una query con il flag DO (DNSSEC OK) e mostrare i recordRRSIGse esistono.dig +short example.com DNSKEY— ottenere i record DNSKEY.dig +short example.com DS— ottenere il record DS (dalla zona genitore).
- Verifica TLSA (DANE):
dig +short _443._tcp.www.example.com. TLSA
- Verifica SSHFP:
dig +short example.com SSHFP
- Query di base:
nslookup— strumento vecchio ma ancora incontrato.nslookup -type=MX example.comnslookup -type=TXT example.comnslookup 192.0.2.1(per PTR)
host— semplice e conveniente per query di base.host -t A example.comhost -t MX example.comhost -t TXT example.comhost 192.0.2.1(per PTR)host -t sshfp example.com
7. Sicurezza e best practice
- DNSSEC: Abilitare DNSSEC per domini critici. Questo protegge gli utenti da risposte DNS false. Iniziare con un dominio di prova per padroneggiare la procedura (generazione chiavi, pubblicazione
DScon il registrar). Utilizzare validatori online per verificare. - CAA: Configurare sempre i record
CAA. Questo è un modo semplice ed efficace per prevenire l’emissione non autorizzata di certificati per il proprio dominio. Specificare solo le CA che si utilizzano (ad esempio,letsencrypt.org). - Gestione delle chiavi DKIM: Generare regolarmente (ad esempio, annualmente) nuove coppie di chiavi DKIM. Pubblicare la nuova chiave pubblica nel DNS, configurare l’MTA per utilizzare il nuovo selettore e, dopo alcune settimane (assicurandosi che tutte le vecchie email firmate con la vecchia chiave siano state elaborate), eliminare il vecchio record
TXT. - Privacy: Non pubblicare i record
HINFOpoiché rivelano informazioni su hardware e software che potrebbero essere utili agli attaccanti. - Query ANY: Molti resolver DNS pubblici (ad esempio, Google Public DNS, Cloudflare) non elaborano più le query
ANYa causa del loro utilizzo negli attacchi DDoS. Non fare affidamento su di esse.
8. Errori comuni e come evitarli
- CNAME entra in conflitto con altri record: Non è possibile avere un
CNAMEe, ad esempio, unAoMXper lo stesso nome. Soluzione: Rivedere la struttura della propria zona. Utilizzare recordAoALIAS/ANAMEper l’apex. - Mancanza di PTR per il server di posta: Questa è la ragione principale per cui la posta finisce nello spam. Soluzione: Configurare sempre
PTRcon il proprio provider di hosting. - Numero di serie SOA non modificato: Se non si incrementa il numero di serie, i server secondari non saranno informati degli aggiornamenti. Soluzione: Incrementare sempre
Serialdopo qualsiasi modifica della zona. Automatizzare questo processo se possibile. - Formattazione errata di record TXT lunghi: Se una stringa è più lunga di 255 byte e non è divisa in parti, può essere troncata o causare un errore. Soluzione: Dividere sempre le stringhe lunghe nei record
TXT, racchiudendo ogni parte tra virgolette. - DS errato durante l’abilitazione di DNSSEC: Se il record
DSpubblicato con il registrar non corrisponde al proprioDNSKEY, la zona diventerà “non attendibile”, e i client con DNSSEC abilitato non potranno ottenere record da essa. Soluzione: Seguire attentamente le istruzioni del proprio server DNS e registrar. Verificare due volte gli hash. - TTL elevato prima della migrazione: Se il TTL è elevato (ad esempio, 86400), dopo aver cambiato l’indirizzo IP, gli utenti raggiungeranno l’indirizzo vecchio per un giorno. Soluzione: Ridurre sempre il TTL uno o due giorni prima di una migrazione pianificata.
- CNAME sul dominio apex: L’uso diretto di
CNAMEperexample.com.viola la RFC e può causare un comportamento imprevedibile. Soluzione: UtilizzareALIAS/ANAMEoCNAME flatteningfornito dal proprio provider DNS.
9. Checklist prima del rilascio in produzione o migrazione
Utilizzare questo elenco per verifiche finali prima di lanciare o spostare un sito/servizio.
- [ ] Record di base:
A/AAAAper tutti gli host chiave (web, posta) sono configurati e puntano agli indirizzi IP corretti. - [ ] Posta: I record
MXsono configurati e puntano a host con recordA/AAAA. - [ ] DNS inverso: I record
PTRper tutti gli indirizzi IP dei server di posta sono configurati e corretti (verificato tramitedig -x). - [ ] SPF: Il record
TXTSPF è configurato, include tutte le fonti consentite e ha il meccanismo di terminazione corretto (-allo~all). - [ ] DKIM: La chiave pubblica è pubblicata nel DNS, l’MTA è configurato per firmare le email. La firma è verificata su un’email di prova.
- [ ] DMARC: Il record
TXTDMARC è pubblicato. Per i nuovi deployment, si consiglia di iniziare conp=none. - [ ] Server dei nomi: I record
NSnella zona corrispondono ai server specificati con il registrar. I recordgluesono configurati se necessario. - [ ] Numero di serie SOA: Il numero di serie è stato incrementato dopo tutte le modifiche recenti.
- [ ] CAA: I record
CAAsono configurati per limitare l’emissione di certificati. - [ ] TTL: Il TTL è stato ridotto in anticipo (se era pianificata una migrazione).
- [ ] Verifica: Verifiche eseguite utilizzando
dig +trace,dig MX,dig TXTe strumenti online (ad esempio, MXToolbox). - [ ] DNSSEC (se abilitato): Il record
DSè correttamente aggiunto con il registrar, le verifiche DNSSEC passano con successo. - [ ] Backup: L’esportazione della zona corrente è salvata.
- [ ] Piano di rollback: I passaggi per annullare le modifiche in caso di fallimento sono chiaramente scritti.
- [ ] Monitoraggio: I sistemi di monitoraggio sono configurati per tracciare la disponibilità dei server DNS e i cambiamenti nella zona.
10. Esempi aggiuntivi e spiegazioni dei campi
- SRV — Approfondimento:
_xmpp-client._tcp.example.com. 3600 IN SRV 5 20 5222 xmpp1.example.com. _xmpp-client._tcp.example.com. 3600 IN SRV 5 30 5222 xmpp2.example.com. _xmpp-client._tcp.example.com. 3600 IN SRV 10 100 5222 backup.example.com.- Il client contatterà prima i server con priorità
5(xmpp1exmpp2). - Tra
xmpp1exmpp2, la selezione sarà proporzionale al loro peso:xmpp1ha il 40% di probabilità (20/(20+30)),xmpp2— 60% (30/(20+30)). - Il server
backup.example.com.(priorità10) verrà utilizzato solo se entrambi i server con priorità5sono non disponibili.
- Il client contatterà prima i server con priorità
- TLSA — Decodifica dell’esempio:
_443._tcp.www.example.com. IN TLSA 3 1 1 d2abde...f213(DANE-EE): Il client deve utilizzare questo certificato esatto (o la sua chiave pubblica), indipendentemente dalla catena di fiducia della CA.1(Selettore): Il record memorizza l’hash non dell’intero certificato, ma solo della sua chiave pubblica. Questo è più conveniente perché quando si rilascia un certificato con la stessa chiave, non è necessario modificare il recordTLSA.1(Tipo di corrispondenza): Viene utilizzato l’hash SHA-256.
- SSHFP — Decodifica dell’esempio:
example.com. IN SSHFP 4 2 356a192b7913b04c54574d18c28d46e6395428ab4: Algoritmo — ED25519 (moderno e sicuro).2: Tipo di digest — SHA-256.356a19...28ab: Hash SHA-256 della chiave pubblica ED25519.
11. Scenari utili
- Connessione di un sito web a un CDN:
- Generalmente, il provider CDN chiede di fare un
CNAMEper un sottodominio (ad esempio,www) al loro indirizzo (ad esempio,example.cdnprovider.com). - Se si desidera utilizzare il CDN per il dominio radice (
example.com), utilizzare la funzionalitàALIAS/ANAMEoCNAME flatteningdel proprio provider DNS. - Assicurarsi che il CDN sia correttamente configurato per funzionare con il proprio certificato SSL (spesso il CDN si occupa della terminazione SSL). Tenere conto dei record
CAAè importante in questo caso.
- Generalmente, il provider CDN chiede di fare un
- Spostamento di un host (migrazione):
- 48-72 ore prima della migrazione: Ridurre il TTL per i record
A/AAAAdel proprio sito a 300 secondi. - Attendere: Attendere che il vecchio TTL si “propaghi” (attendere un periodo pari al vecchio TTL, ad esempio, 3600 secondi).
- Il giorno della migrazione: Modificare i record
A/AAAAper puntare ai nuovi indirizzi IP. - Verifica: Utilizzare
dig +short example.com Acon diversi DNS pubblici (Google8.8.8.8, Cloudflare1.1.1.1) per verificare la propagazione dei cambiamenti. - Dopo la stabilizzazione (dopo 24-48 ore): Aumentare il TTL a un valore ottimale (ad esempio, 3600).
- 48-72 ore prima della migrazione: Ridurre il TTL per i record
12. JSON pronto per l’importazione nel pannello del provider
Di seguito è riportato un modello JSON esteso che contiene quasi tutti i tipi di record trattati in questa guida. Questo formato è generalizzato e potrebbe richiedere adattamenti all’API specifica del proprio provider DNS (Cloudflare, AWS Route 53, DigitalOcean, ecc.).
{
"zone": "example.com",
"records": [
{
"type": "A",
"name": "@",
"value": "192.0.2.10",
"ttl": 3600
},
{
"type": "AAAA",
"name": "@",
"value": "2001:db8::10",
"ttl": 3600
},
{
"type": "CNAME",
"name": "www",
"value": "example.com.",
"ttl": 3600
},
{
"type": "MX",
"name": "@",
"value": "mail.example.com.",
"priority": 10,
"ttl": 3600
},
{
"type": "MX",
"name": "@",
"value": "backup-mail.example.com.",
"priority": 20,
"ttl": 3600
},
{
"type": "TXT",
"name": "@",
"value": "v=spf1 ip4:192.0.2.20 include:_spf.google.com -all",
"ttl": 3600
},
{
"type": "TXT",
"name": "default._domainkey",
"value": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQA...",
"ttl": 3600
},
{
"type": "TXT",
"name": "_dmarc",
"value": "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; pct=100",
"ttl": 3600
},
{
"type": "NS",
"name": "@",
"value": "ns1.example.net.",
"ttl": 3600
},
{
"type": "NS",
"name": "@",
"value": "ns2.example.net.",
"ttl": 3600
},
{
"type": "SOA",
"name": "@",
"primary_ns": "ns1.example.net.",
"admin_email": "admin.example.com.",
"serial": 2025092201,
"refresh": 7200,
"retry": 3600,
"expire": 1209600,
"minimum": 86400,
"ttl": 3600
},
{
"type": "PTR",
"name": "20.2.0.192.in-addr.arpa.",
"value": "mail.example.com.",
"ttl": 3600
},
{
"type": "SRV",
"name": "_sip._tcp",
"target": "sipserver.example.com.",
"port": 5060,
"priority": 10,
"weight": 60,
"ttl": 3600
},
{
"type": "CAA",
"name": "@",
"value": "letsencrypt.org",
"flags": 0,
"tag": "issue",
"ttl": 3600
},
{
"type": "CAA",
"name": "@",
"value": "mailto:security@example.com",
"flags": 0,
"tag": "iodef",
"ttl": 3600
},
{
"type": "TLSA",
"name": "_443._tcp.www",
"usage": 3,
"selector": 1,
"matching_type": 1,
"value": "d2abde240d7cd3ee6b4b28c54df034b97983a1d16e8a410e4561cb106618e971",
"ttl": 3600
},
{
"type": "SSHFP",
"name": "@",
"algorithm": 4,
"digest_type": 2,
"value": "356a192b7913b04c54574d18c28d46e6395428ab",
"ttl": 3600
},
{
"type": "HINFO",
"name": "server1",
"cpu": "Intel Xeon",
"os": "Ubuntu 22.04 LTS",
"ttl": 3600
},
{
"type": "LOC",
"name": "@",
"latitude": "55.7558 N",
"longitude": "37.6176 E",
"altitude": 150,
"ttl": 3600
},
{
"type": "RP",
"name": "@",
"mbox": "admin.example.com.",
"txt": "Technical Support",
"ttl": 3600
},
{
"type": "NAPTR",
"name": "4.3.2.1.5.5.5.1.e164.arpa.",
"order": 100,
"preference": 10,
"flags": "U",
"service": "E2U+sip",
"regexp": "!^.*$!sip:info@example.com!",
"replacement": ".",
"ttl": 3600
},
{
"type": "DS",
"name": "@",
"key_tag": 54517,
"algorithm": 13,
"digest_type": 2,
"digest": "84C84478D00A57973FC5D3E32F7E2BF539FB697D2660874C6D33A3313872D34F",
"ttl": 3600
},
{
"type": "DNSKEY",
"name": "@",
"flags": 257,
"protocol": 3,
"algorithm": 13,
"public_key": "AwEAAbOv...QAB",
"ttl": 3600
},
{
"type": "DNSKEY",
"name": "@",
"flags": 256,
"protocol": 3,
"algorithm": 13,
"public_key": "AwEAAa3d...9QAB",
"ttl": 3600
}
]
}
Il DNS è un sistema potente e flessibile, e la conoscenza di esso è di importanza critica per chiunque gestisca progetti web, sistemi di posta o infrastrutture di rete. Questa guida copre tutti gli aspetti — dai semplici record A ai meccanismi di sicurezza complessi come DNSSEC e DANE.
Conclusioni chiave:
- Pianificare i cambiamenti: Ridurre sempre il TTL prima della migrazione.
- Testare: Utilizzare
dig,nslookupe strumenti online per verificare ogni configurazione. - Sicurezza prima di tutto: Configurare SPF, DKIM, DMARC per la posta. Abilitare CAA per controllare i certificati. Considerare l’uso di DNSSEC per domini critici.
- Documentare: Mantenere checklist e salvare backup delle zone.
Questo materiale è progettato per essere il proprio riferimento universale. Salvarlo, e aiuterà a risolvere qualsiasi compito relativo al DNS.