Skip to main content
  1. Concetti/

DNS Records

·10 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'è
#

I record DNS sono le singole "voci" nella zona DNS di un dominio. Ogni record associa un nome a un valore specifico (IP, altro nome, server di posta, testo di verifica). Quando modifichi i parametri DNS nel pannello del tuo provider, stai editando questi record.

Analogia — Il Condominio
#

Pensa al tuo dominio (esempio.com) come a un condominio. La zona DNS è la bacheca dell'ingresso con tutte le informazioni sui residenti:

┌─────────────────────────────────────────────────┐
│          BACHECA CONDOMINIO: esempio.com         │
│                                                  │
│  A      "Famiglia Rossi → Interno 34"           │
│         (nome → indirizzo fisico)                │
│                                                  │
│  CNAME  "Citofono MARIO = citofono ROSSI"        │
│         (un soprannome che rimanda a un altro)   │
│                                                  │
│  MX     "Posta → Cassetta piano terra, box 10"   │
│         (dove recapitare la corrispondenza)      │
│                                                  │
│  TXT    "Autorizzato a ricevere pacchi: DHL, UPS"│
│         (note di testo, regole, verifiche)       │
│                                                  │
│  NS     "Amministratore: Studio Bianchi & C."    │
│         (chi gestisce il condominio)             │
│                                                  │
│  SRV    "Idraulico: Mario, Tel 555-1234, int.7"  │
│         (servizio specifico + dove trovarlo)     │
└─────────────────────────────────────────────────┘

La Zona DNS — Struttura Reale
#

Tutti i record vivono in una zona DNS, che è essenzialmente una tabella:

┌──────────────┬──────┬──────┬───────────────────────────┬──────────┐
│ NOME         │ TTL  │ TIPO │ VALORE                    │ PRIORITÀ │
├──────────────┼──────┼──────┼───────────────────────────┼──────────┤
│ @            │ 3600 │ A    │ 93.184.216.34             │          │
│ www          │ 3600 │ CNAME│ esempio.com               │          │
│ @            │ 3600 │ MX   │ mail.esempio.com          │ 10       │
│ @            │ 3600 │ MX   │ mail-backup.esempio.com   │ 20       │
│ @            │ 3600 │ TXT  │ "v=spf1 include:..."      │          │
│ mail         │ 3600 │ A    │ 93.184.216.50             │          │
│ @            │  600 │ NS   │ ns1.cloudflare.com        │          │
│ @            │  600 │ NS   │ ns2.cloudflare.com        │          │
│ _dmarc       │ 3600 │ TXT  │ "v=DMARC1; p=reject..."   │          │
│ api          │  300 │ A    │ 93.184.216.60             │          │
└──────────────┴──────┴──────┴───────────────────────────┴──────────┘

LEGENDA:
  @     = il dominio root (esempio.com senza niente davanti)
  www   = sottodominio www.esempio.com
  mail  = sottodominio mail.esempio.com
  TTL   = secondi di cache (3600 = 1 ora, 300 = 5 minuti)

I Record Uno per Uno
#


Record A (Address)
#

Cosa fa: Nome → Indirizzo IPv4.

  esempio.com  →  A  →  93.184.216.34

  "Se qualcuno cerca esempio.com, mandalo a questo IP"

Analogia vita reale: È come il numero civico sulla porta di casa. Se qualcuno cerca "Casa Rossi", il record A dice "Via Roma 15". Punto, semplice, diretto.

Variante AAAA: Identico ma per IPv6 (2606:2800:220:1:248:1893:25c8:1946). La "A" è quadruplicata perché IPv6 è 4 volte più lungo di IPv4 (128 bit vs 32 bit).

Quando lo tocchi: Ogni volta che punti un dominio a un server (il tuo VPS, Vercel, un hosting). È il primo record che configuri in assoluto.


Record CNAME (Canonical Name)
#

Cosa fa: Alias → Nome canonico (che poi risolve via record A).

  www.esempio.com  →  CNAME  →  esempio.com
                                      └──► A → 93.184.216.34

  "www è solo un soprannome per esempio.com"

Analogia vita reale: È come un soprannome. Tutti chiamano Giovanni "Gianni", ma sulla carta d'identità c'è scritto Giovanni. Se cerchi "Gianni" nell'elenco telefonico, trovi un rimando: "Gianni → vedi Giovanni". Poi sotto Giovanni trovi il numero (l'IP).

