Qual é a sequência de pesquisa de DNS se existirem registros CNAME e A?

Qual é a sequência de pesquisa de DNS se existirem registros CNAME e A?

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 CNAMEregistros?

O que um CNAMEregistro faz é definir onome do proprietário(o nome onde o registro é adicionado) para ser um alias para o nome no CNAMEvalor 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 Aresposta digitada se o nome não for um alias ou uma CNAMEresposta 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 CNAMEregistros Alado 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 CNAMEregistros 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.

informação relacionada