¿Active Directory admite nombres DNS con espacios?

8

Mientras investigaba cómo configurar algunos servicios DNS-SD estáticos en nuestra red, me encontré con http://www.dns-sd.org/ServerStaticSetup.html , que establece que el servidor DNS de Active Directory no admite nombres DNS con espacios en ellos.

¿Alguien sabe si esto sigue siendo cierto (ya que la página parece bastante antigua)?

Actualización: me refiero principalmente a los registros PTR y SRV, no a los registros A / CNAME.

gmw
fuente
2
Esto puede sonar loco, pero nunca, nunca he visto un URI con un espacio en él, ¿es eso compatible con RFC? ¿Por qué es esto relevante para ti?
SpacemanSpiff
11
RFC1035, 2.3.1: "[Dominios] deben comenzar con una letra, terminar con una letra o dígito y tener como caracteres interiores solo letras, dígitos y guiones".
Mancha
@SpacemanSpiff no es compatible con RFC en ningún esquema de URL donde la porción de dominio representa un nombre de host (es decir, la mayoría de ellos).
Alnitak
¿Puede dar un ejemplo del tipo específico de entrada que le gustaría crear?
Alnitak
1
@Sam esa frase citada trata sobre nombres de host , no "dominios".
Alnitak

Respuestas:

30

Un nombre de dominio puede incluir cualquier octeto binario en el rango de 0 a 255.

Sin embargo, si sus entradas de AD representan nombres de host , entonces un espacio no es un carácter válido. Un nombre de host (es decir, un nombre de dominio que apunta a una Ao AAAAregistro) deben seguir las reglas del RFC 1123 , que restringe esencialmente los caracteres legales para LDH ( "guión dígitos letra").

Por lo tanto, para otras entradas, es perfectamente posible que MS haya malinterpretado los RFC. No serán los primeros, y ciertamente no serán los últimos.

Referencias

§5.1 del RFC 1035 :

Las convenciones de citas permiten almacenar caracteres arbitrarios en nombres de dominio.

y §6.1.3.5. de RFC 1123 :

El DNS define la sintaxis de nombres de dominio de manera muy general: una cadena de etiquetas que contienen cada una hasta 63 octetos de 8 bits, separados por puntos

y §11 de RFC 2181 :

cualquier cadena binaria que se pueda usar como etiqueta de cualquier registro de recursos

Alnitak
fuente
Sí, eso es lo que me temo ...
gmw
9

Ah, perdón por ser insolente, pero tienes una melena del perro aquí. No es que AD no admita nombres DNS con espacios, sino que los nombres DNS por definición y RFC no pueden tener espacios para comenzar. RFC 952 y 1123 no permiten espacios como parte de un nombre DNS.

Por lo tanto, AD no carece de soporte para espacios en los nombres DNS como abreviatura, sino porque sigue las mismas reglas que todos los demás.

TomTom
fuente
2
Por favor arregle su nomenclatura. Estrictamente hablando, una entrada DNS puede contener espacios. Sin embargo, un nombre de host no puede.
Alnitak
3
Me temo que está equivocado: en DNS hay instancias claras de nombres de dominio ( no "nombres de ZONA") que no están obligados a seguir las reglas RFC 1123 para un "nombre de host". Por ejemplo, los nombres con prefijo de subrayado utilizados por los SRVregistros. Consulte también §6.1.3.5 de RFC 1123 y mi perfil.
Alnitak
66
Los registros SRV son casos muy especiales. De nuevo, juegas juegos. ¿Dónde permite un espacio? Cite la sección de un RFC que permita un espacio en algún lugar, y tiene razón. Sigue discutiendo y aún estás equivocado. Deja de quejarte, alguien te llama farol.
TomTom
17
Ya hice - §6.1.3.5 de RFC 1123 "El DNS define la sintaxis de nombre de dominio de manera muy general - una cadena de etiquetas que contienen cada una hasta 63 octetos de 8 bits, separados por puntos" . Los estándares de DNS y el protocolo son mi trabajo diario, FWIW.
Alnitak
1
@TomTom mi respuesta cita la parte relevante de los RFC que muestran que Alnitak es correcta; los nombres de host NO PUEDEN contener espacios, sin embargo, los nombres DNS en general PUEDEN contener espacios.
aculich
5

La respuesta a su pregunta específica es NO , Active Directory NO permite espacios en los nombres de host DNS . Los caracteres prohibidos se describen claramente en KB 909264 - Convenciones de nomenclatura en Active Directory para computadoras, dominios, sitios y unidades organizativas en la sección denominada Caracteres no permitidos que se lee:

El nombre de host DNS no puede contener caracteres en blanco o en espacio.

Para extender la respuesta más allá de Active Directory al sistema de nombres de dominio DNS en general, la situación es un poco más complicada porque si bien los espacios técnicamente están permitidos en ciertos casos, en la práctica probablemente nunca se encontrará con un caso así.

