Um balanceador de carga de hardware pode rotear tráfego SSL com SNI?

9

Atualmente, temos um farm de servidores da web que hospeda 2 aplicativos - ambos estão sendo executados em todos os servidores. Queremos dividir isso para termos um farm de servidores dedicado para cada aplicativo (temos boas razões para isso).

Esperávamos ter um único balanceador de carga na frente de todos os servidores, que direcionasse o tráfego para o farm correto com base no nome do host, mas queremos manter o SSL para os servidores da web.

Parece que os roteadores que estão sendo oferecidos não fazem isso. Entendo que, sem o SNI, isso é impossível, mas esperamos que os indicadores do SNI estejam em praticamente todo o nosso tráfego.

Agora sou um programador, não um profissional de rede, mas quando uma nova solicitação de conexão SSL é recebida, o roteador não pode examinar o cabeçalho SNI e encaminhar para o farm correto. Suponho que a conexão SSL de entrada seja identificada por {IP de origem: porta de origem}, portanto, não se lembra disso para pacotes de entrada subsequentes (se SNI estiver presente apenas no primeiro pacote)?

Até onde eu sei, o Haproxy faz isso, mas parece que os balanceadores de carga de hardware não. Existe alguma razão para isso ou é algo que devemos insistir?

(Para o último guarda que usa o IE no XP, que não inclui SNI, queremos enviar tráfego para o farm antigo e gerenciaremos o proxy para o novo farm quando necessário).

potomato
fonte

Respostas:

10

De acordo com o site, os balanceadores de carga F5 têm suporte para SNI:

https://devcentral.f5.com/articles/ssl-profiles-part-7-server-name-indication

Você pode até criar iRules com base no SNI.

Aviso Legal :

  • Não confirmei o que eles reivindicam no site deles
  • Não trabalho na F5 e não uso nenhum há mais de 3 anos.
bgtvfr
fonte
Obrigado pela sua resposta. Talvez eu esteja errado nisso, mas acho que a página está falando sobre servidores da Web em vez de rotear o tráfego SSL. Ele fala sobre o uso do SNI para selecionar o certificado correto, então acho que está no final de uma conexão SSL, e não no meio.
potomato 23/08
1
AFAIK, esta página fala sobre o roteamento do tráfego SSL "..., o BIG-IP permite atribuir vários perfis SSL a um servidor virtual para suportar o uso do recurso TLS SNI. O recurso TLS SNI não está disponível nos BIG- Versões IP, portanto, você deve atualizar se não estiver na v11.1.0 ou superior! Para oferecer suporte a esse recurso, um servidor virtual deve ter um perfil SSL padrão para fallback, bem como um perfil SSL por site HTTPS. O perfil SSL é usado quando o nome do servidor não corresponde à solicitação do cliente ou quando o navegador não suporta as extensões SNI. "
bgtvfr 23/08/16
"servidores virtuais" são a maneira rota ip grande tráfego HTTP / HTTPS para servidores back-end (= apache, tomcat, websphere ...)
bgtvfr
A maioria dos grandes players (Cisco, IP grande) faz isso como mencionado acima. Não sei por que a outra resposta foi marcada como a resposta.
Jim B
@ JimB Marquei o outro como resposta, porque sou um programador tentando negociar recursos de hardware de rede! Analisei o artigo mais detalhadamente e ainda não consigo descobrir se um dispositivo está optando por encaminhar o tráfego para diferentes servidores físicos com base na extensão SNI (conforme necessário). Isso parece relevante: devcentral.f5.com/questions/…
potomato 23/08
9

o roteador não pode examinar o cabeçalho SNI,

Um roteador geralmente funciona apenas na camada OSI 3, ou seja, não inspeciona o conteúdo do pacote, mas apenas o IP de destino. Para o roteamento baseado no SNI, seria necessário um entendimento do TCP e TLS, que é mais complexo e muito mais caro (em relação ao desempenho) do que apenas o roteamento baseado no endereço IP. E isso também geralmente não é mais chamado de roteamento.

O Haproxy faz isso. Os balanceadores de carga de hardware não.

Você está misturando roteador (camada 3), balanceador de carga de hardware (camada 4 e talvez superior) e Haproxy (balanceador de carga de software). Um balanceador de carga de hardware nada mais é do que um dispositivo com algum balanceador de carga de software e talvez também alguma aceleração de hardware para ações específicas. Não há nada que torne inerentemente impossível o balanceamento (não o roteamento) com base nas informações SNI em um balanceador de carga de hardware e, como outra resposta, sugere que existem produtos que suportam isso. Mas é claro que ele precisa ser implementado e custa desempenho - eles aprofundam a visão do tráfego quanto mais lento ele fica.

Steffen Ullrich
fonte
Ok, então tecnicamente possível, mas não é uma boa ideia por razões de desempenho, e é por isso que isso não é feito. Obrigado.
potomato 23/08