Podemos ter vários CNAMES para um único nome?

43

Eu preciso disso para balanceamento de carga. Por exemplo, eu tenho duas contas de armazenamento azul (digamos ae b) e os endereços de blob para essas são a.blob.core.windows.nete b.blob.core.windows.net. Ambos armazenam dados idênticos. Agora, preciso fornecer um único nome externo (por exemplo example.com) que aponte para as contas de armazenamento e funcione em rodízio. Isso pode ser conseguido se eu criar duas entradas CNAME no DNS da seguinte maneira e resolver uma delas em round robing.

  1. example.com CNAME a.blob.core.windows.net
  2. example.com CNAME b.blob.core.windows.net

Mas não consigo criar dois registros CNAME para um único nome no servidor DNS do Windows.

Então isso é possível?

Raghuram Murthy P
fonte
Não posso verificar, mas acho que você não pode fazer isso com o CNAMES. Tente registros A em vez disso.
Dan
1
@ Dan O problema vai ser serviços que não têm um IP fixo, como um AWS Elastic Load Balancer. Dado o core.windows.netque eu suspeito de uma situação semelhante no Azure ou algo assim.
ceejayoz
Mas com os registros A, tenho que especificar o endereço IP, certo? Eu prefiro nomes DNS a endereços IP.
Raghuram Murthy P
Por que você gostaria de fazer isso? o armazenamento de blues do azure já está configurado para alta disponibilidade e redundância geográfica.
JTKH 28/03
@JTKH, porque o blob tem um limite de download de 65 MB / s ou mais e, se eu quiser mais limites de download, pensei em usar mais de um blob.
Raghuram Murthy P

Respostas:

58

Vários registros CNAME para o mesmo nome de domínio totalmente qualificado são uma violação das especificações do DNS. Algumas versões do BIND permitiriam fazer isso (outras apenas se você especificasse a multiple-cnames yesopção) e alternariam o equilíbrio de carga entre elas, mas não é tecnicamente legal.

Não deveria haver registros de recurso (RRs) com o mesmo nome que um CNAME e, para selecionar lêndeas, isso incluiria vários CNAMEs idênticos. Quoth RFC 1034, Seção 3.6.2:

Se um RR CNAME estiver presente em um nó, nenhum outro dado deverá estar presente; isso garante que os dados para um nome canônico e seus aliases não possam ser diferentes. Essa regra também garante que um CNAME em cache possa ser usado sem verificar com um servidor autoritativo outros tipos de RR.

O método da letra do RFC para lidar com o que você está fazendo seria com um único CNAME referente a um registro "A" com balanceamento de carga.

Evan Anderson
fonte
Consulte docstore.mik.ua/orelly/networking_2ndEd/dns/… para obter mais detalhes.
wedi 16/01
11

Você não pode. Um CNAME cria um registro com outro nome para outro. Se um registro pudesse ter CNAMES para dois nomes, não seria outro nome para nenhum deles, mas um nome para algo inteiramente novo, tornando inadequada uma entrada CNAME.

Provavelmente, existe uma boa maneira de resolver seu problema externo. Por exemplo, você pode ter vários registros A.

David Schwartz
fonte
posso ter um CName e um registro A para o site ao mesmo tempo?
amesh 22/07