Il vantaggio? Se Giovanni cambia numero di telefono (cambio IP), non devi aggiornare anche "Gianni" — il rimando punta sempre al nome canonico.

Regola critica: Un CNAME non può coesistere con altri record sullo stesso nome. Il dominio root (@) non può MAI essere un CNAME, perché lì servono anche NS, MX, SOA, ecc.

Quando lo tocchi: Servizi cloud come Vercel, Netlify, Heroku ti dicono "punta il tuo CNAME a cname.vercel-dns.com". Così se loro cambiano IP, il tuo sito continua a funzionare senza che tu faccia nulla.


Record MX (Mail Exchange)
#

Cosa fa: Indica i server che ricevono le email per quel dominio.

  esempio.com  →  MX  →  10  mail.esempio.com
                          20  mail-backup.esempio.com
                          └─ PRIORITÀ: numero più basso = prova prima

Analogia vita reale: Immagina di avere due cassette della posta in casa. Una è quella principale all'ingresso (priorità 10), l'altra è quella di backup nel garage (priorità 20). Il postino prova prima l'ingresso. Se è piena o bloccata, va al garage.

Allo stesso modo, se mail.esempio.com (priorità 10) non risponde, il server mittente prova mail-backup.esempio.com (priorità 20).

Quando lo tocchi: Quando attivi Google Workspace, Microsoft 365, o qualsiasi servizio email. Ti danno i loro server MX da inserire. Es: Google ti chiede di mettere aspmx.l.google.com con priorità 1.


Record TXT (Text)
#

Cosa fa: Campo di testo libero usato per verifiche e sicurezza email.

Analogia vita reale: È il cartello sulla porta del condominio. Puoi scriverci quello che vuoi: "Autorizzati a consegnare: solo DHL e UPS" (SPF), "Firma di autenticità del condominio" (DKIM), "Se la firma non corrisponde, rifiutate il pacco" (DMARC), oppure "Questo condominio è di proprietà del Sig. Rossi — codice verifica: ABC123" (Google/Cloudflare site verification).

I tre usi fondamentali:

1. SPF (Sender Policy Framework)
   esempio.com  TXT  "v=spf1 include:_spf.google.com ~all"
   
   Traduzione: "Solo i server di Google possono mandare
   email per conto di @esempio.com. Tutto il resto è sospetto."
   
   Senza SPF → chiunque può mandare email fingendo di essere te.

2. DKIM (DomainKeys Identified Mail)
   selector1._domainkey.esempio.com  TXT  "v=DKIM1; k=rsa; p=MIGf..."
   
   Traduzione: "Ecco la mia chiave pubblica. Ogni email che mando
   ha una firma digitale. Verificala con questa chiave."
   
   È come firmare ogni lettera con un sigillo di ceralacca.
   Chi riceve può controllare che il sigillo sia autentico.

3. DMARC (Domain-based Message Authentication)
   _dmarc.esempio.com  TXT  "v=DMARC1; p=reject; rua=mailto:report@esempio.com"
   
   Traduzione: "Se un'email da @esempio.com non passa SPF E non passa
   DKIM → RIFIUTALA. E mandami un report di chi ha provato."
   
   È il buttafuori definitivo: "Senza documenti validi, non entri."
  FLUSSO EMAIL CON SPF + DKIM + DMARC:

  [Tu mandi email] ──► [Server Google] ──► [Server destinatario]
                                              1. Controlla SPF
                                              "Questo server è autorizzato
                                               a mandare per @esempio.com?"
                                              2. Controlla DKIM
                                              "La firma digitale è valida?"
                                              3. Controlla DMARC
                                              "Se SPF o DKIM falliscono,
                                               cosa faccio? (reject/quarantine/none)"
                                              ✓ Tutto OK → Inbox
                                              ✗ Fallito  → Spam / Rifiutato

Quando lo tocchi:

  • Configuri Google Workspace / Microsoft 365 → ti chiedono record TXT per SPF e DKIM
  • Verifichi proprietà dominio su Google Search Console, Cloudflare, ecc. → record TXT con codice
  • Le email del tuo n8n finiscono in spam → quasi certamente manca SPF o DKIM

