3. Domain Name Space and RR Definitions (Spazio dei nomi di dominio e definizioni RR)
Questo capitolo definisce come i nomi di dominio vengono codificati nel DNS e il formato dei record di risorse (Resource Records). Questa è la specifica tecnica principale per l'implementazione del DNS.
3.1. Name Space Definitions (Definizioni dello spazio dei nomi)
Codifica dei nomi di dominio
I nomi di dominio nei messaggi sono espressi in termini di una sequenza di etichette (Sequence of Labels).
Formato di codifica:
Ogni etichetta è rappresentata come:
[byte di lunghezza (1 byte)][contenuto dell'etichetta (N byte)]
Esempio: www.example.com
Codificato come: 3www7example3com0
Spiegazione dettagliata:
- Ogni etichetta è rappresentata da un campo di lunghezza di un ottetto seguito da quel numero di ottetti
- Poiché ogni nome di dominio termina con l'etichetta nulla della radice, un nome di dominio è terminato da un byte di lunghezza zero
- I due bit di ordine superiore di ogni ottetto di lunghezza devono (MUST) essere zero
- I restanti sei bit del campo di lunghezza limitano l'etichetta a 63 ottetti o meno
Limiti di lunghezza:
Etichetta singola: ≤ 63 byte
Nome di dominio completo: ≤ 255 byte (inclusi i byte di lunghezza)
Regole del contenuto dell'etichetta
Valori dei byte: Le etichette possono contenere qualsiasi valore a 8 bit negli ottetti che compongono un'etichetta
Forte raccomandazione: Le etichette dovrebbero (SHOULD) seguire la sintassi preferita descritta altrove in questo memo, che è compatibile con le convenzioni di denominazione host esistenti
Regole di confronto:
- I name server e i resolver devono (MUST) confrontare le etichette in modo insensibile alle maiuscole/minuscole
- Assumendo ASCII con parità zero (cioè, A=a)
- I codici non alfabetici devono corrispondere esattamente
3.2. RR Definitions (Definizioni RR)
3.2.1. Format (Formato)
Tutti gli RR (Resource Records, record di risorse) hanno lo stesso formato di livello superiore mostrato di seguito:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Descrizioni dei campi:
-
NAME: Un nome di proprietario (Owner Name), cioè il nome del nodo a cui questo record di risorsa si riferisce.
-
TYPE: Due ottetti contenenti uno dei codici RR TYPE.
-
CLASS: Due ottetti contenenti uno dei codici RR CLASS.
-
TTL: Un intero con segno a 32 bit che specifica l'intervallo di tempo durante il quale il record di risorsa può essere memorizzato nella cache prima che la fonte dell'informazione debba essere nuovamente consultata. I valori zero sono interpretati nel senso che il RR può essere utilizzato solo per la transazione in corso e non deve essere memorizzato nella cache.
-
RDLENGTH: Un intero senza segno a 16 bit che specifica la lunghezza in ottetti del campo RDATA.
-
RDATA: Una stringa di ottetti di lunghezza variabile che descrive la risorsa. Il formato di queste informazioni varia a seconda del TYPE e della CLASS del record di risorsa.
3.2.2. TYPE Values (Valori TYPE)
I campi TYPE sono utilizzati nei record di risorse. Si noti che questi tipi sono un sottoinsieme dei QTYPE.
| TYPE | Valore | Significato |
|---|---|---|
| A | 1 | Indirizzo host |
| NS | 2 | Name server autoritativo |
| MD | 3 | Destinazione posta (Obsoleto - usare MX) |
| MF | 4 | Inoltro posta (Obsoleto - usare MX) |
| CNAME | 5 | Nome canonico per un alias |
| SOA | 6 | Inizio di una zona di autorità |
| MB | 7 | Nome di dominio mailbox (SPERIMENTALE) |
| MG | 8 | Membro del gruppo di posta (SPERIMENTALE) |
| MR | 9 | Nome di dominio rinomina posta (SPERIMENTALE) |
| NULL | 10 | RR nullo (SPERIMENTALE) |
| WKS | 11 | Descrizione servizio noto |
| PTR | 12 | Puntatore al nome di dominio |
| HINFO | 13 | Informazioni host |
| MINFO | 14 | Informazioni mailbox o mailing list |
| MX | 15 | Scambio di posta |
| TXT | 16 | Stringhe di testo |
3.2.3. QTYPE Values (Valori QTYPE)
I campi QTYPE appaiono nella parte question di una query. I QTYPE sono un sovrainsieme dei TYPE, quindi tutti i TYPE sono QTYPE validi.
| QTYPE | Valore | Significato |
|---|---|---|
| AXFR | 252 | Richiesta di trasferimento di un'intera zona |
| MAILB | 253 | Richiesta di record relativi alla mailbox (MB, MG o MR) |
| MAILA | 254 | Richiesta di RR di agent di posta (Obsoleto - vedere MX) |
| * | 255 | Richiesta di tutti i record |
3.2.4. CLASS Values (Valori CLASS)
I campi CLASS appaiono nei record di risorse.
| CLASS | Valore | Significato |
|---|---|---|
| IN | 1 | Internet |
| CS | 2 | La classe CSNET (Obsoleto) |
| CH | 3 | La classe CHAOS |
| HS | 4 | Hesiod [Dyer 87] |
3.2.5. QCLASS Values (Valori QCLASS)
I campi QCLASS appaiono nella sezione question di una query. I valori QCLASS sono un sovrainsieme dei valori CLASS.
| QCLASS | Valore | Significato |
|---|---|---|
| * | 255 | Qualsiasi classe |
3.3. Standard RRs (RR standard)
Le seguenti definizioni RR dovrebbero essere presenti in tutte le implementazioni.
3.3.1. CNAME RDATA Format (Formato CNAME RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ CNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- CNAME: Un nome di dominio che specifica il nome canonico o primario per il proprietario. Il nome del proprietario è un alias.
Utilizzo di CNAME:
- Un RR CNAME identifica il suo nome di proprietario come alias
- Specifica il nome canonico corrispondente nella sezione RDATA
- Se un RR CNAME è presente in un nodo, non dovrebbero (SHOULD NOT) essere presenti altri dati
- Ciò garantisce che i dati per un nome canonico e i suoi alias non possano essere diversi
3.3.2. HINFO RDATA Format (Formato HINFO RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ CPU /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ OS /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- CPU: Una stringa di caratteri che specifica il tipo di CPU.
- OS: Una stringa di caratteri che specifica il tipo di sistema operativo.
Scopo: I record HINFO sono utilizzati per acquisire informazioni generali su un host.
3.3.3. MB RDATA Format (Formato MB RDATA) - SPERIMENTALE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MADNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- MADNAME: Un nome di dominio che specifica un host che ha la mailbox specificata.
Stato: SPERIMENTALE
3.3.4. MD RDATA Format (Formato MD RDATA) - Obsoleto
Stato: Obsoleto - Utilizzare MX
3.3.5. MF RDATA Format (Formato MF RDATA) - Obsoleto
Stato: Obsoleto - Utilizzare MX
3.3.6. MG RDATA Format (Formato MG RDATA) - SPERIMENTALE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MGMNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- MGMNAME: Un nome di dominio che specifica una mailbox che è membro del gruppo di posta identificato dal nome di dominio.
Stato: SPERIMENTALE
3.3.7. MINFO RDATA Format (Formato MINFO RDATA) - SPERIMENTALE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RMAILBX /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ EMAILBX /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- RMAILBX: Un nome di dominio che specifica la mailbox responsabile della mailbox.
- EMAILBX: Un nome di dominio che specifica la mailbox che riceve i messaggi di errore.
Stato: SPERIMENTALE
3.3.8. MR RDATA Format (Formato MR RDATA) - SPERIMENTALE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ NEWNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- NEWNAME: Un nome di dominio che specifica il nome corretto della mailbox.
Stato: SPERIMENTALE
3.3.9. MX RDATA Format (Formato MX RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| PREFERENCE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ EXCHANGE /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- PREFERENCE: Un intero a 16 bit che specifica la preferenza data a questo RR tra altri allo stesso proprietario. Valori più bassi sono preferiti.
- EXCHANGE: Un nome di dominio che specifica un host disposto ad agire come scambio di posta per il nome del proprietario.
Utilizzo di MX:
- I record MX causano un'elaborazione della sezione aggiuntiva di tipo A per l'host specificato da EXCHANGE
- L'uso dei RR MX è spiegato in dettaglio in RFC-974
3.3.10. NULL RDATA Format (Formato NULL RDATA) - SPERIMENTALE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ `<anything>` /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
<anything>: Qualsiasi contenuto, massimo 65535 ottetti
Scopo:
- Il RR NULL non viene utilizzato per operazioni normali
- Può essere utilizzato per scopi sperimentali
- Può contenere dati arbitrari
Stato: SPERIMENTALE
3.3.11. NS RDATA Format (Formato NS RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ NSDNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- NSDNAME: Un nome di dominio che specifica un host che dovrebbe essere autoritativo per la classe e il dominio specificati.
Utilizzo di NS:
- I record NS causano sia l'elaborazione abituale della sezione aggiuntiva per localizzare un record di tipo A
- Quando utilizzati in un riferimento, segnalano un punto di delega nello spazio dei nomi
3.3.12. PTR RDATA Format (Formato PTR RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ PTRDNAME /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- PTRDNAME: Un nome di dominio che punta a una posizione nello spazio dei nomi di dominio.
Utilizzo di PTR:
- I record PTR non causano elaborazione della sezione aggiuntiva
- Questi RR sono utilizzati in domini speciali per puntare ad un'altra posizione nello spazio dei nomi di dominio
- Principalmente utilizzati per ricerche DNS inverse nel dominio IN-ADDR.ARPA
3.3.13. SOA RDATA Format (Formato SOA RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ MNAME /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RNAME /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SERIAL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| REFRESH |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RETRY |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| EXPIRE |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| MINIMUM |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- MNAME: Il nome di dominio del name server che era la fonte originale o primaria di dati per questa zona.
- RNAME: Un nome di dominio che specifica la mailbox della persona responsabile per questa zona.
- SERIAL: Il numero di versione senza segno a 32 bit della copia originale della zona.
- REFRESH: Un intervallo di tempo a 32 bit prima che la zona debba essere aggiornata.
- RETRY: Un intervallo di tempo a 32 bit che dovrebbe trascorrere prima che un aggiornamento fallito debba essere ritentato.
- EXPIRE: Un valore di tempo a 32 bit che specifica il limite superiore dell'intervallo di tempo che può trascorrere prima che la zona non sia più autoritativa.
- MINIMUM: Il campo TTL minimo senza segno a 32 bit che dovrebbe essere esportato con qualsiasi RR da questa zona.
3.3.14. TXT RDATA Format (Formato TXT RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ TXT-DATA /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- TXT-DATA: Una o più stringhe di caratteri.
Utilizzo di TXT:
- I RR TXT sono utilizzati per contenere testo descrittivo
- La semantica del testo dipende dal dominio in cui si trova
- Comunemente utilizzati per SPF, DKIM, verifica del dominio, ecc.
3.4. Internet Specific RRs (RR specifici di Internet)
3.4.1. A RDATA Format (Formato A RDATA)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Campi:
- ADDRESS: Un indirizzo Internet a 32 bit.
Utilizzo del record A:
- Gli host che hanno più indirizzi Internet avranno più record A
- La sezione RDATA di una riga A in un file master è un indirizzo Internet espresso come quattro numeri decimali separati da punti
Esempio:
www.example.com. IN A 93.184.216.34
3.5. IN-ADDR.ARPA Domain (Dominio IN-ADDR.ARPA)
Il dominio IN-ADDR.ARPA è utilizzato per lookup DNS inversi (Reverse DNS Lookups) - mappare indirizzi IP a nomi di dominio.
Struttura:
- Il dominio è organizzato da ottetti di indirizzo IP in ordine inverso
- Ogni ottetto forma un'etichetta nel nome di dominio
Esempio:
Indirizzo IP: 93.184.216.34
Nome IN-ADDR.ARPA: 34.216.184.93.in-addr.arpa.
Utilizzo:
- I record PTR nel dominio IN-ADDR.ARPA puntano al nome host canonico
- Ciò consente alle applicazioni di mappare da un indirizzo a un nome
Esempio di record PTR:
34.216.184.93.in-addr.arpa. IN PTR www.example.com.
3.6. Defining New Types, Classes, and Special Namespaces (Definizione di nuovi tipi, classi e spazi dei nomi speciali)
Il DNS è progettato per essere estensibile. Nuovi tipi e classi RR possono essere definiti per supportare nuove applicazioni e servizi.
Linee guida:
- I nuovi tipi e classi dovrebbero (SHOULD) essere registrati con l'IANA
- Le implementazioni dovrebbero (SHOULD) essere in grado di gestire i tipi sconosciuti in modo appropriato
- I tipi RR sconosciuti dovrebbero (SHOULD) essere preservati e passati attraverso dai name server
- Il formato generale degli RR consente di aggiungere nuovi tipi senza rompere le implementazioni esistenti
Successivo: 4. Messages (Messaggi)