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

2

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

Agora estou vendo substitutos de software, como HAProxy, Pound ou AWS ELB. Todos eles têm uma coisa em comum: o servidor da Web recebe o IP do balanceador de carga em vez do do usuário final. Seu sistema deve estar ciente disso e acessar um cabeçalho X-Forwarded-For se você quiser o IP do usuário final ou, no caso do 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 podem se comportar da mesma maneira que os balanceadores de carga de hardware e apenas repassar os pacotes TCP como se fossem um dispositivo de rede simples?

    
por realworldcoder 23.08.2012 / 17:03

4 respostas

4

Como esses softwares funcionam na camada 7 (Aplicativo) do Modelo OSI , há soluções de software que funcionam em a camada 3/4 como LVS .

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

    
por 23.08.2012 / 17:21
1

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

No entanto, acho que a diferença entre as soluções de hardware e software é que a caixa de hardware foi projetada para entrar como um roteador - ou seja, ele verá todo o tráfego do cliente para o servidor final. e pode fazer massagens em ambas as direções de acordo - enquanto as soluções de software estão em caixas que não são roteadas e, portanto, reescrevem o endereço do cliente como uma forma barata e alegre de forçar o tráfego de retorno a voltar por eles para massageando.

    
por 23.08.2012 / 17:09
1

Os balanceadores de carga de software funcionam em uma camada de pilha TCP mais alta. Você deve usar iptables para obter o mesmo efeito. Um exemplo pode ser encontrado aqui .

    
por 23.08.2012 / 17:12
1

Eles podem, não tem sido suportado por padrão no kernel. É geralmente referido (creio eu) como spoofing de endereço de origem. Se você usar o Google "source spoofing haproxy", receberá alguns hits.

Mais notavelmente.

link

    
por 23.08.2012 / 17:42