O Active Directory suporta nomes DNS com espaços?

8

Ao estudar como configurar alguns serviços DNS-SD estáticos em nossa rede, deparei-me com http://www.dns-sd.org/ServerStaticSetup.html , que afirma que o servidor DNS do Active Directory não oferece suporte a nomes DNS com espaços neles.

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

Atualização: refiro-me principalmente aos registros PTR e SRV, não aos registros A / CNAME.

gmw
fonte
2
Isso pode parecer loucura, mas eu nunca vi um URI com um espaço nele, isso é compatível com RFC? Por que isso é relevante para você?
precisa
11
RFC1035, 2.3.1: "[Os domínios] devem começar com uma letra, terminar com uma letra ou um dígito e ter como caracteres internos apenas letras, dígitos e hífen."
Smudge
@SpacemanSpiff não é compatível com RFC em nenhum esquema de URL em que a parte do domínio represente um nome de host (ou seja, a maioria deles).
Alnitak
Você pode dar um exemplo do tipo específico de entrada que deseja criar?
Alnitak
1
@ Sam que frase citada é sobre nomes de host , não "domínios".
Alnitak

Respostas:

30

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

No entanto, se suas entradas do AD representam nomes de host , um espaço não é um caractere válido. Um nome de host (ou seja, um nome de domínio que aponte para um Aou AAAAregistro) deve seguir as regras da RFC 1123 , que restringe essencialmente os caracteres legais ao LDH ("hífen do dígito da letra").

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

Referências

§5.1 da RFC 1035 :

As convenções de cotação permitem que caracteres arbitrários sejam armazenados em nomes de domínio.

e §6.1.3.5. da RFC 1123 :

O DNS define a sintaxe do nome de domínio de maneira muito geral - uma sequência de rótulos, cada um contendo até 63 octetos de 8 bits, separados por pontos

e §11 da RFC 2181 :

qualquer string binária que possa ser usada como o rótulo de qualquer registro de recurso

Alnitak
fonte
Sim, é disso que tenho medo ...
gmw 19/12/12
9

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

Portanto, o AD não possui suporte para espaços nos nomes DNS como um atalho, mas porque segue as mesmas regras que todos os outros.

TomTom
fonte
2
Corrija sua nomenclatura. A rigor, uma entrada DNS pode conter espaços. No entanto, um nome de host não pode.
Alnitak
3
Receio que você esteja errado - no DNS há instâncias claras de nomes de domínio ( não "nomes de ZONA") que não são obrigados a seguir as regras da RFC 1123 para um "nome de host". Por exemplo, os nomes prefixados sublinhados usados ​​pelos SRVregistros. Veja também §6.1.3.5 da RFC 1123 e meu perfil.
Alnitak
6
Os registros srv são casos muito especiais. Mais uma vez, você joga jogos. Onde isso permite um espaço? Cite a seção de uma RFC, permitindo um espaço em algum lugar, e você está certo. Continue discutindo e você ainda está errado. Pare de reclamar que alguém chama seu blefe.
TomTom
17
Eu já fiz - §6.1.3.5 da RFC 1123 "O DNS define a sintaxe do nome de domínio muito geralmente - uma sequência de etiquetas, cada uma contendo até 63 octetos de 8 bits, separados por pontos" . Os padrões de DNS e o protocolo são meu trabalho diário, FWIW.
Alnitak
1
@ TomTom minha resposta cita a parte relevante dos RFCs que mostram que Alnitak está correto; nomes de host NÃO PODEM conter espaços, no entanto, nomes DNS em geral PODEM realmente conter espaços.
Aculich
5

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

O nome do host DNS não pode conter caracteres em branco ou em espaço.

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, porque embora espaços tecnicamente sejam permitidos em certos casos, na prática, você provavelmente nunca encontrará esse caso.

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

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

Quaisquer caracteres ou combinação de bits (como octetos) são permitidos nos nomes DNS.

Continua declarando (grifo meu):

