Pregunta ¿Son válidos los nombres de host de una letra?


RFC-952 (la última oración del punto 1 en Supuestos) prohíbe los nombres de host de un solo carácter y he tenido experiencias (hace más de 7 años verano de 2002) donde algunos servicios se negarían a trabajar con nombres de host de un solo carácter (porque dichos nombres no cumplían con los estándares), pero he visto varios nombres de host de un solo carácter en uso en los últimos años. ¿Los nombres de host de un solo carácter ahora son válidos? (Si es así, ¿cuál es la referencia de validación adecuada?)

editar (para consolidar parte de la información de las respuestas): varios aspectos del DNS parecen definirse en varios RFC, incluidos 1035, 1123y 2181. Desde RFC-2181 sección 11:

Note however, that the various applications that make use of DNS data
can have restrictions imposed on what particular values are
acceptable in their environment.  For example, that any binary label
can have an MX record does not imply that any binary name can be used
as the host part of an e-mail address.
[ ... ]
See also [RFC1123] section 6.1.3.5.

Desde RFC-1123 sección 6.1.3.5:

The DNS defines domain name syntax very generally -- a
string of labels each containing up to 63 8-bit octets,
separated by dots, and with a maximum total of 255
octets.  Particular applications of the DNS are
permitted to further constrain the syntax of the domain
names they use, although the DNS deployment has led to
some applications allowing more general names.  In
particular, Section 2.1 of this document liberalizes
slightly the syntax of a legal Internet host name that
was defined in RFC-952 [DNS:4].

Desde RFC-1123 sección 2.1:

The syntax of a legal Internet host name was specified in RFC-952
[DNS:4].  One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit.  Host software MUST support this more liberal
syntax.

Y finalmente, como se mencionó originalmente, de RFC-952:

1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
sign (-), and period (.).  Note that periods are only allowed when
they serve to delimit components of "domain style names". (See
RFC-921, "Domain Name System Implementation Schedule", for
background).  No blank or space characters are permitted as part of a
name. No distinction is made between upper and lower case.  The first
character must be an alpha character.  The last character must not be
a minus sign or period.
[ ... ]
Single character names or nicknames are not allowed.

Es a partir de esta cadena que originalmente llegué a decir que RFC-952 prohíbe los nombres de host de un solo carácter.


13
2017-07-20 00:55


origen




Respuestas:


Hay una diferencia entre 'válido' y 'funciona'. Es totalmente posible que los nombres de host no se consideren válidos si son caracteres únicos (mi publicación anterior no se soporta). Sin embargo, muchos sistemas los permiten. Un sistema importante, el sistema AD / DNS de Microsoft, tiene una razón heredada para permitir nombres de un solo carácter.

Los nombres NetBIOS de la vieja escuela pueden tener una longitud de 1 a 15 caracteres. Esta especificación se desarrolló independientemente de RFC952, se basa en un archivo diferente llamado lmhosts, por lo que funciona. El problema surgió cuando Microsoft se retiró de NetBEUI (en realidad NBF, NetBIOS Frame Protocol) y en TCP / IP (en realidad NBT), y Microsoft tuvo que permitir la resolución de nombres en redes TCP / IP. MS eligió mantener la resolución de estilo NetBIOS con los servidores WINS, evitando la necesidad de hosts compatibles con RFC952.

Luego vino Active Directory y sus dependencias de DNS. El DNS dinámico era la regla, por lo que los clientes tenían que registrar su ComputerName (los primeros 15 caracteres de los cuales también es su nombre NetBIOS) en el dominio DNS. Dado que MS permite que los nombres de NetBIOS de un solo carácter se registren en el DNS, esto puso en conflicto con RFC952. Decidieron codificar sus sistemas para permitir esto, ya que esto emulaba cómo solía funcionar siempre en los días WINS.

BIND DNS también permite nombres de host de un solo carácter. Pero el RFC2181 prácticamente afirma que las aplicaciones necesitan examinar sus propios datos, no DNS más. Lo que nos deja con una gran cantidad de dispositivos y software para los cuales los nombres de host de un solo carácter están bien, y algunos valores atípicos que son estrictos a RFC952 que no lo permiten.


