2. Wildcard Syntax (Sintassi dei wildcard)
2. Wildcard Syntax (Sintassi dei wildcard)
Questa sezione descrive la sintassi associata ai wildcard, inclusa l'interpretazione di record come wildcard e la creazione di record a partire dai wildcard. Le sezioni 2.1 e 2.2 sono normative e aggiornano la sezione 4.3.3 della RFC 1034.
2.1 Identifying a Wildcard (Identificazione di un wildcard)
La definizione di "wildcard" nella sezione 4.3.3 della RFC 1034 è in realtà la definizione di un nome di dominio wildcard, ma mescola il termine con il suo utilizzo. Un nome di dominio wildcard è definito dal fatto che la sua etichetta iniziale (ovvero la più a sinistra o meno significativa) è in formato binario:
0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)
Il primo ottetto è il normale tipo e lunghezza di etichetta per un'etichetta lunga 1 ottetto, e il secondo ottetto è la rappresentazione ASCII [RFC20] del carattere '*'.
Un nome descrittivo di un'etichetta che corrisponde a questo valore è un "asterisk label" (etichetta asterisco).
2.1.1 Wildcard Domain Name and Asterisk Label (Nome di dominio wildcard ed etichetta asterisco)
Un "wildcard domain name" (nome di dominio wildcard) è definito dal fatto che ha l'etichetta asterisco come etichetta meno significativa.
2.1.2 Asterisks and Other Characters (Asterischi e altri caratteri)
In un nome di dominio che non è un nome di dominio wildcard, l'etichetta asterisco può apparire in una posizione diversa da quella meno significativa. Ciò non costituisce un nome di dominio wildcard. Quando un'etichetta asterisco appare in un nome in una posizione diversa da quella meno significativa, viene trattata come qualsiasi altra etichetta. Ovvero, non viene interpretata come wildcard.
È importante notare che l'uso dell'asterisco in un'etichetta non è limitato all'asterisco rappresentato in formato binario come 0x2a (o come ASCII '*'). Qualsiasi etichetta che non sia l'etichetta asterisco può contenere caratteri alfanumerici o altri caratteri. Un'etichetta che contiene un asterisco non è un'etichetta asterisco, a meno che non sia la speciale etichetta a 1 ottetto 0x01 0x2a.
2.1.3 Non-terminal Wildcard Domain Names (Nomi di dominio wildcard non terminali)
Un nome di dominio wildcard può essere un nome non terminale. Un nome non terminale è un nome sotto il quale esistono altri nomi. Un nome di dominio wildcard può quindi essere un antenato (nome padre) di altri nomi. Quando il nome di dominio wildcard è un antenato di altri nomi, è un nome di dominio wildcard non terminale.
2.2 Existence Rules (Regole di esistenza)
Nella RFC 1034 il termine "esistenza" di un nome di dominio non era definito. In questo documento l'esistenza di un nome di dominio è determinata come segue:
- se il nome di dominio è il nome di proprietà di uno o più record di risorse, si dice che esiste, indipendentemente dal contenuto o dal tipo dei record di risorse; in caso contrario,
- se il nome di dominio è un punto di delegazione, esiste; in caso contrario,
- se il nome di dominio è "sotto" un nome di dominio esistente (ovvero è un sottodominio di un nome di dominio esistente), esiste; in caso contrario,
- il nome di dominio non esiste.
2.2.1 An Example (Un esempio)
Si consideri la seguente zona (teorica):
$ORIGIN example.
example. 3600 IN SOA ns1.example. hostmaster.example. (
2006032100 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
3600 ) ; minimum
host.example. 3600 IN A 192.0.2.1
*.example. 3600 IN TXT "wildcard"
*.host.example. 3600 IN TXT "wildcard2"
_sub._tcp.example. 3600 IN SRV 0 0 0 old-slow-server.example.
In questa zona esistono i nomi "example.", "host.example.", ".example.", ".host.example." e "_sub._tcp.example.". Si noti che "*.example." è un nome di dominio wildcard, ma è anche un nome non terminale, poiché sotto di esso esiste "_sub._tcp.example.".
2.2.2 Empty Non-terminals (Non terminali vuoti)
Un nome non terminale vuoto è un nome che esiste senza avere propri record di risorse, perché sotto di esso esistono altri nomi. Ad esempio, l'esistenza di "_sub._tcp.example." nell'esempio precedente richiede che "_tcp.example." e "_sub._tcp.example." siano considerati esistenti, sebbene non abbiano record di risorse a essi associati. Questi sono non terminali vuoti.
2.2.3 Yet Another Definition of Existence (Ancora una definizione di esistenza)
La definizione di esistenza fornita sopra nella sezione 2.2 non è l'unica utile. Un'alternativa è considerare che un nome esiste quando acquisisce la proprietà di un record di risorse, sia direttamente sia per eredità da un nome padre. Questa visione è utile per la sintesi, poiché spiega perché i non terminali vuoti siano considerati esistenti.
2.3 When Is a Wildcard Domain Name Not Special? (Quando un nome di dominio wildcard non è speciale?)
Un nome di dominio wildcard è speciale solo quando viene utilizzato per sintetizzare record; in tutti gli altri casi non è speciale. Il nome di dominio wildcard è speciale solo nel passo 3.c dell'algoritmo di risoluzione specificato nella sezione 4.3.2 della RFC 1034.