Passa al contenuto principale

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)

TipoNomeScopo
AAddressIndirizzo IPv4
AAAAIPv6 AddressIndirizzo IPv6
CNAMECanonical NameRecord alias
MXMail ExchangeServer di posta
NSName ServerServer dei nomi
PTRPointerDNS inverso
SOAStart of AuthorityAutorità di zona
TXTTextRecord di testo
SRVServiceLocalizzazione 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

ConcettoDefinizioneEsempio
Dominio (Domain)Un nodo nell'albero dei nomi e tutti i suoi sottonodiexample.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

TipoDescrizione
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
ForwarderInoltra 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)

CaratteristicaHOSTS.TXTDNS
GestioneCentralizzataDistribuita
ScalabilitàScarsa (larghezza di banda O(n²))Buona (gerarchica)
AggiornamentiFTP manualeSincronizzazione automatica
QueryRicerca file localeQuery di rete
StrutturaLista piattaAlbero gerarchico
PrestazioniLimitata dalle dimensioni del fileOttimizzata 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.