Cos'è una Zona DNS?
Una zona DNS è una porzione distinta dello spazio dei nomi DNS gestito da una specifica organizzazione o amministratore. Una zona contiene record DNS per uno o più domini ed è servita da autorevoli nameserver. Mentre un dominio è un nome nell'albero DNS, una zona è un confine amministrativo che definisce quali nameserver sono responsabili per rispondere alle domande.
Dominio vs Zona
Capire la distinzione è fondamentale:
Domain
Un dominio è un nome nella gerarchia DNS:
example.com (domain)
└── www.example.com (subdomain)
└── blog.example.com (subdomain)
└── api.example.com (subdomain)
Zone
Una zona è il controllo amministrativo sui record:
Single Zone for Domain and Subdomains:example.com zone contains:
- example.com
- www.example.com
- blog.example.com
- api.example.com
Managed by: ns1.example.com, ns2.example.com
Delegated Subdomain Zone:
example.com zone contains:
- example.com
- www.example.com
- Delegation: api.example.com → different nameservers
api.example.com zone (separate) contains:
- api.example.com
- v1.api.example.com
- v2.api.example.com
Managed by: ns1.apihost.com, ns2.apihost.com
Componenti di zona
Zone File
Un file di testo contenente tutti i record DNS per una zona:
; example.com zone file
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
; Nameserver records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A records
@ IN A 203.0.113.50
www IN A 203.0.113.50
blog IN A 203.0.113.51
; MX records
@ IN MX 10 mail.example.com.
mail IN A 203.0.113.52
; CNAME records
ftp IN CNAME www.example.com.
; TXT records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
SOA Record (Start of Authority)
Ogni zona deve avere esattamente un record SOA:
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
Campi di SOA
| Campo | Oggetto | Esempio di valore |
|---|---|---|
| NS primario | Master nameserver | ns1.example.com |
| Admin Email | Contatto (@ → .) | admin.example.com (admin@example.com) |
| Serie | Numero di versione Zone | 202401010101 |
| Rifiuti | intervallo di controllo NS secondario | 7200s (2 ore) |
| Reazione | Ripristina l'intervallo se il rinfresco non riesce | 3600 (1 ora) |
| Scadenza | NS secondario si arrende dopo | 1209600s (14 giorni) |
| TTL minimo | Durata caching negativa | 3600 (1 ora) |
NS Records (Nameservers)
Specificare quali server sono autorevoli per la zona:
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
Questi dicono al mondo quali server interrogare per i record in questa zona.
Tipi di zone
Zona primaria (Master)
La fonte autorevole in cui vengono modificati i record delle zone:
ns1.example.com (primary)
→ Zone file edited here
→ Changes made directly
→ Notifies secondaries of updates
Zona secondaria (Slave)
copie di sola lettura che replicano dal primario:
ns2.example.com (secondary)
→ Retrieves zone data from primary
→ Cannot be edited directly
→ Automatically syncs based on SOA refresh interval
Zone Transfer (AXFR):
1. Secondary checks SOA serial number
2. If primary serial is higher → request full zone transfer
3. Primary sends entire zone
4. Secondary updates its copy
Trasferimento obbligatorio (IXFR):
1. Secondary requests only changes since last serial
2. Primary sends diff
3. More efficient for large zones with small changes
Zona di attesa
Mappe nomi di dominio agli indirizzi IP (più comuni):
example.com → 203.0.113.50
www.example.com → 203.0.113.50
Zona inversa
Mappe indirizzi IP ai nomi di dominio (PTR records):
50.113.0.203.in-addr.arpa → example.com
Usato per:
- Verifica server e-mail
- Registrazione e sicurezza
- Risoluzione dei problemi
Delegazione delle zone
La delegazione crea zone separate per i sottodomini:
Zona principale (example.com)
; example.com zone
@ IN A 203.0.113.50
www IN A 203.0.113.50
; Delegate api.example.com to different nameservers
api IN NS ns1.apihost.com.
api IN NS ns2.apihost.com.
; Glue records (if needed)
ns1.api IN A 198.51.100.1
ns2.api IN A 198.51.100.2
Zona delegata (api.example.com)
File zona completamente separato su diversi nameserver:
; api.example.com zone (on ns1.apihost.com)
@ IN A 198.51.100.10
v1 IN A 198.51.100.11
v2 IN A 198.51.100.12
Perche' Delegato?
- Si'. Diverse squadre gestiscono diverse zone
- Technical: Utilizzare diversi provider DNS (ad esempio, API su AWS, sito web su Cloudflare)
- Performance: Distribuisci il carico DNS
- Sicurezza: Isolare i servizi sensibili
Gestione delle zone
Gestione numeri seriale
Versioni della zona della traccia dei numeri seriali (di solito formato YYYYYMMDDnn):
2024010101 ; January 1, 2024, version 01
2024010102 ; January 1, 2024, version 02
2024010201 ; January 2, 2024, version 01
Regola critica Serial deve aumentare con ogni cambiamento, o secondries non aggiornerà.
Sicurezza del trasferimento di zone
Problem: I trasferimenti di zone espongono tutti i record DNS# Solution # Trasferimenti di zone restrittive a secondari autorizzati
Configurazione BIND:zone "example.com" {
type master;
file "/var/named/example.com.zone";
allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only
notify yes;
};
TSIG (Transaction Signature): Trasferimenti di zona autenticati con chiavi condivise:
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-key";
};
allow-transfer { key transfer-key; };
Controllo della configurazione delle zone
Query SOA Record
dig example.com SOA
; ANSWER SECTION:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024010101 7200 3600 1209600 3600 )
Query NS Records
dig example.com NS
; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
Richiesta trasferimento zona (AXFR)
dig @ns1.example.com example.com AXFR
# If allowed, returns entire zone
# If denied, returns transfer failed
La maggior parte dei nameserver pubblici negano AXFR per prevenire la divulgazione di informazioni.
Configurazioni delle zone comuni
Sito web semplice
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
@ MX 10 mail.example.com
mail A 203.0.113.51
@ TXT "v=spf1 mx -all"
Zona multi-servizio
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
blog CNAME hosting.wordpress.com.
shop CNAME shops.myshopify.com.
cdn CNAME d111111abcdef8.cloudfront.net.
@ MX 10 aspmx.l.google.com.
Sottodomini delegati
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
; Delegate api to AWS Route 53
api NS ns-123.awsdns-01.com.
api NS ns-456.awsdns-02.net.
; Delegate cdn to Cloudflare
cdn NS ns1.cloudflare.com.
cdn NS ns2.cloudflare.com.
Zone File Migliori Pratiche
1. Sempre incrementa seriale Dopo ogni cambiamento, o secondarie non aggiorneranno
2. Utilizzare i serial basati su data: Formato YYYYMMDDnn per chiarezza
3. Restrict Zone Transfers: Consentire solo le seconde autorizzate
4. Utilizzare più nameserver: Almeno 2, preferibilmente su diverse reti
5. Set appropriate TTLs: Vantaggi della cache di equilibrio vs velocità di aggiornamento
6. Prima di applicare... Validare la sintassi del file di zona prima del caricamento
7. Trasferimenti di zona motori Assicurare la sincronizzazione delle seconde
8. Delegazioni del documento: Nota quali zone sono delegate e dove
9. # I file della zona di riserva # I backup regolari impediscono la perdita di dati
10. Utilizzare il controllo della versione: Cambiamenti di file di zona di traccia nel tempo
Caratteristiche della zona avanzata
DNSSEC (Zone Signing)
Cryptographically firma record zona:
example.com. IN A 203.0.113.50
example.com. IN RRSIG A 8 2 3600 (
signature-data-here )
Protegge dall'avvelenamento della cache e dalla manomissione.
DNS dinamico (DDNS)
Consentire aggiornamenti della zona programmatica:
# Update A record dynamically
nsupdate -k Kupdate.key <<EOF
server ns1.example.com
update delete www.example.com A
update add www.example.com 300 A 203.0.113.51
send
EOF
Utile per:
- Home Aggiornamenti degli indirizzi IP
- Auto-scaling infrastrutture
- Alla scoperta dei servizi
Zone Views (Split Horizon DNS)
Servire diversi dati della zona in base al client IP:
Internal clients: example.com → 10.0.0.50 (internal)
External clients: example.com → 203.0.113.50 (public)
Utilizzare i casi
- Versioni interne e esterne del sito web
- Risorse di rete private
- risposte basate su geo
Risoluzione dei problemi delle zone
Fallimenti di trasferimento di zona
Sintomo: Secondarie fuori sincronizzazione# Controlli #
# Check if primary allows transfers
dig @ns1.example.com example.com AXFR
# Check secondary logs for errors
tail -f /var/log/named.log
# Soluzioni #
- Verificare le impostazioni di trasferimento
- Controlla la connettività di rete tra i server
- Assicurare il numero di serie aumentato
Numero seriale Non Incrementing
Sintomo: Cambiamenti non propaganti alle seconde# Solution # Aumentare sempre la serie con ogni zona modifica
Delegazione non funzionante
Subdomain non risuona.
# Controlli #
# Verify delegation
dig example.com NS
dig api.example.com NS
# Should show different nameservers for delegated subdomain
# Soluzioni #
- Verificare i record NS nella zona madre
- Controllare i record di colla se i nameserver sono all'interno del sottodominio
- Confermare la zona del bambino è configurata
Le zone DNS sono la base della gestione DNS distribuita: la struttura, la delegazione e la gestione delle zone sono in grado di progettare il DNS in modo efficace per le organizzazioni di qualsiasi dimensione.