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 termination
o balanceador de carga, o SSL não precisaria ser restabelecido novamente com o servidor redirecionado?
Respostas:
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:
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.
fonte
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.
fonte
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
fonte