Tendo vários CNAMEs

10

Temos nosso domínio DNS com CNAMEs de 5 níveis por motivos históricos. Algumas das coisas foram terceirizadas para alta disponibilidade, etc., mas esse não é o ponto aqui. Minha pergunta é ter 5 CNAMEs um exagero para o resolvedor de DNS? Não consegui descobrir nenhum site famoso com mais de 2 a 3 níveis de CNAMEs aninhados apontando para domínios DNS diferentes.

Nossos saltos CNAME são os seguintes: (Estou usando o xyz apenas como exemplo)

www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net (final A\AAAA record)

Estou vendo muitos clientes reclamando sobre problemas de resolução de DNS em nosso site quando outros sites funcionam bem para eles, embora quando eu uso link para testar nossa resolução de DNS.

Parece sempre funcionando bem em todo o mundo. Minha conclusão é que, na maioria das vezes, a resolução do DNS dos provedores locais de ISP está estragando quando um dos Hops acima não resolve. O nslookup falha nesses computadores cliente apenas em nosso site e isso esporadicamente.

Esse tipo de CNAME de vários níveis é um design ruim em geral?

    
por Vishal Naidu 22.08.2016 / 20:47

3 respostas

14

Is this kind of multi level CNAME a bad design in general ?

CNAME para cadeias CNAME não proibido mas como você já experiência não é uma solução muito robusta.

Cada CNAME adicional aumenta a profundidade de recursão para o resolvedor, e essa profundidade nem sempre é ilimitada. Além disso, você corre o risco de criar loops ou disparar o algoritmo de detecção de loop.

Para ter uma ideia de quantas e quais consultas um servidor de nomes de usuários precisa fazer, execute um rastreamento de DNS:

dig +trace www.example.com 

ou no Windows

nslookup -debug www.example.com
    
por 22.08.2016 / 22:18
8

HBrujin está correto, mas na verdade a profundidade da recursão é muito pior do que qualquer coisa que dig +trace vai mostrar para você. A profundidade de recursão é algo que muitas vezes é ridicularizado e banalizado demais, mas essas pessoas esquecem que você não está apenas solucionando ~ 5% de registrosCNAME. Isso ocorre porque a resolução do destino de um registro CNAME cria a necessidade de pesquisar todos os servidores de nomes no caminho, o que geralmente é muito mais do que aparente à primeira vista.

A meta CNAME está em outro domínio? Você precisará recorrer a seus servidores de nomes, o que exige não apenas NS de pesquisas de registros, mas também A(AAA) de pesquisas em que a cola não está presente. Os servidores de nomes para esses servidores de nomes vivem em um domínio de nível superior diferente? Se esses TLDs não compartilharem servidores de nomes, é provável que os registros de cola não sejam incluídos e você também precise recorrer aos servidores de nomes de outros TLDs. E assim por diante.

Todo registro de CNAME adicionado à cadeia pode adicionar exponencialmente ao número de pesquisas necessárias, dependendo do número de servidores de nomes que precisam ser recursionados. Essas cadeias de pesquisas de registros CNAME + NS + A(AAA) podem, por sua vez, ficar incrivelmente complicadas, atingindo mais de 150 níveis de profundidade em um cache vazio. É aqui que os limites de profundidade de recursão podem ficar extremamente desagradáveis, resultando em falhas temporárias para pesquisar seu domínio em um cache vazio e por motivos que nem sempre são imediatamente aparentes.

Em suma, você pode fazer isso, mas continue com cautela e leve o feedback dessa natureza a sério. Você não tem controle sobre a freqüência com que os servidores DNS recursivos na Internet são reiniciados ou eliminados.

    
por 23.08.2016 / 07:38
0

Multi-level CNAME s geralmente são úteis na prática. Cada nível de redirecionamento fornece um nível de controle em uma zona administrativa potencialmente distinta ou em uma organização totalmente diferente. Embora isso dificilmente seja tecnicamente necessário, pode solucionar problemas organizacionais .

Como outras pessoas notaram, isso pode causar dificuldades, mas elas podem ser resolvidas:

  • monitora todos os servidores DNS. Talvez um esteja com defeito. Monitore os servidores externos e os seus próprios. Pode ser necessário relatar um problema para a Akamai ou outros fornecedores.

  • TTL s deve ser definido alto o suficiente para permitir o armazenamento em cache, mas baixo o suficiente para que você possa transferir o tráfego com rapidez suficiente para seu aplicativo

por 23.08.2016 / 21:22