A minha zona BIND realmente fornece redundância e balanceamento de carga?

2

Temos os seguintes endereços IP (por exemplo):

1.1.1.1
2.2.2.2

Cada um hospeda o mesmo site, mas em um servidor diferente. Queremos fazer um balanceamento de carga realmente simples fazendo com que os usuários da Web acessem um endereço IP diferente em cada solicitação. Nosso aplicativo oferece suporte total a isso, portanto, não há problemas técnicos com a autenticação, etc.

Acho que estou trabalhando nisso, mas não tenho certeza. Se eu usar o nslookup para consultar a zona, então os IPs alternam na forma round-robin, o que é legal.

Addresses:  1.1.1.1
      2.2.2.2

...

Addresses:  2.2.2.2
      1.1.1.1

Eu observei que, se o servidor http não estiver disponível no primeiro IP, o navegador da Web usará apenas o segundo IP, o que também é muito interessante.

No entanto, isso parece ser realmente difícil de testar, já que uma vez que um navegador tenha um IP (Chrome, por exemplo), ele continuará. Talvez isso seja uma coisa boa? Então, apenas com base em como eu expliquei isso, parece que funcionaria como um balanceador de carga com redundância?

    
por Nick Bolton 04.07.2010 / 12:43

2 respostas

5

O "balanceamento de carga de DNS" não se destina a equilibrar a carga para um único cliente, mas entre clientes diferentes (cliente A obtém primeiro IP, cliente B obtém segundo IP, cliente C obtém primeiro IP, e assim por diante).

Resolver o mesmo nome para duas máquinas diferentes na mesma sessão do navegador pode levar a um comportamento indesejado, especialmente se você usar cookies de sessão ou algo semelhante.

    
por 04.07.2010 / 13:09
3

Isso é conhecido como round-robin de DNS, também conhecido como "balanceamento de carga do pobre". É simples de implementar, mas tem grandes desvantagens, pois não fornece verificação de integridade, não leva em consideração a carga do servidor e, nas principais instalações, não leva em consideração a localização geográfica.

Por exemplo, se o seu navegador / sistema operacional ficar preso a um dos ips e o servidor por trás desse ip falhar, suas solicitações ainda serão enviadas para esse servidor.

Na página da Wikipédia, eis as principais desvantagens:

Although easy to implement, round robin DNS has problematic drawbacks, such as those arising from record caching in the DNS hierarchy itself, as well as client-side address caching and reuse, the combination of which can be difficult to manage. Round robin DNS should not solely be relied upon for service availability. If a service at one of the addresses in the list fails, the DNS will continue to hand out that address and clients will still attempt to reach the inoperable service. Also, it may not be the best choice for load balancing on its own since it merely alternates the order of the address records each time a name server is queried. There is no consideration for matching the user IP address and its geographical location, transaction time, server load, network congestion, etc. Round robin DNS load balancing works best for services with a large number of uniformly distributed connections to servers of equivalent capacity. Otherwise it just does load distribution.

Mais informações sobre o DNS Round-Robin aqui .

Se você está considerando isso para aplicativos da Web, recomendamos que você dê uma olhada em HAProxy , que pode ser implementado com facilidade mas redundância real.

Espero que isso ajude!

    
por 04.07.2010 / 13:24