RFC 1034 - DOMAIN NAMES - CONCEPTS AND FACILITIES
Nomi di dominio - Concetti e funzionalità
Data di pubblicazione: Novembre 1987
Stato: Standard Internet (STD 13)
Autore: Paul Mockapetris (ISI)
Obsoleto: RFC 882, 883, 973
Status of this Memo (Stato di questo memo)
Questo RFC è un'introduzione al Domain Name System (DNS) e omette molti dettagli che possono essere trovati in un RFC complementare, "Domain Names - Implementation and Specification" [RFC-1035]. Tale RFC presuppone che il lettore sia familiare con i concetti discussi in questo memo.
Un sottoinsieme delle funzioni DNS e dei tipi di dati (Data Types) costituisce un protocollo ufficiale (Official Protocol). Il protocollo ufficiale include query standard (Standard Queries) e le loro risposte, nonché la maggior parte dei formati di dati della classe Internet (ad esempio, indirizzi host).
Tuttavia, il sistema di domini (Domain System) è intenzionalmente estensibile (Extensible). I ricercatori propongono, implementano e sperimentano continuamente nuovi tipi di dati, tipi di query, classi (Classes), funzioni, ecc. Pertanto, mentre ci si aspetta che i componenti del protocollo ufficiale rimangano essenzialmente invariati e funzionino come servizio di produzione, ci si dovrebbe sempre aspettare un comportamento sperimentale nelle estensioni oltre il protocollo ufficiale.
Abstract (Sommario)
Il DNS (Domain Name System, sistema dei nomi di dominio) è uno dei componenti fondamentali dell'infrastruttura Internet, fornendo un sistema di denominazione distribuito e gerarchico (Naming System). Questo RFC introduce i nomi di dominio, il loro uso per la posta Internet e il supporto degli indirizzi host, nonché i protocolli (Protocols) e i server (Servers) utilizzati per implementare le funzionalità dei nomi di dominio.
Sommario (Table of Contents)
1. Status of this Memo (Stato di questo memo)
2. Introduction (Introduzione)
- 2. Introduction (Introduzione)
- 2.1 The history of domain names (La storia dei nomi di dominio)
- 2.2 DNS design goals (Obiettivi di progettazione del DNS)
- 2.3 Assumptions about usage (Presupposti sull'uso)
- 2.4 Elements of the DNS (Elementi del DNS)
3. Domain Name Space and Resource Records (Spazio dei nomi di dominio e record di risorsa)
- 3. Domain Name Space and Resource Records (Spazio dei nomi di dominio e record di risorsa)
- 3.1 Name space specifications and terminology (Specifiche dello spazio dei nomi e terminologia)
- 3.2 Administrative guidelines on use (Linee guida amministrative sull'uso)
- 3.3 Technical guidelines on use (Linee guida tecniche sull'uso)
- 3.4 Example name space (Esempio di spazio dei nomi)
- 3.5 Preferred name syntax (Sintassi del nome preferita)
- 3.6 Resource Records (Record di risorsa)
- 3.6.1 Textual expression of RRs (Espressione testuale degli RR)
- 3.6.2 Aliases and canonical names (Alias e nomi canonici)
- 3.7 Queries (Query)
- 3.7.1 Standard queries (Query standard)
- 3.7.2 Inverse queries (Optional) (Query inverse, opzionale)
- 3.8 Status queries (Experimental) (Query di stato, sperimentale)
- 3.9 Completion queries (Obsolete) (Query di completamento, obsoleto)
4. Name Servers (Server dei nomi)
- 4. Name Servers (Server dei nomi)
- 4.1 Introduction (Introduzione)
- 4.2 How the database is divided into zones (Come il database è diviso in zone)
- 4.2.1 Technical considerations (Considerazioni tecniche)
- 4.2.2 Administrative considerations (Considerazioni amministrative)
- 4.3 Name server internals (Funzionamento interno dei server dei nomi)
- 4.3.1 Queries and responses (Query e risposte)
- 4.3.2 Algorithm (Algoritmo)
- 4.3.3 Wildcards (Caratteri jolly)
- 4.3.4 Negative response caching (Optional) (Caching delle risposte negative, opzionale)
- 4.4 Using the database (Utilizzo del database)
5. Resolvers (Resolver)
- 5. Resolvers (Resolver)
- 5.1 Introduction (Introduzione)
- 5.2 Client-resolver interface (Interfaccia client-resolver)
- 5.3 Resolver internals (Funzionamento interno dei resolver)
Appendici (Appendices)
Riferimento rapido ai concetti chiave
Gerarchia DNS
. (radice)
|
+----------+----------+
| | |
com org net ...
| | |
+----+----+ | +---+---+
| | | | |
google amazon ietf example ...
|
+---+---+
| |
www mail
Struttura del nome di dominio
www.example.com.
│ │ │ └─ radice (solitamente omessa)
│ │ └───── Dominio di primo livello (TLD)
│ └─────────── Dominio di secondo livello (SLD)
└───────────── nome host/sottodominio
Nome di dominio completamente qualificato (Fully Qualified Domain Name, FQDN): www.example.com.
Nome di dominio relativo (Relative Domain Name): www
Tipi di record DNS (RR Types)
| Tipo | Nome | Scopo |
|---|---|---|
| A | Address | Indirizzo IPv4 |
| AAAA | IPv6 Address | Indirizzo IPv6 |
| CNAME | Canonical Name | Record alias |
| MX | Mail Exchange | Server di posta |
| NS | Name Server | Server dei nomi |
| PTR | Pointer | DNS inverso |
| SOA | Start of Authority | Autorità di zona |
| TXT | Text | Record di testo |
| SRV | Service | Localizzazione del servizio |
Tipi di query DNS
Query ricorsiva (Recursive Query):
Client → DNS locale → [query ricorsiva] → Risposta finale
Query iterativa (Iterative Query):
Client → DNS1 → [riferimento] → DNS2 → [riferimento] → DNS3 → Risposta
Formato del record di risorsa (RR Format)
name TTL class type rdata
example.com. 3600 IN A 93.184.216.34
│ │ │ │ │
│ │ │ │ └─ dati del record
│ │ │ └────── tipo di record
│ │ └──────────── classe (IN=Internet)
│ └────────────────── Time To Live (secondi)
└──────────────────────────────── nome di dominio
Processo di risoluzione DNS
1. L'utente interroga www.example.com
↓
2. Controlla la cache locale
↓
3. Interroga il server DNS locale
↓
4. Interroga il server radice → restituisce il server .com
↓
5. Interroga il server .com → restituisce il server example.com
↓
6. Interroga il server example.com → restituisce l'indirizzo IP
↓
7. Restituisce il risultato e memorizza nella cache
Zona vs Dominio
| Concetto | Definizione | Esempio |
|---|---|---|
| Dominio (Domain) | Un nodo nell'albero dei nomi e tutti i suoi sottonodi | example.com e tutti i suoi sottodomini |
| Zona (Zone) | Una parte di un dominio gestita da un'unica autorità | File di zona example.com |
Differenza chiave: Un dominio può essere diviso in più zone a fini di gestione.
Tipi di server dei nomi
| Tipo | Descrizione |
|---|---|
| Server autorevole (Authoritative) | Possiede la fonte ufficiale per i dati di zona |
| Server ricorsivo (Recursive) | Esegue la risoluzione completa per conto dei client |
| Server di cache (Caching) | Memorizza solo i risultati delle query |
| Forwarder | Inoltra le query ad altri server |
Esempio di file di zona
$ORIGIN example.com.
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
IN NS ns1.example.com.
IN NS ns2.example.com.
IN MX 10 mail.example.com.
www IN A 93.184.216.34
mail IN A 93.184.216.35
ftp IN CNAME www.example.com.
Caratteristiche principali del DNS
1. Spazio dei nomi gerarchico (Hierarchical Namespace)
- Struttura ad albero con radice in alto
- Utilizza punti (.) per separare i livelli
- Lettura da destra a sinistra (radice → TLD → SLD → host)
2. Database distribuito (Distributed Database)
- Nessun punto di guasto singolo
- Dati distribuiti su migliaia di server in tutto il mondo
- Ogni zona gestita da server autorevoli
3. Meccanismo di caching
- Riduce la latenza delle query
- Diminuisce il carico sui server radice
- Il TTL controlla il periodo di validità della cache
4. Ridondanza
- 13 cluster di server radice (A-M)
- Ogni zona ha tipicamente più record NS
- Architettura server primario/secondario
5. Estensibilità
- Supporta nuovi tipi di RR
- Supporta nuovi tipi di query
- Meccanismo di estensione EDNS0
DNS vs Sistemi precedenti (HOSTS.TXT)
| Caratteristica | HOSTS.TXT | DNS |
|---|---|---|
| Gestione | Centralizzata | Distribuita |
| Scalabilità | Scarsa (larghezza di banda O(n²)) | Buona (gerarchica) |
| Aggiornamenti | FTP manuale | Sincronizzazione automatica |
| Query | Ricerca file locale | Query di rete |
| Struttura | Lista piatta | Albero gerarchico |
| Prestazioni | Limitata dalle dimensioni del file | Ottimizzata con caching |
Risorse correlate
- RFC ufficiale: RFC 1034 (TXT)
- Pagina ufficiale: RFC 1034 DataTracker
- RFC complementare: RFC 1035 - Implementazione e specifica DNS
- Standard: STD 13
- Aggiornamenti:
- RFC 1101 - Codifica DNS dei nomi di rete
- RFC 1183 - Nuove definizioni di RR DNS
- RFC 2181 - Chiarimenti alla specifica DNS
- RFC 2308 - Caching negativo del DNS
- RFC 4033-4035 - DNSSEC
- RFC 6891 - Estensioni EDNS0
- RFC 8499 - Terminologia DNS
Comandi DNS utili
Unix/Linux/macOS
# Interrogare il record A
dig example.com A
# Interrogare tutti i record
dig example.com ANY
# Tracciare il percorso di risoluzione
dig +trace example.com
# Query DNS inversa
dig -x 8.8.8.8
# Interrogare un server DNS specifico
dig @8.8.8.8 example.com
# Comando nslookup
nslookup example.com
# Comando host
host example.com
Windows
# Interrogare il nome di dominio
nslookup example.com
# Interrogare un tipo specifico
nslookup -type=MX example.com
# Cancellare la cache DNS
ipconfig /flushdns
# Visualizzare la cache DNS
ipconfig /displaydns
Nota importante: Il DNS è un'infrastruttura Internet critica da cui dipendono quasi tutte le applicazioni Internet. Comprendere i concetti DNS e il loro funzionamento è essenziale per la gestione della rete, la sicurezza e la risoluzione dei problemi.
Prossimi passi: Leggere RFC 1035 - Implementazione e specifica DNS per i dettagli di implementazione del protocollo dettagliati.