2
2017-07-20 19:42



There is a difference between 'valid' and 'it works'.  En última instancia, creo que esa es la respuesta más razonable, aunque aprecié mucho toda la discusión generada. La conclusión a la que me gustaría llegar es que los nombres de host de un carácter aún son técnicamente inválidos, pero funcionan bastante universalmente en este punto. (Del mismo modo, los guiones bajos están prohibidos, pero funcionan en su mayor parte). - Isaac


Usted pensaría que son válidos porque los servidores de nombres de raíz son todos hosts de una sola letra (a.root-servers.net), y la especificación de DNS no crea una excepción específica para ellos. El RFC en cuestión es específicamente para el formato de archivo de host, no para DNS. DNS se definió en una RFC posterior (RFC 1035 lo comienza). RFC 1123(1989) lo dice claramente.

 The syntax of a legal Internet host name was specified in RFC-952
 [DNS:4].  One aspect of host name syntax is hereby changed: the
 restriction on the first character is relaxed to allow either a
 letter or a digit.  Host software MUST support this more liberal
 syntax.

Por lo tanto, los nombres de host de una sola letra son válidos en los sistemas basados ​​en DNS, y lo han sido desde antes de que se inventara el spam. Los sistemas que no son compatibles con RFC, y pueden ser burlados. A menos que no usen DNS en absoluto y solo usen archivos de hosts, en ese momento la compasión es una mejor opción.


11
2017-07-20 02:05



De acuerdo, lo leí en RFC-1123, pero lo interpreté para significar que se aplican las especificaciones que leí en RFC-952, excepto que un dígito también es permisible como el primer carácter (como mencionó, no altera el prohibición de nombres de un solo carácter). En cuanto a los servidores raíz, me dijeron en algún momento que eran una especie de excepción especial a la regla. - Isaac


Como los nombres de los hosts estaban presentes antes de que alguien siquiera pensara en escribir un RFC sobre ellos, no veo ninguna razón por la que los nombres de los hosts de un solo carácter de repente se conviertan en "ilegales". Ese RFC en particular me perdió cuando declaró

Este RFC es la especificación oficial.

porque un RFC NO es un estándar. Ni siquiera cerca.

A pesar de lo anterior, se debe tener en cuenta que el RFC en cuestión se creó para aplicarse a un grupo relativamente pequeño, a saber, el Departamento de Defensa (probablemente de los EE. UU.).


2
2017-07-20 02:36



RFC por definición no es un estándar. "Solicitud de comentarios" no grita exactamente "estándar" a nadie. Es interesante que se salieron con la suya en sus propios documentos. - Mark Henderson♦
en.wikipedia.org/wiki/Domain_name_system#Internet_standards Enumera muchos RFC que "definen" el protocolo DNS. RFC-1123 (como lo menciona sysadmin1138) está entre los enumerados y hace referencia a RFC-952. Según mi experiencia, mientras que los RFC son solicitudes, se convierten en definiciones cuando se aceptan. - Isaac
@Farseeker, no estoy diciendo que sea el caso aquí, pero siempre me sorprende la gente, la mayoría de los cuales debería saber más, que citan los RFC como si fueran la máxima autoridad en cualquier tema en particular. Estoy bastante seguro de que hay un RFC al respecto en alguna parte. ;) - John Gardeniers
Algunos RFC en realidad son estándares: los RFC 1034 y 1035 juntos, por ejemplo, comprenden STD0013. La razón por la que se llaman "Solicitudes de comentarios" es histórica, y en esencia tenía que ver con un grupo de postgraduados de baja calificación a fines de los años 60 que no querían tentar a sus superiores (lo oí en persona directamente desde el autor de RFC 1). - Alnitak
@ John le sugiero que lea el RFC 2026. "A una especificación que alcanza el estado de Estándar se le asigna un número en la serie STD mientras se mantiene su número RFC". Escribo documentos IETF para mi trabajo diario. - Alnitak


