Alguma maneira de determinar se um balanceador de carga está sendo usado em um site?

Alguma maneira de determinar se um balanceador de carga está sendo usado em um site?

O título é basicamente isso. Existe algum comportamento específico que indique a presença de um balanceador de carga em um determinado site?

Responder1

EDIT: Isso será muito difícil, se não impossível (não gosto dessa palavra), já que o objetivo de ter um LoadBalancer é tornar a interação do cliente com ele transparente e basicamente invisível. Dito isto, aqui está minha postagem original:

Eu administro um balanceador de carga para um site bastante grande. A única indicação que nossos visitantes têm de que estão visitando qualquer servidor de aplicativos específico é que colocamos o nome específico do servidor na parte inferior da página de login. Isso nos ajuda a solucionar problemas que eles tenham.

Fora isso, só consigo pensar em uma coisa que poderia "informar" você de que estamos executando um balanceador de carga se não seguirmos essa política. Veja como você pode saber, mas será preciso um pouco de sorte.

Digamos que o balanceador de carga esteja configurado para encaminhar todo o tráfego para um servidor ou outro. Ou pelo menos encaminha o tráfego ssh entre um servidor para outro. Mesmo que você provavelmente não tenha credenciais de login para fazer login em nenhuma das caixas, ambos fornecerão uma chave diferente caso você tente fazer login. Portanto, se você tentar fazer login via ssh na primeira vez, será perguntado se você deseja aceitar a chave. Então, se você tiver sorte na segunda ou terceira solicitação, será informado de que existe uma chave diferente (ou seja, é outra caixa). Em um sistema *nix, você é frequentemente alertado de que isso pode ser devido a um ataque man in the middle.

Portanto, duas coisas precisam estar em vigor:

  1. SSH no servidor remoto
  2. LB de SSH

Portanto, se você obtiver duas chaves em um período de tempo relativamente curto, provavelmente poderá assumir que o administrador do sistema não as alterou, mas sim que você acabou de se comunicar com duas máquinas separadas por trás de um balanceador de carga.

Nota: há outro item, mas é um verdadeiro tiro no escuro. Você pode tentar descobrir com qual bloco de IP esse servidor foi agrupado. Então digamos que em um desses endereços IP específicos seja colocado no LB (na verdade, está em um desses IPs).

O Load Balancer é colocado em XXX.XXX.XXX.5, por exemplo. O LB será então configurado para capturar todo o tráfego de pelo menos um endereço IP adicional. Normalmente não encaminha o tráfego para XXX.XXX.XXX.5 (o hardware comercial que tenho definitivamente não faz isso). Então você pode contar com a existência de um endereço de administrador.

Se o LB estiver configurado para permitir administração de todos os hosts externos, você poderá anexar algo como /admin aos endereços IP até encontrar o LB. Isso pressupõe que o LB use esse caminho para administração.

Responder2

Não existe uma maneira determinante, mas há uma série de pistas que você pode procurar.
- nmapeie. O nmap pode fornecer algumas dicas sobre o sistema operacional de qualquer dispositivo com o qual você esteja falando. Se disser BSD e o URL terminar em .aspx, você está no caminho certo.
- cookies: muitos balanceadores de carga adicionam (ou podem adicionar) cookies de sessão. Procure por algum estranho e pesquise no Google, se você acessar os fóruns de suporte do F5, viola.
- vários outros cabeçalhos: muitos deles adicionam cabeçalhos com base em coisas como se um item foi armazenado em cache ou não (e outros motivos). Procure por cabeçalhos interessantes e pesquise no Google.
- na página ou enterrado em um comentário html, é comum que os desenvolvedores adicionem um "servido por web7" para ajudá-los a solucionar problemas.
- solicite o mesmo conteúdo rapidamente de vários IPs diferentes e compare os cabeçalhos ETag. Por padrão, o Apache baseia o etag no inode do sistema de arquivos, e muitos administradores nunca conseguem ajustá-lo, então se você vir um Etag diferente para o mesmo conteúdo, poderá adivinhar que ele vem de servidores diferentes (só funciona com o apache, só funciona se não estiver ajustado, só funciona se não for um sistema de arquivos compartilhado).

Na verdade, eu só esperaria que tudo isso lhe desse uma resposta significativa, como 1 vez em 4, no entanto, no geral, você não pode realmente saber, a menos que Catherine tenha dito "algo está errado".

Responder3

O ID de IP muda para cada pilha de IP, portanto, o host de IP está "atrás" do balanceador de carga. Uma ferramenta como o hping lhe daria exatamente isso: observe os IDs que NÃO pertencem ao mesmo intervalo ou - mesmo que por alguma estranha coincidência próxima o suficiente - não aumentem:

hping3 www.yoursite.com -S -p 80 (or whatever)

O exemplo acima captura vários hosts atrás do LB "sob" a camada de aplicativo.

Responder4

Se o balanceador de carga estiver fazendopersistência baseada em cookiesentão, olhar para os cookies pode lhe dar uma pista.

informação relacionada