Estamos com problemas para criar o registro TXT longo para a chave DKIM na interface da web em nosso hoster.
Cada linha pode aceitar apenas 256 caracteres.
Tentamos várias linhas e, em seguida, tentamos adicionar ("
no início e ")
no final, como sugerem alguns. Nem funciona.
Em seguida, tentámos fazer um cname para um recorde em outra hoster, onde pode fazer os registros DKIM TXT.
Mas agora a interface da web reclama de nome ilegal no CNAME
registro.
mail._domainkey.example.com TXT
está ok
mail._domainkey.example.com CNAME
não está ok
mail.domainkey.example.com CNAME
está ok, mas não o que queremos.
A interface da web está determinada a nos deixar loucos ou é realmente "ilegal" ter sublinhados CNAME
?
domain-name-system
opendkim
Lenne
fonte
fonte
Respostas:
Sim, os nomes DNS (isso também inclui A / AAAA) podem conter apenas
[0-9], [a-z], -
, portanto, o sublinhado não é válido. Observe que um registro TXT não é um nome de host e essa restrição não se aplica a ele. E uma última edição:-
também não pode ser usado como o primeiro caractere; portantomail.-domainkey.our.dom
, não seria válido.https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames
Edição final: eu estava parcialmente errado. Quando um CNAME é usado como um nome de host, as restrições acima se aplicam. Parece que um CNAME não é considerado um nome de host no contexto DKIM e, nesse caso,
_
deve ser uma parte válida de uma entrada CNAME. Consulte /programming/13650233/underscore-in-cname-required-by-ses-not-allowed-by-registrar/26692491#26692491fonte
_foo CNAME _bar
é completamente legítimo, você pode testarnamed-checkzone
.Quaisquer caracteres válidos são permitidos no DNS. Consulte https://tools.ietf.org/html/rfc2181#section-11
"O próprio DNS coloca apenas uma restrição nos rótulos específicos que podem ser usados para identificar registros de recursos. Essa restrição está relacionada ao comprimento do rótulo e ao nome completo. O comprimento de qualquer rótulo é limitado a 1 a 63 octetos. "
O cliente deve validar os valores dos nomes, por exemplo, um registro MX pode conter o valor "Alice", mas após a pesquisa, esse valor deve ser rejeitado, pois "Alice" não é um endereço de email válido.
Nesse caso, parece que seu hoster está "validando" sua entrada e deve poder inseri-la manualmente para você.
fonte
_
ou qualquer outra coisa que você queira. Mas, para alguns registros, você pode usar apenas nomes de host e não nomes de domínio. Nomes de host são apenas letras, dígitos e hífens, nada mais. Por exemplo, o proprietário de umA
ouAAAA
registro é um nome de host, não um nome de domínio. O RDATA (destino) de umNS
registro também é um nome de host, não um nome de domínio.RFC 1034: Os rótulos devem seguir as regras para nomes de host da ARPANET. Eles 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. Existem também algumas restrições no comprimento. Os rótulos devem ter 63 caracteres ou menos.
fonte
_
.3com.com
por exemplo, esta regra, foi relaxada, consulte tools.ietf.org/html/rfc1123#page-13 "Um aspecto da sintaxe do nome do host é alterado: a restrição do primeiro caractere é relaxado para permitir uma letra ou um dígito ".esp_245537
for usado como um nome de host, a atualização do DNS deverá ser recusada, pois não é um nome de host válido. Se isso for usado como nome de domínio, a atualização do DNS deverá ser bem-sucedida (caso contrário, é um bug), porque é um rótulo DNS válido.A resposta de @ Sven, com a edição, já está certa, mas apenas para expressar as coisas diretamente.
TL; DR, sublinhado sim é válido em um
CNAME
registro de ambos os lados, leia abaixo o motivo.O RFC 1034 e outros definem registros com base em "nomes de domínio", que são rótulos com qualquer caractere, inclusive
_
.Mas alguns registros têm regras mais rígidas para o nome do proprietário e / ou os dados do recurso (RDATA). Somente um nome de host será aceito e, de fato, as regras estão agora (elas foram relaxadas no passado em que um nome de host não pôde ser iniciado com um dígito) que você pode usar qualquer letra ASCII (sem distinção entre maiúsculas e minúsculas), quaisquer dígitos ASCII e os hífens , além de algumas regras de posição extras: nenhum hífen no início ou no final e nenhum hífen duplo nas posições 3 e 4 (por causa da "reserva" para IDNs que possuem a forma
xn--
que é apenas permitida).Por exemplo, o nome do proprietário de um
A
ouAAAA
registro é um nome de host, não um nome de domínio. Portanto,test.example.com A 192.0.2.1
é válido porque todos estes não são:É fácil testar as coisas com o
named-checkzone
programa (parte dobind
software do servidor de nomes, mas pode ser usado e instalado separadamente e outros servidores de nomes podem ter ferramentas de verificação semelhantes e provavelmente existem interfaces online para isso também), basta colocar os registros em um arquivo e executar em:(o número anterior a
IN
é o TTL, isso não está relacionado ao nosso problema aqui, mas é necessário apenas para passar na validação da sintaxe de um registro).Para outros registros, é o contrário: pois
NS
não há restrições para o proprietário, mas restrições para o "destino" que são os dados. Os dados podem ser apenas um nome de host, não um nome de domínio, porque você precisa apontar para servidores de nomes autoritativos que são hosts físicos que respondem a consultas DNS.Agora
CNAME
, aqui estão as citações relevantes da RFC 1034, na seção 3.6:Portanto, o proprietário de um
CNAME
(o que está à esquerda) e os dados de recursos anexados a ele, seu destino / destino (o que está à direita) são nomes de domínio e não apenas nomes de host. Basicamente, qualquer personagem, portanto, incluir_
é permitido nos dois lados.Novamente, fácil de testar com
named-checkzone
:Não há nenhum erro sobre o
CNAME
(os outros erros são esperados, pois na minha zona falsa eu não coloquei nenhumSOA
ouNS
registros como uma zona verdadeira teria)fonte