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

29

Digamos que eu tenha um servidor, chamado 'www'. www.example.com resolve o endereço IP dessa máquina. Então eu quero fazer alguns hosts virtuais e registros de DNS para eles, como webmail.example.com.

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

O que é "mais limpo", mais robusto? melhor?

    
por Rory 20.08.2009 / 11:49

6 respostas

26

Existem duas visões alternativas desta questão, e é uma que será debatida para sempre. Eu não vou dar minha opinião (porque eu mesmo sou rasgado), mas os argumentos gerais em cada sentido são:

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

  • O significado literal de "nome canônico" (CNAME) é definir aliases estritos de mesmo nome (pense em mail e smtp ) e, se você tiver vários serviços em execução na mesma máquina, eles devem todos têm registros A, porque reduzem a carga no DNS e alguns serviços (registros NS e, em menor grau, registros MX) realmente não estão impressionados com o tratamento de CNAMEs, portanto, se você tiver que lidar com esses serviços de maneira diferente, bem fazer isso por tudo.

por 20.08.2009 / 12:05
12

Usar um CNAME efetivamente duplica as pesquisas no servidor DNS. Quando uma solicitação é mapeada para um CNAME, é necessário procurar o registro A do CNAME.

Dito isto, há uma razão pela qual o CNAME existe. Isso torna seu DNS muito mais fácil de gerenciar e, a menos que você esteja fazendo dezenas de milhares de resoluções por dia, isso não vai importar ...

    
por 20.08.2009 / 11:55
11

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

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

Nosso ambiente tem vários certificados SSL associados a nomes de servidores opacos (que deixamos de fazer). Os CNAMEs funcionam muito melhor aqui. Em todo lugar em que trabalhei, migrar serviços onde o nome do servidor está strongmente acoplado ao serviço é uma dor de cabeça. Os CNAMEs fornecem uma linha conceitual clara de separação.

    
por 05.10.2012 / 18:17
4

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

Apenas minha preferência pessoal.

    
por 20.08.2009 / 11:54
2

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

    
por 20.08.2009 / 11:56
1

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

Use registros para registros primários de alto tráfego (@ 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 como "www.site.com", você poderá usar um CNAME aqui por conveniência, mas se puder usar um registro A , resolveria mais rapidamente.

    
por 09.07.2015 / 04:15