Digamos que eu tenha 2 IPs para um determinado domínio (DNS round-robin).
Se um dos IPs não responder, os clientes tentarão se conectar ao outro IP? ou eles simplesmente não conseguem estabelecer comunicação com o domínio?
Digamos que eu tenha 2 IPs para um determinado domínio (DNS round-robin).
Se um dos IPs não responder, os clientes tentarão se conectar ao outro IP? ou eles simplesmente não conseguem estabelecer comunicação com o domínio?
Respostas:
O rodízio de DNS não é um bom substituto para um balanceador de carga. O servidor DNS continuará a distribuir o IP do nó que está inoperante, para que alguns de seus usuários acessem seu serviço e outros não.
Quando o cliente faz a consulta DNS, o servidor DNS retorna todos os endereços IP associados a esse nome. A mágica é feita pelo servidor DNS, rotacionando a ordem dessa lista para cada consulta. No entanto, cabe ao aplicativo implementar a capacidade de "caminhar" pela lista até encontrar um IP que funcione. E a maioria dos aplicativos não faz isso.
O Windows Telnet, por incrível que pareça, é um desses aplicativos inteligentes o suficiente para percorrer a lista vinculada de IPs retornados. Você pode ver esse comportamento se tentar telnetar para google.com, por exemplo. Você notará que leva muito tempo para finalmente falhar. Isso ocorre porque o google.com tem muitos endereços IP e o cliente telnet estava tentando todos.
O uso de um balanceador de carga ainda deixará um único ponto de falha. Se o seu balanceador de carga ficar offline, seu site será desativado.
Conterary para a resposta acima, a maioria HTTP clientes já FAZER suporte tentando cada endereço IP de voltar de uma consulta DNS até que um retorna com uma resposta válida. Por favor, veja aqui:
http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/
Parece que o autor testou os seguintes navegadores e os encontrou funcionando corretamente.
Chrome 11 no Windows 7
Firefox 4.0 no Windows 7
Internet Explorer 8 no Windows 7
Opera 11 no Windows 7
Safari 5 no Windows 7
Internet Explorer 7 no Windows XP (após um atraso perceptível)
Firefox 4.0 no Windows XP (após um atraso perceptível)
Navegador nativo do Android no
navegador nativo do iPhone Android 2.3.3 no iOS 4.3.3
O uso do round robin não fará todos os recursos de um servidor de balanceamento de carga, como monitorar os tempos de resposta dos dois servidores e direcionar mais tráfego para um, se o outro não estiver respondendo o mais rápido que deveria. Para resiliência, eu diria que o Round Robin DNS é provavelmente uma solução melhor, pois não há mais um único ponto de falha.
Embora o DNS round robin normalmente não tenha feedback sobre o status dos servidores para os quais está fornecendo endereços, pode ser útil se você tiver algum tipo de balanceador de carga (incluindo truques baseados em roteador) para cada um desses endereços.
Existem truques para atualizar o DNS quando as coisas falham; se isso acontecer, o DNS round-robin com TTLs adequadamente curtos pode ser um pseudo-load balancer.