¿Puede un equilibrador de carga de hardware enrutar el tráfico SSL con SNI?

9

Tenemos una granja de servidores web que actualmente alberga 2 aplicaciones: ambas aplicaciones se ejecutan en todos los servidores. Queremos dividir esto para tener una granja de servidores dedicada para cada aplicación (tenemos buenas razones para esto).

Esperábamos tener un solo equilibrador de carga en frente de todos los servidores, que enrutaría el tráfico a la granja de servidores correcta en función del nombre de host, pero queremos mantener SSL para los servidores web.

Parece que los enrutadores que se nos ofrecen no hacen esto. Aprecio que sin SNI esto sea imposible, pero esperamos indicadores de SNI en prácticamente todo nuestro tráfico.

Ahora soy un programador, no un chico de la red, pero cuando llega una nueva solicitud de conexión SSL, el enrutador no puede examinar el encabezado SNI y enrutar a la granja de servidores correcta. Supongo que la conexión SSL entrante está identificada por {IP de origen: puerto de origen}, así que ¿no podría recordar esto para los siguientes paquetes entrantes (si SNI solo está presente en el primer paquete)?

Por lo que puedo decir, Haproxy hace esto, pero parece que los equilibradores de carga de hardware no lo hacen. ¿Hay alguna razón para esto o es algo por lo que debemos presionar?

(Para el último guardia que usa IE en XP que no incluye SNI, nos gustaría enviar tráfico a la granja de servidores anterior, y administraríamos el proxy a la granja de servidores nueva cuando sea necesario).

potomato
fuente

Respuestas:

10

Según su sitio web, los equilibradores de carga F5 tienen soporte para SNI:

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

Incluso puedes hacer iRules basadas en SNI.

Descargo de responsabilidad :

  • No he verificado lo que dicen en su sitio web
  • No trabajo para F5, y no he usado ninguno en producción en más de 3 años.
bgtvfr
fuente
Gracias por su respuesta. Bien podría estar equivocado en esto, pero creo que esa página está hablando de servidores web en lugar de enrutar el tráfico SSL. Habla sobre el uso de SNI para seleccionar el certificado correcto, por lo que creo que está al final de una conexión SSL, en lugar de en el medio.
potomato
1
AFAIK, esta página habla sobre el enrutamiento del tráfico SSL "..., el BIG-IP le permite asignar múltiples perfiles SSL a un servidor virtual para admitir el uso de la función TLS SNI. La función TLS SNI no está disponible en BIG- anteriores Versiones IP, por lo que querrá actualizar si no está en v11.1.0 o superior. Para admitir esta característica, se debe asignar un perfil SSL predeterminado para el servidor virtual y un perfil SSL por sitio HTTPS. El perfil SSL se utiliza cuando el nombre del servidor no coincide con la solicitud del cliente o cuando el navegador no admite las extensiones SNI. "
bgtvfr
Los "servidores virtuales" son la forma en que IP grande enruta el tráfico http / https a los servidores de fondo (= apache, tomcat, websphere ...)
bgtvfr
La mayoría de los grandes jugadores (cisco, big-IP) hacen esto como se mencionó anteriormente. No estoy seguro de por qué la otra respuesta fue marcada como la respuesta.
Jim B
@JimB Marqué el otro como la respuesta porque soy un programador que intenta negociar las capacidades de hardware de la red. He examinado el artículo más a fondo y todavía no puedo resolver si un dispositivo elige reenviar el tráfico a diferentes servidores físicos en función de la extensión SNI (según sea necesario). Sin embargo, esto parece relevante: devcentral.f5.com/questions/…
potomato
9

¿No puede el enrutador examinar el encabezado SNI?

Un enrutador generalmente funciona solo en la capa 3 de OSI, es decir, no inspecciona el contenido del paquete sino solo la IP de destino. Para el enrutamiento basado en SNI, sería necesario comprender TCP y TLS, que es más complejo y mucho más costoso (con respecto al rendimiento) que el enrutamiento basado en la dirección IP. Y esto tampoco suele llamarse enrutamiento entonces.

Haproxy hace esto ... los equilibradores de carga de hardware no lo hacen.

Está mezclando enrutador (capa 3), equilibrador de carga de hardware (capa 4 y quizás superior) y Haproxy (equilibrador de carga de software). Un equilibrador de carga de hardware no es más que un dispositivo con algún equilibrador de carga de software y quizás también algo de aceleración de hardware para acciones específicas. No hay nada que inherentemente haga imposible el equilibrio (no el enrutamiento) basado en la información de SNI en un equilibrador de carga de hardware y, como otra respuesta, sugiere que hay productos que admiten esto. Pero, por supuesto, debe implementarse y cuesta rendimiento: cuanto más se mire el tráfico, más lento será.

Steffen Ullrich
fuente
Ok, es técnicamente posible, pero no es una buena idea por razones de rendimiento, por lo que no se hace. Gracias.
potomato