Passa al contenuto principale

RFC 1035 - Nomi di dominio - Implementazione e specifica

  • Stato: Internet Standard
  • Pubblicato: November 1987
  • Stream: Legacy
  • Sostituisce: RFC882, RFC883, RFC973
  • Errata: Nessun errata

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​

1. Status (Stato)​

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)​

Technical Guide (Guida tecnica)​

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)

Riferimenti​

Elenco completo delle fonti e dei riferimenti bibliografici presenti nel memo originale.

[Dyer 87] S. Dyer, F. Hsu, "Hesiod", Project Athena Technical Plan - Name Service, April 1987, version 1.9.

            Descrive le basi del servizio dei nomi Hesiod.

[IEN-116] J. Postel, "Internet Name Server", IEN-116, USC/Information Sciences Institute, August 1979.

            Un servizio dei nomi reso obsoleto dal Domain Name
System, ma ancora in uso.

[Quarterman 86] J. Quarterman, and J. Hoskins, "Notable Computer Networks", Communications of the ACM, October 1986, volume 29, number 10.

[RFC-742] K. Harrenstien, "NAME/FINGER", RFC-742, Network Information Center, SRI International, December 1977.

[RFC-768] J. Postel, "User Datagram Protocol", RFC-768, USC/Information Sciences Institute, August 1980.

[RFC-793] J. Postel, "Transmission Control Protocol", RFC-793, USC/Information Sciences Institute, September 1981.

[RFC-799] D. Mills, "Internet Name Domains", RFC-799, COMSAT, September 1981.

            Propone l'introduzione di una gerarchia al posto di uno
spazio dei nomi piatto per Internet.

[RFC-805] J. Postel, "Computer Mail Meeting Notes", RFC-805, USC/Information Sciences Institute, February 1982.

[RFC-810] E. Feinler, K. Harrenstien, Z. Su, and V. White, "DOD Internet Host Table Specification", RFC-810, Network Information Center, SRI International, March 1982.

            Obsoleto. Vedi RFC-952.

[RFC-811] K. Harrenstien, V. White, and E. Feinler, "Hostnames Server", RFC-811, Network Information Center, SRI International, March 1982.

            Obsoleto. Vedi RFC-953.

[RFC-812] K. Harrenstien, and V. White, "NICNAME/WHOIS", RFC-812, Network Information Center, SRI International, March 1982.

[RFC-819] Z. Su, and J. Postel, "The Domain Naming Convention for Internet User Applications", RFC-819, Network Information Center, SRI International, August 1982.

            Primi pensieri sulla progettazione del sistema a domini.
L'implementazione attuale è completamente diversa.

[RFC-821] J. Postel, "Simple Mail Transfer Protocol", RFC-821, USC/Information Sciences Institute, August 1980.

[RFC-830] Z. Su, "A Distributed System for Internet Name Service", RFC-830, Network Information Center, SRI International, October 1982.

            Primi pensieri sulla progettazione del sistema a domini.
L'implementazione attuale è completamente diversa.

[RFC-882] P. Mockapetris, "Domain names - Concepts and Facilities," RFC-882, USC/Information Sciences Institute, November 1983.

            Sostituito da questo memo.

[RFC-883] P. Mockapetris, "Domain names - Implementation and Specification," RFC-883, USC/Information Sciences Institute, November 1983.

            Sostituito da questo memo.

[RFC-920] J. Postel and J. Reynolds, "Domain Requirements", RFC-920, USC/Information Sciences Institute, October 1984.

            Spiega lo schema di denominazione dei domini di primo
livello.

[RFC-952] K. Harrenstien, M. Stahl, E. Feinler, "DoD Internet Host Table Specification", RFC-952, SRI, October 1985.

            Specifica il formato di HOSTS.TXT, la tabella
host/indirizzo sostituita dal DNS.

[RFC-953] K. Harrenstien, M. Stahl, E. Feinler, "HOSTNAME Server", RFC-953, SRI, October 1985.

            Questo RFC contiene la specifica ufficiale del protocollo
del server dei nomi host, reso obsoleto dal DNS. Questo
protocollo basato su TCP accede alle informazioni
memorizzate nel formato RFC-952 e serve a ottenere copie
della tabella degli host.

[RFC-973] P. Mockapetris, "Domain System Changes and Observations", RFC-973, USC/Information Sciences Institute, January 1986.

            Descrive le modifiche ai RFC-882 e RFC-883 e i relativi
motivi.

[RFC-974] C. Partridge, "Mail routing and the domain system", RFC-974, CSNET CIC BBN Labs, January 1986.

            Descrive la transizione dall'indirizzamento postale
basato su HOSTS.TXT al più potente sistema MX usato con
il sistema a domini.

[RFC-1001] NetBIOS Working Group, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and Methods", RFC-1001, March 1987.

            Questo RFC e il RFC-1002 sono una bozza preliminare di
NETBIOS su TCP/IP che propone di basare il servizio dei
nomi NetBIOS sul DNS.

[RFC-1002] NetBIOS Working Group, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed Specifications", RFC-1002, March 1987.

[RFC-1010] J. Reynolds, and J. Postel, "Assigned Numbers", RFC-1010, USC/Information Sciences Institute, May 1987.

            Contiene i numeri di socket e le mnemonics per i nomi
host, i sistemi operativi, ecc.

[RFC-1031] W. Lazear, "MILNET Name Domain Transition", RFC-1031, November 1987.

            Descrive un piano per convertire il MILNET nel DNS.

[RFC-1032] M. Stahl, "Establishing a Domain - Guidelines for Administrators", RFC-1032, November 1987.

            Descrive le politiche di registrazione usate dal NIC per
amministrare i domini di primo livello e delegare
sottopzone.

[RFC-1033] M. Lottor, "Domain Administrators Operations Guide", RFC-1033, November 1987.

            Una guida pratica per gli amministratori di domini.

[Solomon 82] M. Solomon, L. Landweber, and D. Neuhengen, "The CSNET Name Server", Computer Networks, vol 6, nr 3, July 1982.

            Descrive un servizio dei nomi per CSNET indipendente dal
DNS e l'uso del DNS nel CSNET.

[RFC-974]. Vedi la sezione su MX e routing della posta.

[RFC-1034]. Documento complementare: DNS – Concetti e strutture, vedi sezione 2.

[RFC-1034]. Vedi la sezione 4 – Dettagli di implementazione.