Record NS (Nameserver)
#

Cosa fa: Dichiara chi è l'autorità per questa zona DNS.

  esempio.com  →  NS  →  ns1.cloudflare.com
                          ns2.cloudflare.com

Analogia vita reale: È come il cartello dello studio notarile che gestisce il condominio. Se qualcuno vuole informazioni sugli appartamenti (record), deve andare dal notaio (nameserver). Il notaio ha l'elenco completo di chi vive dove.

Quando compri un dominio su Namecheap ma usi Cloudflare per il DNS, quello che fai è dire al registrar: "Il notaio per questo condominio non sei più tu, è Cloudflare." Cambi i record NS.

Sempre almeno 2: Per ridondanza. Se ns1 va giù, ns2 risponde. Se entrambi vanno giù, il tuo dominio sparisce da internet finché non tornano.


Record SRV (Service)
#

Cosa fa: Indica dove gira un servizio specifico, su quale host e porta.

  _sip._tcp.esempio.com  SRV  10 5 5060 sip.esempio.com
                               │  │  │       │
                               │  │  │       └─ Host del servizio
                               │  │  └─ Porta
                               │  └─ Peso (load balancing tra stessa priorità)
                               └─ Priorità (come MX)

Analogia vita reale: L'MX è il cartello "Posta → Cassetta piano terra". L'SRV è più specifico, tipo la pagina gialle del condominio: "Idraulico → Mario Bianchi, interno 7, telefono 555-1234". Non solo chi, ma anche dove e come contattarlo.

Quando lo tocchi: Meno frequente. Usato per VoIP (SIP), servizi Microsoft (Teams, Skype for Business), e discovery di servizi in infrastrutture complesse.


Record SOA (Start of Authority)
#

Cosa fa: Metadati della zona: chi è il DNS admin, numero di serie della zona, frequenza di refresh.

  esempio.com  SOA  ns1.cloudflare.com admin.esempio.com (
                    2024031501  ; Serial (cambia a ogni modifica)
                    7200        ; Refresh (secondi tra check slave→master)
                    3600        ; Retry (se refresh fallisce)
                    1209600     ; Expire (dopo quanto lo slave smette)
                    86400       ; Minimum TTL
  )

Analogia vita reale: È il verbale di assemblea condominiale: data dell'ultimo aggiornamento, chi è l'amministratore, ogni quanto si riuniscono. Non lo leggi mai direttamente, ma senza di esso il condominio non funziona legalmente.


Record PTR (Pointer)
#

Cosa fa: Il contrario del record A: da IP → nome. Reverse DNS.

  Record A:    esempio.com     → 93.184.216.34
  Record PTR:  93.184.216.34   → esempio.com

  (il PTR vive nella zona speciale "in-addr.arpa")
  34.216.184.93.in-addr.arpa  PTR  esempio.com

Analogia vita reale: Il record A è l'elenco telefonico classico: cerchi "Rossi" → trovi il numero. Il record PTR è il chi-mi-ha-chiamato: hai un numero, vuoi sapere chi è. È l'identificativo del chiamante.

Quando serve: I server di posta controllano il PTR dell'IP mittente. Se il tuo server manda email dall'IP 1.2.3.4 ma il PTR di quell'IP non punta al tuo dominio, l'email viene rifiutata o finisce in spam. È un controllo anti-spoofing: "L'IP dice di essere esempio.com, ma il reverse DNS conferma?"


Record CAA (Certification Authority Authorization)
#

Cosa fa: Specifica quali autorità di certificazione (CA) possono emettere certificati HTTPS per il tuo dominio.

  esempio.com  CAA  0 issue "letsencrypt.org"
  
  "Solo Let's Encrypt può creare certificati per esempio.com"

Analogia vita reale: È come dire "Solo il Notaio Bianchi può emettere atti per questo immobile". Se un altro notaio (CA) prova a emettere un certificato, il sistema lo blocca.


Mappa Riassuntiva
#

