Passa al contenuto principale

RFC 1035 - Nomi di dominio - Implementazione e specifica

Stato: Standard Internet (STD 13)
Obsoleto: RFC 882, 883, 973
Autore: Paul Mockapetris (ISI)
Data di pubblicazione: Novembre 1987

Questo RFC descrive i dettagli del sistema di dominio e del protocollo, e presuppone che il lettore abbia familiarità con i concetti discussi nel RFC complementare «Domain Names - Concepts and Facilities (Nomi di dominio - Concetti e strutture)» [RFC-1034].

Il sistema di dominio è una combinazione di funzioni e tipi di dati che costituiscono un protocollo ufficiale e funzioni e tipi di dati che sono ancora sperimentali. Poiché il sistema di dominio è intenzionalmente progettato per essere estensibile, nuovi tipi di dati e comportamenti sperimentali dovrebbero sempre essere previsti nelle parti del sistema oltre il protocollo ufficiale. Le parti del protocollo ufficiale includono query standard, risposte e formati di dati RR di classe Internet (ad esempio, indirizzi host).

Importanza

RFC 1035 insieme a RFC 1034 forma la specifica di base del DNS:

  • RFC 1034: Concetti e strutture (teoria e architettura)
  • RFC 1035: Implementazione e specifica (protocollo e formati)

Questo RFC fornisce tutti i dettagli tecnici necessari per implementare il DNS, inclusi:

  • 📦 Formato e codifica dei messaggi
  • 📋 Definizioni dei record di risorse
  • 📁 Formato dei file di zona
  • 🖥️ Implementazione del name server
  • 🔍 Implementazione del resolver

Indice

2. Introduction (Introduzione)

  • 2.1 Panoramica
  • 2.2 Configurazioni comuni
  • 2.3 Convenzioni
    • 2.3.1 Sintassi del nome preferita
    • 2.3.2 Ordine di trasmissione dei dati
    • 2.3.3 Maiuscole e minuscole dei caratteri
    • 2.3.4 Limiti di dimensione

3. Domain Name Space and RR Definitions (Spazio dei nomi di dominio e definizioni RR)

  • 3.1 Definizioni dello spazio dei nomi
  • 3.2 Definizioni RR
    • 3.2.1 Formato
    • 3.2.2 Valori TYPE
    • 3.2.3 Valori QTYPE
    • 3.2.4 Valori CLASS
    • 3.2.5 Valori QCLASS
  • 3.3 RR standard
    • 3.3.1 Formato CNAME RDATA
    • 3.3.2 Formato HINFO RDATA
    • 3.3.3 Formato MB RDATA (SPERIMENTALE)
    • 3.3.4 Formato MD RDATA (Obsoleto)
    • 3.3.5 Formato MF RDATA (Obsoleto)
    • 3.3.6 Formato MG RDATA (SPERIMENTALE)
    • 3.3.7 Formato MINFO RDATA (SPERIMENTALE)
    • 3.3.8 Formato MR RDATA (SPERIMENTALE)
    • 3.3.9 Formato MX RDATA
    • 3.3.10 Formato NULL RDATA (SPERIMENTALE)
    • 3.3.11 Formato NS RDATA
    • 3.3.12 Formato PTR RDATA
    • 3.3.13 Formato SOA RDATA
    • 3.3.14 Formato TXT RDATA
  • 3.4 RR specifici di Internet
    • 3.4.1 Formato A RDATA
    • 3.4.2 Formato WKS RDATA
  • 3.5 Dominio IN-ADDR.ARPA
  • 3.6 Definizione di nuovi tipi, classi e spazi dei nomi speciali

4. Messages (Messaggi)

  • 4.1 Formato
    • 4.1.1 Formato della sezione header
    • 4.1.2 Formato della sezione question
    • 4.1.3 Formato del record di risorse
    • 4.1.4 Compressione dei messaggi
  • 4.2 Trasporto
    • 4.2.1 Utilizzo UDP
    • 4.2.2 Utilizzo TCP