Creo que los nombres de host actuales dependen más de las especificaciones de DNS ya que DNS es lo que la mayoría de la gente usará dentro de una red o en Internet. Dicho esto, vienen a la mente tres RFC (1034 - conceptos, 1035 - implementación y 2181 - aclaraciones sobre el DNS).

Seccion 3 de RFC 1034 dice:

El espacio de nombres de dominio es un árbol.   estructura. Cada nodo y hoja en el   árbol corresponde a un conjunto de recursos   (que puede estar vacío). El dominio   sistema no hace distinciones entre   Los usos de los nodos interiores y   se va, y este memo usa el termino   "nodo" para referirse a ambos.

Cada nodo tiene una etiqueta, que es cero   a 63 octetos de longitud. Nodos hermanos   Puede que no tenga la misma etiqueta, aunque   La misma etiqueta puede ser usada para nodos.   que no son hermanos Una etiqueta es   reservado, y ese es el nulo (es decir,   etiqueta de longitud cero) utilizada para la raíz.

Y en Sección 11 de RFC 2181 Tenemos una aclaración sobre cómo nombrar cada nodo de la dirección:

El propio DNS coloca solo uno   restricción en las etiquetas particulares
  que se puede utilizar para identificar recursos   archivos. Esa restricción
  se relaciona con la longitud de la etiqueta y   el nombre completo. La longitud de cualquier   una etiqueta está limitada a entre 1 y   63 octetos. Un nombre de dominio completo es   limitado a 255 octetos (incluida la   separadores)

Entonces, a la luz de las especificaciones de DNS, puede tener un dominio.tld


1
2017-07-20 06:02



Del siguiente párrafo en la Sección 11 de RFC-2181: Note however, that the various applications that make use of DNS data can have restrictions imposed on what particular values are acceptable in their environment. For example, that any binary label can have an MX record does not imply that any binary name can be used as the host part of an e-mail address.  Básicamente, porque un dominio.tld es válido en DNS no lo convierte en un nombre de host válido. El final de la Sección 11 hace referencia a la Sección 6.1.3.5 de RFC-1123, que cita la Sección 2.1 de sí misma y la RFC-952, como se explica en la respuesta de sysadmin1138. - Isaac
La cita al final de la sección 6.1.3.5 habla de menos restricciones en la convención de nomenclatura definida en 952. Además, el 952 define una tabla de host DOD y no estoy completamente convencido de que sea más relevante que las especificaciones de DNS. - coredump
Creo que la liberalización de restricciones mencionada al final de 6.1.3.5 se refiere solo a permitir que el primer carácter sea un número; esta es la única modificación mencionada en la sección 2.1 de esa misma RFC (que es la sección a la que 6.1. 3.5 se refiere). Es en esa sección 2.1 que se hace referencia a la definición de RFC-952 como la definición de un nombre de host legal. - Isaac
También verifique RFC 920 y 921 que trata de la migración desde el antiguo DARPA a los nombres de dominio. - coredump


Como ha determinado, RFC 1123 no es completamente claro en este problema de longitud.

La sección 2.1 dice:

El software host DEBE manejar nombres de host de hasta 63 caracteres y         DEBE manejar nombres de host de hasta 255 caracteres

Dado que este texto anula completamente el texto de RFC 952, también debe considerarse que implica que alguna La longitud de hasta 255 caracteres es legal.

Lamentablemente, en 1989, los Drafts de Internet no obtuvieron la revisión increíblemente rigurosa que reciben ahora, por lo que la ambigüedad probablemente no se detectó.


1
2017-07-21 07:54



Pero 2.1 también dice The syntax of a legal Internet host name was specified in RFC-952 [DNS:4]. One aspect of host name syntax is hereby changed: the restriction on the first character is relaxed to allow either a letter or a digit.  ¿No es razonable interpretar que esto significa que su cita no invalida completamente el texto de RFC-952? - Isaac
Dice eso, pero está claramente mal. RFC 1123 además Cambia explícitamente la longitud permitida de un nombre de host. - Alnitak