┌─────────────────────────────────────────────────────────────────┐
│                  MAPPA RECORD DNS                               │
│                                                                 │
│  NAVIGAZIONE WEB                                                │
│    A      nome → IPv4              "Dove vive il sito?"         │
│    AAAA   nome → IPv6              "Stesso, ma IPv6"            │
│    CNAME  alias → nome canonico    "Soprannome che rimbalza"    │
│                                                                 │
│  EMAIL                                                          │
│    MX     dominio → mail server    "Dove vanno le email?"       │
│    TXT    SPF/DKIM/DMARC           "Chi può mandare email?"    │
│    PTR    IP → nome (reverse)      "Chi sei davvero?"           │
│                                                                 │
│  INFRASTRUTTURA                                                 │
│    NS     dominio → nameserver     "Chi è l'autorità?"          │
│    SOA    metadati zona            "Info sul gestore"           │
│    SRV    servizio → host:porta    "Dove gira il servizio X?"   │
│                                                                 │
│  SICUREZZA / VERIFICA                                           │
│    TXT    verifica proprietà       "Questo dominio è mio"       │
│    CAA    autorità certificati     "Chi può emettere HTTPS?"    │
└─────────────────────────────────────────────────────────────────┘

Scenario Reale — Email Spoofing (senza SPF/DKIM)
#

Sei un analista SOC. Il CEO riceve un'email da hr@azienda.com che dice "Clicca qui per aggiornare la tua busta paga". Ma nessuno in HR l'ha mandata.

  1. Controlli gli header dell'email → l'IP mittente è 185.x.x.x (non è il server aziendale)
  2. Controlli i record DNS di azienda.comnessun record SPF, nessun DKIM
  3. Senza SPF, qualsiasi server al mondo può mandare email "da" @azienda.com
  4. L'attaccante ha semplicemente configurato il campo "From:" con l'indirizzo aziendale
  5. Remediation: aggiungi immediatamente record TXT per SPF, configura DKIM, attiva DMARC con p=reject

Questo è uno degli attacchi più comuni e più facili da prevenire. Basta configurare tre record TXT.

Scenario Reale — Subdomain Takeover (CNAME pendente)
#

L'azienda aveva un blog su Heroku: blog.azienda.com → CNAME → quiet-lake-1234.herokuapp.com. Il progetto viene abbandonato, l'app Heroku viene cancellata, ma nessuno rimuove il record CNAME.

  1. Un attaccante fa dig blog.azienda.com → vede il CNAME verso Heroku
  2. Crea un'app su Heroku con lo stesso hostname quiet-lake-1234.herokuapp.com
  3. Ora blog.azienda.com punta al sito dell'attaccante
  4. L'attaccante mette un clone della pagina di login aziendale → credential theft

Lezione: I CNAME verso servizi esterni vanno monitorati. Se il servizio viene dismesso, il record CNAME va rimosso immediatamente.

Comandi di Diagnostica
#

# Interroga un record A
dig esempio.com A

# Interroga record MX
dig esempio.com MX

# Interroga record TXT (per vedere SPF/DKIM)
dig esempio.com TXT

# Interroga i nameserver
dig esempio.com NS

# Segui tutta la catena di risoluzione
dig esempio.com +trace

# Reverse DNS (da IP a nome)
dig -x 93.184.216.34

# Query rapida (solo risposta)
dig +short esempio.com A

# Usa un DNS specifico (es. Google)
dig @8.8.8.8 esempio.com A

Note personali
#

Wizard Tip 1: Quando le email finiscono in spam, il 90% delle volte è un problema di record TXT mancanti (SPF, DKIM, DMARC). Parti sempre da dig tuodominio.com TXT per diagnosticare.

Wizard Tip 2: Il simbolo @ nei pannelli DNS significa "il dominio root senza sottodominio". @ con tipo A e valore 1.2.3.4 significa: "esempio.com punta a 1.2.3.4".

Wizard Tip 3: Se cambi nameserver (NS), la propagazione può richiedere fino a 48 ore perché le cache in tutto il mondo devono scadere. Se cambi solo un record A con TTL 300, bastano 5 minuti.

Collegato a
#

  • network — categoria
  • crypto — categoria (DKIM usa crittografia asimmetrica)
  • dns-resolution-flow — il flusso gerarchico di risoluzione
  • ip-addressing-subnetting — gli IP a cui puntano i record A
  • openssl — per ispezionare certificati legati ai record CAA
  • nc — per testare connettività verso porte specificate nei record SRV

Related