Os nomes de host de uma letra são válidos?

13

RFC-952 (última sentença do ponto 1 sob Suposições) proíbe nomes de host de um único caractere e eu tive experiências ( mais de 7 anos atrás verão de 2002) onde alguns serviços se recusariam a trabalhar com nomes de host de caractere único (porque tais nomes não eram compatíveis com os padrões), mas eu vi um número de caracteres únicos nomes de host em uso nos últimos anos. Os nomes de host de um único caractere agora são válidos? (Se sim, qual é a referência de validação apropriada?)

edit (para consolidar algumas informações das respostas): vários aspectos do DNS parecem ser definidos em vários RFCs, incluindo 1035 , 1123 e 2181 . De RFC-2181 seção 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.

De RFC-1123 seção 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].

De RFC-1123 seção 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.

E, finalmente, como originalmente referenciado, 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.

É a partir dessa cadeia que eu vim originalmente dizer que a RFC-952 proíbe nomes de host de um único caractere.

    
por Isaac 20.07.2010 / 02:55

5 respostas

2

Existe uma diferença entre 'válido' e 'funciona'. É inteiramente possível que nomes de host não sejam considerados válidos se forem caracteres únicos (meu post anterior não suporta). No entanto, muitos sistemas permitem isso. Um sistema principal, o sistema AD / DNS da Microsoft, tem um motivo legado para permitir nomes de caracteres únicos.

Os nomes de NetBIOS antigos podem ter de 1 a 15 caracteres. Esta especificação foi desenvolvida independentemente do RFC952, é baseada em um arquivo diferente chamado lmhosts, então funciona. O problema surgiu quando a Microsoft foi embora do NetBEUI (na verdade, NBF, NetBIOS Frame Protocol) e para o TCP / IP (na verdade NBT), e a Microsoft teve que permitir a resolução de nomes em redes TCP / IP. A MS optou por manter a resolução de estilo NetBIOS com servidores WINS, ignorando a necessidade de hosts compatíveis com RFC952.

Depois veio o Active Directory e suas dependências DNS. O DNS dinâmico era a regra, portanto, os clientes precisavam registrar seu Nome_do_Computador (os primeiros 15 caracteres dos quais também é seu nome NetBIOS) no domínio DNS. Como o MS permite que nomes NetBIOS de um caractere se registrem no DNS, isso colocou em conflito com o RFC952. Eles decidiram codificar seus sistemas para permitir isso, já que isso emulava como sempre costumava funcionar nos dias do WINS.

O DNS BIND também permite nomes de host de um único caractere. Mas o RFC2181 praticamente afirma que os aplicativos precisam examinar seus próprios dados, não o DNS mais. O que nos deixa com uma grande população de dispositivos e softwares para os quais os nomes de host de um único caractere são bons, e alguns outliers que são RFC952-strict que não permitem isso.

    
por 20.07.2010 / 21:42
11

Você acha que eles são válidos porque os servidores-de-nomes-raiz são todos hosts de uma única letra (a.root-servers.net) e a especificação do DNS não cria uma exceção específica para eles. O RFC em questão é especificamente para o formato de arquivo host, não o DNS. O DNS foi definido em um RFC posterior ( RFC 1035 o inicia). RFC 1123 (1989) afirma 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.

Assim, os nomes de host de uma única letra são válidos em sistemas baseados em DNS e estão desde antes de o spam ser inventado. Sistemas que não são compatíveis com RFC e podem ser ridicularizados. A menos que eles não usem DNS e usem arquivos hosts, a pena é uma escolha melhor.

    
por 20.07.2010 / 04:05
2

Como os nomes de host estavam por aí antes mesmo que alguém pensasse em escrever um RFC sobre eles, não vejo motivo para que os nomes de host de um caractere único fiquem repentinamente "ilegais". Essa RFC em particular me perdeu quando afirmou

This RFC is the official specification

porque um RFC NÃO é um padrão. Nem perto.

Apesar do exposto, deve-se notar que o RFC em questão foi criado para ser aplicado a um grupo relativamente pequeno, ou seja, o Departamento de Defesa (presumivelmente dos EUA).

    
por 20.07.2010 / 04:36
1

Acho que os nomes de host atuais são mais dependentes das especificações do DNS, pois o DNS é o que a maioria das pessoas usará em uma rede ou na Internet. Disse que três RFCs vêm à mente (1034 - conceitos, 1035 - implementação e 2181 - esclarecimentos sobre o DNS).

Seção 3 da RFC 1034 diz:

The domain name space is a tree structure. Each node and leaf on the tree corresponds to a resource set (which may be empty). The domain system makes no distinctions between the uses of the interior nodes and leaves, and this memo uses the term "node" to refer to both.

Each node has a label, which is zero to 63 octets in length. Brother nodes may not have the same label, although the same label can be used for nodes which are not brothers. One label is reserved, and that is the null (i.e., zero length) label used for the root.

E na Seção 11 da RFC 2181 , temos um esclarecimento sobre a nomeação de cada nó do endereço:

The DNS itself places only one restriction on the particular labels
that can be used to identify resource records. That one restriction
relates to the length of the label and the full name. The length of any one label is limited to between 1 and 63 octets. A full domain name is limited to 255 octets (including the separators)

Então, à luz das especificações do DNS, você pode ter a.domain.tld

    
por 20.07.2010 / 08:02
1

Como você determinou, o RFC 1123 não está completamente claro nesta questão de tamanho.

A Seção 2.1 diz:

Host software MUST handle host names of up to 63 characters and SHOULD handle host names of up to 255 characters

Como esse texto substitui completamente o texto da RFC 952, deve-se considerar que qualquer tamanho até 255 caracteres é legal.

Infelizmente, em 1989, o Internet Drafts não recebeu a revisão incrivelmente rigorosa que obtêm agora, então a ambigüidade provavelmente não foi detectada.

    
por 21.07.2010 / 09:54