Active Directory supporta i nomi DNS con spazi?


8

Durante la ricerca di come impostare alcuni servizi DNS-SD statici nella nostra rete, mi sono imbattuto in http://www.dns-sd.org/ServerStaticSetup.html , in cui si afferma che il server DNS di Active Directory non supporta i nomi DNS con spazi in loro.

Qualcuno sa se questo è ancora vero (poiché la pagina sembra piuttosto vecchia)?

Aggiornamento: mi riferisco principalmente ai record PTR e SRV, non ai record A / CNAME.


2
Questo può sembrare folle, ma non ho mai visto MAI un URI con uno spazio al suo interno, è conforme anche a RFC? Perché questo è rilevante per te?
SpacemanSpiff,

11
RFC1035, 2.3.1: "[I domini] devono iniziare con una lettera, terminare con una lettera o una cifra e contenere come caratteri interni solo lettere, cifre e trattino."
Smudge,

@SpacemanSpiff non è conforme a RFC in nessuno schema URL in cui la porzione di dominio rappresenta un nome host (ovvero la maggior parte di essi).
Alnitak,

Puoi fare un esempio del tipo specifico di voce che desideri creare?
Alnitak,

1
@Sam quella frase citata riguarda i nomi host , non "domini".
Alnitak,

Risposte:


30

Un nome di dominio può includere qualsiasi ottetto binario nell'intervallo da 0 a 255.

Tuttavia, se le voci AD rappresentano nomi host , uno spazio non è un carattere valido. Un nome host (ovvero un nome di dominio che punta a un Ao AAAArecord) deve seguire le regole di RFC 1123 , che essenzialmente limita i caratteri legali a LDH ("trattino di lettere").

Quindi per altre voci è perfettamente possibile che gli Stati membri abbiano interpretato erroneamente gli RFC. Non saranno i primi e certamente non saranno gli ultimi.

Riferimenti

§5.1 di RFC 1035 :

Le convenzioni di quotazione consentono di memorizzare caratteri arbitrari nei nomi di dominio.

e §6.1.3.5. di RFC 1123 :

Il DNS definisce la sintassi del nome di dominio in generale - una stringa di etichette contenenti ciascuna fino a 63 ottetti a 8 bit, separati da punti

e §11 di RFC 2181 :

qualsiasi stringa binaria, qualunque cosa possa essere utilizzata come etichetta di qualsiasi record di risorse


Sì, questo è ciò di cui ho paura ...
GM

9

Ah - mi dispiace essere snippy, ma hai un coglione il cane qui. Non è che AD non supporta i nomi DNS con spazi, ma i nomi DNS per definizione e RFC non possono avere spazi con cui iniziare. RFC 952 e 1123 entrambi non consentono spazi come parte di un nome DNS.

Quindi, AD non manca il supporto per gli spazi nei nomi DNS come shortcoing ma perché segue le stesse regole di tutti gli altri.


2
Correggi la tua nomenclatura. A rigor di termini una voce DNS può contenere spazi. Tuttavia, un nome host potrebbe non esserlo .
Alnitak,

3
Temo che ti sbagli: nel DNS ci sono chiare istanze di nomi di dominio ( non "nomi di ZONA") che non sono tenuti a seguire le regole RFC 1123 per un "nome host". Ad esempio, i caratteri di sottolineatura con prefisso utilizzati dai SRVrecord. Vedi anche §6.1.3.5 di RFC 1123 e il mio profilo.
Alnitak,

6
i record srv sono casi molto speciali. Ancora una volta, giochi. Dove consente uno spazio? Cita la sezione di un RFC che consente uno spazio da qualche parte e hai ragione. Continua a discutere e ti sbagli ancora. Smetti di piagnucolare qualcuno chiama il tuo bluff.
TomTom,

17
L'ho già fatto - §6.1.3.5 di RFC 1123 "Il DNS definisce la sintassi del nome di dominio in generale - una stringa di etichette contenenti ciascuna fino a 63 ottetti a 8 bit, separati da punti" . Gli standard DNS e il protocollo sono il mio lavoro quotidiano, FWIW.
Alnitak,

1
@TomTom la mia risposta cita la parte pertinente degli RFC che mostrano che Alnitak è corretta; i nomi host NON POSSONO contenere spazi, tuttavia i nomi DNS in generale POSSONO effettivamente contenere spazi.
aculich,

5

La risposta alla tua domanda specifica è NO , Active Directory NON consente spazi nei nomi host DNS . I caratteri proibiti sono chiaramente indicati in KB 909264 - Convenzioni di denominazione in Active Directory per computer, domini, siti e unità organizzative nella sezione denominata Caratteri non consentiti che legge:

Il nome host DNS non può contenere caratteri vuoti o di spazio.

Per estendere la risposta oltre Active Directory al sistema di nomi di dominio DNS in generale, la situazione è un po 'più complicata perché mentre in alcuni casi gli spazi sono tecnicamente ammessi, in pratica probabilmente non incontrerai mai un caso del genere.

