DNS - Vários registros A ou 1 registro e muitos CNAMEs?

29

Digamos que eu tenho um servidor da web, chamado 'www'. www.example.com resolve o endereço IP dessa máquina. Quero criar alguns hosts virtuais e registros DNS para eles, como webmail.example.com.

Para 'webmail', devo inserir um registro A com o endereço IP da www ou devo fazer um CNAME para www?

O que é 'mais limpo', mais robusto? Melhor?

Rory
fonte

Respostas:

26

Existem duas visões alternativas dessa questão, e essa será finalmente discutida para sempre. Não vou dar a minha opinião (porque estou rasgado), mas os argumentos gerais em cada sentido geralmente são:

  • Você deve definir registros A para suas máquinas físicas e, em seguida, serviços CNAME nessas máquinas. Isso deixa bastante claro o que é o quê e, no caso de você precisar renumerar, não há muitos registros para alterar - apenas os registros da máquina. Por outro lado, aumenta um pouco a carga de pesquisa de DNS e os IPs "auxiliares" (pense em SSL vhosts) não se encaixam perfeitamente nesse modelo.

  • O significado literal de "nome canônico" (CNAME) é definir aliases estritos com o mesmo nome (think maile smtp), e se você tiver vários serviços em execução na mesma máquina, todos deverão ter registros A, pois reduz a carga no DNS e alguns serviços (registros NS e, em menor grau, registros MX) realmente não ficam impressionados ao lidar com CNAMEs; portanto, se você precisar lidar com esses serviços de maneira diferente, é melhor fazê-lo para tudo.

mulher
fonte
12
Você pode realmente arruinar / sobrecarregar seriamente o servidor DNS apontando um MX para um CNAME. Não posso me incomodar em explicar por que, no momento, os servidores de correio mais antigos (existem muitos por aí) verão um MX apontando para um CNAME e não saberão como lidar com isso, continuarão olhando para cima e causarão um grande estresse. no seu DNS e, no final, o email nunca chega a lugar algum. NÃO APONTE MX EM UM CNAME. SEMPRE.
Mark Henderson
3
Concordo com o Farseeker, não aponte o MX para um CNAME, mesmo que ele funcione. Dê uma olhada na wikipedia (pesquise MX Record) ou RFC 2181 (seção 10.3) se desejar obter todos os detalhes.
Benoit
+1 a womble. Essa resposta também expressa minha opinião. +1 para Farseeker. Registros MX são a exceção. Quanto às referências de Beoot, a Wikipedia nunca deve ser usada como referência técnica, pois há muitos erros e imprecisões. Embora quase todo mundo goste de citar RFCs, precisamos lembrar que eles não são padrões, apenas um precursor de uma proposta de padrão.
John Gardeniers
Desculpe pelo erro de ortografia do nome de Benoit. Está na hora de eu estar na cama.
John Gardeniers
Eu sempre usei cnames. Meu colega adotou a abordagem de vários registros. Mais um motivo pelo qual o cname é melhor: facilita a decisão de qual registro obtém o registro ptr. Eu ganhei uma cerveja de um terceiro colega neste.
dmourati
12

O uso de um CNAME dobra efetivamente as pesquisas no servidor DNS. Quando uma solicitação é mapeada para um CNAME, ela precisa procurar o registro A do CNAME.

Dito isto, existe uma razão pela qual CNAME existe. Torna seu DNS muito mais fácil de gerenciar e, a menos que você esteja executando dezenas de milhares de resoluções por dia, isso não será importante ...

Mark Henderson
fonte
12

Várias bases aqui sugerem que os CNAMEs aumentam a carga do DNS. Isso me deixou curioso. Acionei o wireshark, inspecionei uma solicitação para um CNAME e, pelo menos em nosso ambiente, o resultado foi retornado em um registro. O que traz à mente o aforismo de Knuth: "a otimização prematura é a raiz de todo mal".

Eu gosto de CNAMEs, mas principalmente por seu efeito psicológico. Eles incentivam as pessoas (como eu, por exemplo) a desacoplar nomes de servidores de nomes de serviços.

Nosso ambiente possui vários certificados SSL anexados a nomes de servidores opacos (que paramos de fazer). Os CNAMEs funcionam muito melhor aqui. Em todos os lugares em que trabalhei na migração de serviços nos quais o nome do servidor está fortemente associado ao serviço, há uma dor de cabeça. Os CNAMEs oferecem uma linha conceitual clara de separação.

Joe Fortier
fonte
Isso precisa de mais votos. Os registros CNAME normalmente não aumentam o número de viagens de ida e volta necessárias, pois os resultados são agrupados em uma única resposta.
Nic
4

Na minha opinião, se os hosts virtuais forem www.someotherdomain.com, eu os trataria como um domínio separado com um conjunto próprio de registros DNS (facilita mais tarde se eles precisarem ser divididos). Se, no entanto, é apenas um blog .exemplo.com, eu usaria um CNAME.

Apenas minha preferência pessoal.

Sam
fonte
2

Eu usaria CNAME por causa da perspectiva do DNS, o webmail é um alias para www.

Martin P. Hellwig
fonte
2

Os CNAMEs aumentam a carga no sistema DNS, não no seu computador pessoal ou conexão com a Internet. Acho que algumas pessoas aqui não fizeram essa distinção quando responderam.

Use registros A para registros principais de tráfego intenso (@ e www), por exemplo. Use CNAMEs para registros secundários que sempre serão mapeados para o mesmo IP de um registro primário. Por exemplo, se você tiver um domínio "member.site.com" que sempre resolverá o mesmo IP que "www.site.com", poderá usar um CNAME aqui por conveniência, mas se puder usar um registro A , resolveria mais rapidamente.

TheDigitalOrchard
fonte
Obrigado, eu encontrei a resposta clara, mas o seu comentário mais simples de entender :)
karni