Por que os balanceadores de carga de software mascaram o IP do cliente?

Por que os balanceadores de carga de software mascaram o IP do cliente?

Atualmente estou usando um balanceador de carga de hardware Cisco CSS. Do ponto de vista do servidor web, o endereço IP do usuário final é carimbado em todo o tráfego como se o balanceador de carga nem estivesse presente.

Agora estou procurando substitutos de software como HAProxy, Pound ou AWS ELB. Todos eles têm uma coisa em comum: o servidor web recebe o IP do balanceador de carga em vez do IP do usuário final. Seu sistema deve estar ciente disso e acessar um cabeçalho X-Forwarded-For se desejar o IP do usuário final ou, no caso de SSL, descriptografar e criptografar novamente o tráfego.

Então minha pergunta é: por que isso acontece? Por que os balanceadores de carga de software não se comportam da mesma maneira que os balanceadores de carga de hardware e apenas transmitem os pacotes TCP como se fossem um simples dispositivo de rede?

Responder1

Como esses softwares funcionam na camada 7 (Aplicação) doModelo OSI, existem soluções de software que funcionam na camada 3/4 comoEU CONTRA.

Quanto ao seu problema, a solução é bastante simples se você estiver usando o Apache como servidor web, basta instalarmod_rpaf. Este módulo permite registrar diretamente o IP fornecido pelo cabeçalho X-Forwarded-For.

Responder2

Hum, a resposta curta é "eles podem", então não tenho certeza se a pergunta pode ser respondida.

Eu arriscaria um palpite, porém, que a diferença entre as soluções de hardware e software é que a caixa de hardware foi projetada para funcionar como um roteador - ou seja, ela verá todo o tráfego do cliente para o servidor final e pode massageie-o em ambas as direções de acordo - enquanto as soluções de software estão em caixas que não estão roteando e, portanto, reescreva o endereço do cliente como uma maneira barata e alegre de forçar o tráfego de retorno a voltar através deles para massagem.

Responder3

Os balanceadores de carga de software funcionam em uma camada de pilha TCP superior. Você deve usar iptablespara obter o mesmo efeito. Um exemplo pode ser encontradoaqui.

Responder4

Eles podem, não é suportado por padrão no kernel. Geralmente é chamado (acredito) de falsificação de endereço de origem. Se você pesquisar no Google "source spoofing haproxy", obterá alguns resultados.

Mais notavelmente.

http://blog.loadbalancer.org/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy/

informação relacionada