No entanto, existe uma forma preferida exigida pela maioria dos aplicativos. Esse formulário preferido foi o único permitido nos nomes de domínios de nível superior ou TLDs. Em geral, também é a única forma permitida na maioria dos nomes de segundo nível registrados nos TLDs, embora alguns nomes que normalmente não são vistos pelos usuários obedeçam a outras regras. Deriva das regras originais da ARPANET para a nomeação de hosts (isto é, a regra "hostname") e talvez seja melhor descrita como "regra LDH", após os caracteres que ela permite. A regra LDH, conforme atualizada, fornece queos rótulos (palavras ou sequências separadas por pontos) que compõem um nome de domínio devem consistir apenas nos caracteres alfabéticos e numéricos ASCII [ASCII], além do hífen. Nenhum outro símbolo ou caractere de pontuação é permitido, nem espaço em branco. Se o hífen for usado, não será permitido que apareça no início ou no final de um rótulo. Existe uma regra adicional que exige essencialmente que os nomes de domínio de nível superior não sejam todos numéricos.

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

Os <domain-name> s representam um grande compartilhamento dos dados no arquivo mestre. Os rótulos no nome do domínio são expressos como cadeias de caracteres e separados por pontos. As convenções de cotação permitem que caracteres arbitrários sejam armazenados em nomes de domínio.

e

<caractere> é expresso de uma ou duas maneiras: como um conjunto contíguo de caracteres sem espaços interiores ou como uma sequência que começa com "e termina com". Dentro de uma "string delimitada, qualquer caractere pode ocorrer, exceto um" em si, que deve ser citado usando \ (barra invertida).

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

2.3 Convenções

O sistema de domínio possui várias convenções que lidam com questões de baixo nível, mas fundamentais. Enquanto o implementador é livre para violar essas convenções DENTRO DE SEU PRÓPRIO SISTEMA, ele deve observar essas convenções em TODO o comportamento observado de outros hosts.

2.3.1 Sintaxe de nome preferida

As especificações de DNS tentam ser o mais genéricas possível nas regras para a construção de nomes de domínio. A ideia é que o nome de qualquer objeto existente possa ser expresso como um nome de domínio com alterações mínimas.

No entanto, ao atribuir um nome de domínio para um objeto, o usuário prudente selecionará um nome que satisfaça as regras do sistema de domínio e quaisquer regras existentes para o objeto, sejam elas publicadas ou implícitas pelos programas existentes.

Por exemplo, ao nomear um domínio de email, o usuário deve atender às regras deste memorando e às do RFC-822. Ao criar um novo nome de host, as regras antigas para HOSTS.TXT devem ser seguidas. Isso evita problemas quando um software antigo é convertido para usar nomes de domínio.

Eu certamente agradeceria mais esclarecimentos ou correções de minha interpretação, mas não o faça, a menos que você possa citar seções específicas de RFCs para afirmar ou negar essa interpretação.

aculich
fonte
então você removerá seu voto negativo agora? ;)
Alnitak
+1 para a referência adicional (RFC 3696)
Alnitak
@ Alnitak, sim, eu inicialmente li mal sua postagem ... agora removemos o voto negativo e meu comentário (para que isso não adicione ainda mais confusão). A maneira como os RFCs são escritos é surpreendente, essa coisa toda da Internet funciona! :)
aculich
Eu adicionei a qualificação "binária" depois que você comentou para deixar claro que não vou falar sobre octetos de endereços IP. Os RFCs do DNS podem ser particularmente difíceis de entender porque na época eles não recebiam uma revisão tão rigorosa como agora, e as inconsistências são bastante comuns.
Alnitak
Sim, vejo que agora você disse "binário".
Aculich
0

Por padrão, os servidores DNS do Windows não suportam espaços nos nomes DNS, no entanto, alterando a configuração 'Propriedades do servidor -> guia Avançado -> Verificação de nome' para 'Todos os nomes', o servidor aceita e atende com satisfação as entradas com espaços.

tracyb
fonte