Se definirmos um registro A e um registro CNAME para o mesmo subdomínio, como é feita a pesquisa de DNS?
Por exemplo,
A record:
example.com => xx.xx.xx.xx
www.example.com => xx.xx.xx.xx
CNAME record:
www. => example.com
Ao resolverwww.exemplo.com, o resolvedor DNS procura diretamente o registro A do subdomínio www e obtém o ip ou procura o CNAME de www para obter o domínio de redirecionamento (exemplo.com) e, em seguida, procura o registro A de exemplo.com para obter o ip no final?
Responder1
O que são CNAME
registros?
O que um CNAME
registro faz é definir onome do proprietário(o nome onde o registro é adicionado) para ser um alias para o nome no CNAME
valor do registro (onome canônico, conforme o nome do tipo de registro).
Observe que esta definição de alias está no nível do nome, desconsiderando completamente os tipos de registro.
Uma implicação do nome do proprietário ser um alias é que ele também não pode ter outros registros, pois isso estaria em conflito direto com o fato de ser apenas um alias para outro nome.
Da perspectiva do resolvedor, se você consultar A
, as opções válidas para uma resposta serão uma A
resposta digitada se o nome não for um alias ou uma CNAME
resposta digitada se o nome for um alias. Obter ambos com o mesmo nome não é uma opção (não é permitida pelo padrão e teria comportamento definido, de qualquer maneira).
Então, como meu provedor de serviços DNS pode fazer isso?
Supondo que a afirmação de que eles permitem adicionar CNAME
registros A
lado a lado seja verdadeira, há algo não óbvio acontecendo com seu serviço.
Eu dividiria em duas opções principais, sem saber mais não dá para saber qual é relevante no seu caso:
- O sistema deles não está usando diretamente a entrada do usuário, mas de uma forma ou de outra transformando-a em algo que seria válido. Eles podem adicionar um dos registros conflitantes, mas não o outro (o que significaria que a interface do usuário é meio ruim); alternativamente, pode haver alguma forma de funcionalidade de "nivelamento de CNAME", onde eles realmente não atendem aos
CNAME
registros inseridos pelo usuário, mas sim resolver os registros relevantes do nome canônico a partir de seu final e servi-los como se estivessem diretamente no nome do alias (que é uma funcionalidade não padrão, mas alguns serviços implementaram esse tipo de pesquisas dinâmicas para "achatar"CNAME
). - Seu sistema está quebrado, permitindo ao usuário adicionar dados inconsistentes que não são permitidos nas especificações e podem causar problemas estranhos de uma forma ou de outra (seja pela quebra do serviço ou pelo serviço realmente servindo dados inconsistentes que podem quebrar as coisas). o lado do resolvedor). O usuário estaria dando um tiro no próprio pé ao utilizar esse tipo de quebra em seu serviço.