O Active Directory suporta nomes DNS com espaços?

8

Enquanto pesquisávamos sobre como configurar alguns serviços estáticos de DNS-SD em nossa rede, me deparei com o link , que afirma que o servidor DNS do Active Directory não suporta nomes DNS com espaços neles.

Alguém sabe se isso ainda é verdade (como a página parece bastante antiga)?

Atualização: estou me referindo principalmente a registros PTR e SRV, não a registros A / CNAME.

    
por Magnus Wissler 19.12.2011 / 10:54

3 respostas

29

Um nome de domínio pode incluir qualquer octeto binário no intervalo de 0 a 255.

No entanto, se as entradas do AD representarem nomes de host , um espaço não será um caractere válido. Um nome de host (ou seja, um nome de domínio que aponta para um registro A ou AAAA ) deve seguir as regras de RFC 1123 , que basicamente restringe os caracteres legais ao LDH ("hífen de dígitos de letras").

Por isso, para outras entradas, é perfeitamente possível que a MS tenha interpretado erroneamente os RFCs. Eles não serão os primeiros e certamente não serão os últimos.

Referências

§5.1 de RFC 1035 :

Quoting conventions allow arbitrary characters to be stored in domain names.

e §6.1.3.5. de RFC 1123 :

The DNS defines domain name syntax very generally -- a string of labels each containing up to 63 8-bit octets, separated by dots

e §11 de RFC 2181 :

any binary string whatever can be used as the label of any resource record

    
por 19.12.2011 / 11:59
9

Ah - desculpe ser arrogante, mas você tem um cachorro aqui. Não é que o AD não suporte nomes DNS com espaços, mas que os nomes DNS por definição e RFC não podem ter espaços para começar. A RFC 952 e a 1123 não permitem espaços como parte de um nome DNS.

Assim, o AD não carece de suporte para espaços em nomes DNS como um curto, mas porque segue as mesmas regras que todos os outros.

    
por 19.12.2011 / 11:05
5

A resposta à sua pergunta específica é NÃO , o Active Directory não permite espaços nos nomes de host do DNS. Os caracteres proibidos estão claramente descritos no KB 909264 - Convenções de nomenclatura no Active Directory para computadores, domínios, sites e UOs no seção marcada como Caracteres não autorizados :

The DNS host name cannot contain blank or space characters.

Para estender a resposta além do Active Directory para o sistema de nomes de domínio DNS, em geral, a situação é um pouco mais complicada, pois embora os espaços tecnicamente sejam permitidos em certas instâncias, na prática, você provavelmente nunca encontrará esse caso.

A resposta curta: NÃO USE ESPAÇOS EM HOSTNAMES DE DNS!

A resposta longa de acordo com §2 da RFC 3696, Restrições de nomes de domínio (DNS) é isso:

Any characters, or combination of bits (as octets), are permitted in DNS names.

Continua afirmando (ênfase minha):

However, there is a preferred form that is required by most applications. This preferred form has been the only one permitted in the names of top-level domains, or TLDs. In general, it is also the only form permitted in most second-level names registered in TLDs, although some names that are normally not seen by users obey other rules. It derives from the original ARPANET rules for the naming of hosts (i.e., the "hostname" rule) and is perhaps better described as the "LDH rule", after the characters that it permits. The LDH rule, as updated, provides that the labels (words or strings separated by periods) that make up a domain name must consist of only the ASCII [ASCII] alphabetic and numeric characters, plus the hyphen. No other symbols or punctuation characters are permitted, nor is blank space. If the hyphen is used, it is not permitted to appear at either the beginning or end of a label. There is an additional rule that essentially requires that top-level domain names not be all-numeric.

Na prática, isso significa que você deve NÃO usar espaços , mesmo que na especificação mais geral de nomes de domínio, conforme definido nesses trechos de §5.1 do RFC 1035 é possível permitir espaços em nomes de domínio:

<domain-name>s make up a large share of the data in the master file. The labels in the domain name are expressed as character strings and separated by dots. Quoting conventions allow arbitrary characters to be stored in domain names.

e

<character-string> is expressed in one or two ways: as a contiguous set of characters without interior spaces, or as a string beginning with a " and ending with a ". Inside a " delimited string any character can occur, except for a " itself, which must be quoted using \ (back slash).

Lembre-se de que em outras partes da RFC 1035, especificamente §2.3 , ela avisa:

2.3. Conventions

The domain system has several conventions dealing with low-level, but fundamental, issues. While the implementor is free to violate these conventions WITHIN HIS OWN SYSTEM, he must observe these conventions in ALL behavior observed from other hosts.

2.3.1. Preferred name syntax

The DNS specifications attempt to be as general as possible in the rules for constructing domain names. The idea is that the name of any existing object can be expressed as a domain name with minimal changes.

However, when assigning a domain name for an object, the prudent user will select a name which satisfies both the rules of the domain system and any existing rules for the object, whether these rules are published or implied by existing programs.

For example, when naming a mail domain, the user should satisfy both the rules of this memo and those in RFC-822. When creating a new host name, the old rules for HOSTS.TXT should be followed. This avoids problems when old software is converted to use domain names.

Eu certamente gostaria de receber mais esclarecimentos ou correções na minha interpretação, mas por favor, não o faça, a menos que você seja capaz de citar seções específicas de RFCs para afirmar ou negar essa interpretação.

    
por 23.12.2011 / 12:32