La risposta breve: NON UTILIZZARE GLI SPAZI NEGLI HOSTNAMI DNS!

La risposta lunga secondo §2 della RFC 3696, Restrizioni sui nomi di dominio (DNS), è che:

Qualsiasi carattere o combinazione di bit (come ottetti) sono consentiti nei nomi DNS.

Continua affermando (enfasi la mia):

Tuttavia, esiste un modulo preferito richiesto dalla maggior parte delle applicazioni. Questa forma preferita è stata l'unica consentita nei nomi di domini di primo livello o TLD. In generale, è anche l'unica forma consentita nella maggior parte dei nomi di secondo livello registrati nei TLD, anche se alcuni nomi che normalmente non sono visti dagli utenti obbediscono ad altre regole. Deriva dalle regole originali di ARPANET per la denominazione degli host (cioè la regola "hostname") ed è forse meglio descritta come "regola LDH", dopo i caratteri che consente. La regola LDH, come aggiornata, lo prevedele etichette (parole o stringhe separate da punti) che compongono un nome di dominio devono essere costituite solo dai caratteri alfabetici e numerici ASCII [ASCII], oltre al trattino. Non sono ammessi altri simboli o segni di punteggiatura, né spazi vuoti. Se viene utilizzato il trattino, non è consentito apparire all'inizio o alla fine di un'etichetta. Esiste una regola aggiuntiva che richiede essenzialmente che i nomi di dominio di livello superiore non siano tutti numerici.

In pratica questo significa che NON dovresti usare spazi , anche se nella specifica più generale dei nomi di dominio come definita in questi estratti dal §5.1 di RFC 1035 è possibile consentire spazi nei nomi di dominio:

I <domain-name> s costituiscono una grande parte dei dati nel file principale. Le etichette nel nome di dominio sono espresse come stringhe di caratteri e separate da punti. Le convenzioni di quotazione consentono di memorizzare caratteri arbitrari nei nomi di dominio.

e

<character-string> è espresso in uno o due modi: come un insieme contiguo di caratteri senza spazi interni o come una stringa che inizia con un "e termina con un". All'interno di una "stringa delimitata, può verificarsi qualsiasi carattere, ad eccezione di un" stesso, che deve essere citato usando \ (barra rovesciata).

Tieni presente che altrove in RFC 1035, in particolare §2.3 , avverte:

2.3. Convegni

Il sistema di dominio ha diverse convenzioni che trattano questioni di basso livello, ma fondamentali. Mentre l'implementatore è libero di violare queste convenzioni ALL'INTERNO DEL SUO PROPRIO SISTEMA, deve osservare queste convenzioni in TUTTI i comportamenti osservati da altri host.

2.3.1. Sintassi del nome preferito

Le specifiche DNS cercano di essere il più generali possibile nelle regole per la costruzione di nomi di dominio. L'idea è che il nome di qualsiasi oggetto esistente possa essere espresso come nome di dominio con modifiche minime.

Tuttavia, quando si assegna un nome di dominio per un oggetto, l'utente prudente selezionerà un nome che soddisfi sia le regole del sistema di dominio sia le regole esistenti per l'oggetto, indipendentemente dal fatto che tali regole siano pubblicate o implicite da programmi esistenti.

Ad esempio, quando si assegna un nome a un dominio di posta, l'utente deve soddisfare sia le regole di questo memo sia quelle in RFC-822. Quando si crea un nuovo nome host, è necessario seguire le vecchie regole per HOSTS.TXT. Questo evita problemi quando il vecchio software viene convertito per usare nomi di dominio.

Gradirei sicuramente ulteriori chiarimenti o correzioni della mia interpretazione, ma per favore non farlo a meno che tu non sia in grado di citare sezioni specifiche di RFC per affermare o negare questa interpretazione.


quindi rimuoverai il tuo downvote ora? ;)
Alnitak il

+1 per il riferimento aggiuntivo (RFC 3696)
Alnitak,

@Alnitak, sì, inizialmente ho letto male il tuo post ... ora ho rimosso il voto negativo e il mio commento (quindi non aggiunge ulteriore confusione). Il modo in cui sono scritti gli RFC è sorprendente che tutto ciò che funziona su Internet funzioni affatto! :)
aculich,

Ho aggiunto la qualifica "binaria" dopo aver commentato per chiarire che non parlerò di ottetti con indirizzo IP. Le RFC DNS possono essere particolarmente difficili da capire perché all'epoca non avevano ricevuto una revisione così rigorosa come fanno ora e le incoerenze sono abbastanza comuni.
Alnitak,

Sì, lo vedo ora che hai detto "binario".
aculich,

0

Per impostazione predefinita, i server DNS di Windows non supportano spazi nei nomi DNS, tuttavia modificando l'impostazione "Proprietà server -> scheda Avanzate -> Controllo nome" in "Tutti i nomi" il server accetterà e servirà felicemente le voci con spazi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.