La respuesta corta: ¡NO USE ESPACIOS EN LOS NOMBRES DE HOSTAL DNS!

La respuesta larga de acuerdo con §2 de RFC 3696, Restricciones sobre nombres de dominio (DNS), es que:

Cualquier carácter o combinación de bits (como octetos) está permitido en los nombres DNS.

Continúa indicando (énfasis mío):

Sin embargo, hay una forma preferida que es requerida por la mayoría de las aplicaciones. Esta forma preferida ha sido la única permitida en los nombres de dominios de nivel superior o TLD. En general, también es la única forma permitida en la mayoría de los nombres de segundo nivel registrados en los TLD, aunque algunos nombres que normalmente los usuarios no ven obedecen a otras reglas. Se deriva de las reglas originales de ARPANET para nombrar hosts (es decir, la regla de "nombre de host") y quizás se describa mejor como la "regla de LDH", después de los caracteres que permite. La regla LDH, como se actualizó, establece queLas etiquetas (palabras o cadenas separadas por puntos) que forman un nombre de dominio deben constar solo de los caracteres alfabéticos y numéricos ASCII [ASCII], más el guión. No se permiten otros símbolos o signos de puntuación, ni el espacio en blanco. Si se usa el guión, no se permite que aparezca al principio o al final de una etiqueta. Hay una regla adicional que esencialmente requiere que los nombres de dominio de nivel superior no sean totalmente numéricos.

En la práctica, esto significa que NO debe usar espacios , aunque en la especificación más general de nombres de dominio como se define en estos extractos de §5.1 de RFC 1035 es posible permitir espacios en nombres de dominio:

<nombre-dominio> s constituyen una gran parte de los datos en el archivo maestro. Las etiquetas en el nombre de dominio se expresan como cadenas de caracteres y se separan por puntos. Las convenciones de citas permiten almacenar caracteres arbitrarios en nombres de dominio.

y

<cadena-caracteres> se expresa de una o dos formas: como un conjunto contiguo de caracteres sin espacios interiores, o como una cadena que comienza con un "y termina con un". Dentro de una "cadena delimitada, puede aparecer cualquier carácter, excepto un" en sí mismo, que debe citarse usando \ (barra diagonal inversa).

Tenga en cuenta que en otra parte de RFC 1035, específicamente §2.3 , advierte:

2.3. Convenciones

El sistema de dominio tiene varias convenciones que se ocupan de problemas de bajo nivel, pero fundamentales. Si bien el implementador es libre de violar estas convenciones DENTRO DE SU PROPIO SISTEMA, debe observar estas convenciones en TODOS los comportamientos observados desde otros hosts.

2.3.1. Sintaxis de nombre preferido

Las especificaciones DNS intentan ser lo más generales posible en las reglas para construir nombres de dominio. La idea es que el nombre de cualquier objeto existente se pueda expresar como un nombre de dominio con cambios mínimos.

Sin embargo, al asignar un nombre de dominio para un objeto, el usuario prudente seleccionará un nombre que satisfaga tanto las reglas del sistema de dominio como las reglas existentes para el objeto, ya sea que estas reglas sean publicadas o implícitas por programas existentes.

Por ejemplo, al nombrar un dominio de correo, el usuario debe cumplir tanto las reglas de este memo como las del RFC-822. Al crear un nuevo nombre de host, se deben seguir las viejas reglas para HOSTS.TXT. Esto evita problemas cuando el software antiguo se convierte para usar nombres de dominio.

Ciertamente agradecería una mayor aclaración o corrección de mi interpretación, pero no lo haga a menos que pueda citar secciones específicas de RFC para afirmar o negar esta interpretación.

aculich
fuente
entonces, ¿eliminarás tu voto negativo ahora? ;)
Alnitak
+1 para la referencia adicional (RFC 3696)
Alnitak
@Alnitak, sí, inicialmente leí mal tu publicación ... ahora eliminé el voto negativo y mi comentario (por lo que no aumenta aún más la confusión). ¡La forma en que se escriben los RFC es sorprendente que toda esta cosa de Internet funcione en absoluto! :)
aculich
Agregué la calificación "binaria" después de que comentaste para dejar en claro que no quiero hablar de octetos de direcciones IP. Los RFC de DNS pueden ser particularmente difíciles de entender porque en aquel entonces no recibían una revisión tan rigurosa como ahora, y las inconsistencias son bastante comunes.
Alnitak
Sí, veo eso ahora que dijiste "binario".
aculich
0

De forma predeterminada, los servidores DNS de Windows no admiten espacios en los nombres DNS; sin embargo, al cambiar la configuración 'Propiedades del servidor -> pestaña Avanzado -> Comprobación de nombre' a 'Todos los nombres', el servidor aceptará y servirá entradas con espacios.

tracyb
fuente