O que um balanceador de carga retorna?


12

Quando um usuário atinge o balanceador de carga e ele determina para qual servidor da Web encaminhar, o que acontece a seguir? O balanceador de carga encaminha a solicitação e todos os seus dados para o servidor da Web, recebe a resposta do servidor da Web e a retorna de volta ao usuário?

Ou é mais como um redirecionamento em que o balanceador de carga literalmente retorna o endereço IP do servidor selecionado de volta ao navegador e o navegador precisa abrir uma nova conexão com o servidor fornecido?

Meu instinto diz que não seria o último, porque isso implicaria que todos os endereços IP do servidor da web seriam públicos e, por razões de segurança, é melhor expor apenas os endereços do balanceador de carga ao público. Mas, novamente, não tenho muita certeza porque, se você ativar SSL terminationo balanceador de carga, o SSL não precisaria ser restabelecido novamente com o servidor redirecionado?


Respostas:


13

O IP final não é publicado. O processo realmente funciona de uma maneira que o cliente (um usuário atingindo o balanceador) acredita que está se comunicando com o balanceador, enquanto fala com um nó real.

Em uma explicação muito simples , a maioria das transações funciona assim:

  1. Um usuário faz uma solicitação ao balanceador de carga.
  2. O balanceador decide qual nó é o mais adequado (com base na estratégia que você está usando para balancear) e escolhe (altera) o IP de destino.
  3. (É aqui que a mágica acontece.) O nó recebe uma solicitação, aceita a conexão e responde de volta ao balanceador.
  4. O balanceador altera o IP da resposta de volta para um virtual, o do balanceador e encaminha a resposta ao usuário.
  5. Voilà, o usuário recebe resposta com o IP da solicitação inicial, mesmo que ela tenha sido processada em outro lugar.

Lembre-se de que a reescrita de pacotes (a alteração do endereço IP na etapa 4) é muito importante. Sem ele, o cliente, recebendo um pacote de um IP em que não confia, simplesmente descartaria a resposta.


4

O balanceador de Lad é um trabalho na camada 4 OSI. Decapsula o pacote até o número da porta e, em seguida, direciona o pacote com um dos três modos.

O balanceador de carga pode funcionar no modo 3: 1. Roteamento direto Nesse modo, o servidor real usa IP público. O balanceador recebe o pacote e decapsula até a camada 4. Se a regra de equilíbrio de carga corresponder, será redirecionar o pacote (sem modificar) para um servidor real. O servidor real tem um endereço de alias igual ao endereço de balanceamento de carga; portanto, quando o servidor real recebe um pacote com um destino xxx.xxx.xxx.xxx, ele define esse pacote diretamente para o endereço (alias). E, em seguida, a solicitação de resposta do servidor real ao cliente diretamente (não através do loadbalance)

2. NAT Neste modo, o pacote redireciona para o servidor real com a modificação do endereço de destino. O endereço de destino será substituído pelo endereço do servidor real (NAT). Nesse modo, seu servidor real não precisa de IP público, ele pode usar sua rede local. E então o pacote será entregue sem novo endereço de destino. Quando o servidor real recebe o pacote, ele responde ao endereço de solicitação do cliente através do gateway (loadbalance). Nesse modo, seu balanceamento de carga é usado como roteador e gateway do seu servidor real.

3. Tunnel Neste modo, os pacotes serão tunelados com o novo endereço src-dst (como vpn) para entregar o pacote ao servidor real. Quando o pacote é recebido no servidor real, o servidor real será respondido através de um encapsulamento em túnel para balancear a carga. E então a resposta da entrega do balanceamento de carga é o endereço de origem da solicitação real.

Para HTTPS / SSL, o balanceamento de carga não o processa, o processo de balanceamento de carga até a camada 4 OSI. A camada 5 acima será processada no servidor real. Portanto, o TCP 3 way hanshake, SSL / HTTPS, é processado no servidor real. Somente diretor de balanceamento de carga do pacote.

Espero que minha pequena explicação seja útil para alguma coisa.


Parece que você está falando sobre lvs aqui, mas não é necessariamente a maneira como o balanceamento de carga http (s) funciona. Dê uma olhada no haproxy, por exemplo. Este aplicativo faz o balanceamento de carga na terra do usuário e oferece também uma boa funcionalidade de roteamento de back-end.
187 Friek

No meu datacenter, uso o lvs para equilibrar a carga do meu serviço de aplicativo https, e ele funciona e está funcionando bem.
dek.tiram

Desculpe minha ignorância, mas o que é "lvs"? É um concorrente para haproxy?
Smaili

Haproxy também usa lvs. Eu uso piranha, que também usa lvs para o processo principal.
dek.tiram

O haproxy é um aplicativo independente e não requer lvs (nem sequer está ciente da existência de lvs). Você pode usar lvs para equilibrar um cluster de nós haproxy, se a carga no haproxy ficar muito pesada.
Friek 18/03/16

-1

Um balanceador de carga pode ser um roteador ou um proxy reverso:

O LVS é o módulo de balanceamento de carga da Camada 4 (baseado em roteamento) padrão do setor para o Kernel Linux. É usado em vários balanceadores de carga comerciais, incluindo Barracuda, Loadbalancer.org e Kemp Technologies. Barracuda e Loadbalancer.org também usam o HAProxy para o balanceamento de carga da camada 7 ( baseado em proxy reverso ).

Ps. Eu esqueci que isso não mostra de onde eu sou, que é obviamente Loadbalancer.org


11
ao postar links para recursos externos é esperado para divulgar filiação, consulte Como não ser um spammer
mosquito
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.