5. Master Files (File master)

  • 5.1 Formato
  • 5.2 Utilizzo dei file master per definire le zone
  • 5.3 Esempio di file master

6. Name Server Implementation (Implementazione del name server)

  • 6.1 Architettura
    • 6.1.1 Controllo
    • 6.1.2 Database
    • 6.1.3 Tempo
  • 6.2 Elaborazione delle query standard
  • 6.3 Elaborazione dell'aggiornamento e ricaricamento della zona
  • 6.4 Query inverse (Opzionale)
  • 6.5 Query e risposte di completamento

7. Resolver Implementation (Implementazione del resolver)

  • 7.1 Trasformazione di una richiesta utente in una query
  • 7.2 Invio delle query
  • 7.3 Elaborazione delle risposte
  • 7.4 Utilizzo della cache

Glossary (Glossario)

References (Riferimenti)

Riferimento rapido

Formato del messaggio DNS

    +---------------------+
| Header | 12 byte
+---------------------+
| Question | variabile
+---------------------+
| Answer | variabile
+---------------------+
| Authority | variabile
+---------------------+
| Additional | variabile
+---------------------+

Formato dell'header DNS (12 byte)

                                    1  1  1  1  1  1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

Tipi RR comuni

TYPEValoreDescrizione
A1Indirizzo host
NS2Name server autoritativo
CNAME5Nome canonico (alias)
SOA6Inizio dell'autorità
PTR12Puntatore al nome di dominio
MX15Scambio di posta
TXT16Stringhe di testo
AAAA28Indirizzo IPv6 (RFC 3596)

Codici di risposta (RCODE)

ValoreNomeDescrizione
0NOERRORNessun errore
1FORMERRErrore di formato
2SERVFAILErrore del server
3NXDOMAINIl nome non esiste
4NOTIMPNon implementato
5REFUSEDRifiutato

Limiti di dimensione

ElementoLimiteDescrizione
Etichetta63 byteLunghezza massima di una singola etichetta
Nome di dominio255 byteLunghezza massima di un nome di dominio completo
Messaggio UDP512 byteDimensione predefinita del messaggio UDP
Messaggio TCP65535 byteDimensione massima del messaggio TCP
TTL2^31-1 secondiTempo di vita massimo

Relazione con RFC 1034

RFC 1034RFC 1035
Concetti e teoriaImplementazione e protocollo
Struttura dello spazio dei nomi di dominioFormato del messaggio
Funzioni del name serverImplementazione del name server
Concetti del resolverImplementazione del resolver
Gestione delle zoneFormato dei file di zona

Requisiti di implementazione

Deve implementare (MUST)

  • ✅ Query e risposte standard
  • ✅ Record A, NS, CNAME, SOA, PTR, MX
  • ✅ Trasporto UDP (512 byte)
  • ✅ Compressione dei messaggi
  • ✅ Confronto case-insensitive

Dovrebbe implementare (SHOULD)

  • ✅ Trasporto TCP (per risposte di grandi dimensioni)
  • ✅ Trasferimento di zona (AXFR)
  • ✅ Caching e gestione TTL
  • ✅ Supporto per query ricorsive

Può implementare (MAY)

  • Query inverse
  • Tipi RR sperimentali
  • Aggiornamenti dinamici

RFC correlati

  • RFC 1034: Concetti e strutture DNS (documento complementare)
  • RFC 2181: Chiarimenti sulla specifica DNS
  • RFC 2308: Caching negativo delle query DNS
  • RFC 3596: Estensioni DNS per IPv6
  • RFC 4033-4035: DNSSEC
  • RFC 6891: EDNS(0)
  • RFC 8499: Terminologia DNS

Risorse online


Documento complementare: RFC 1034 - Concetti e strutture DNS

Capitolo successivo: 2. Introduction (Introduzione)