Un équilibreur de charge matériel peut-il acheminer le trafic SSL avec SNI?

9

Nous avons une batterie de serveurs Web hébergeant actuellement 2 applications - les deux applications s'exécutent sur tous les serveurs. Nous voulons diviser cela afin que nous ayons une batterie de serveurs dédiée pour chaque application (nous avons de bonnes raisons à cela).

Nous espérions avoir un seul équilibreur de charge devant tous les serveurs, qui acheminerait le trafic vers la batterie de serveurs correcte en fonction du nom d'hôte, mais nous voulons conserver SSL aux serveurs Web.

Il semble que les routeurs qui nous sont proposés ne le font pas. Je comprends que sans SNI, cela est impossible, mais nous attendons des indicateurs SNI sur pratiquement tout notre trafic.

Maintenant, je suis un programmeur, pas un gars du réseau, mais lorsqu'une nouvelle demande de connexion SSL arrive, le routeur ne peut-il pas examiner l'en-tête SNI et router vers la batterie de serveurs correcte. Je suppose que la connexion SSL entrante est identifiée par {IP source: port source}, donc ne peut-il pas s'en souvenir pour les paquets entrants suivants (si SNI n'est présent que dans le premier paquet)?

Pour autant que je sache, Haproxy le fait, mais il semble que les équilibreurs de charge matériels ne le fassent pas. Y a-t-il une raison à cela, ou est-ce quelque chose pour lequel nous devrions insister?

(Pour le dernier gardien utilisant IE sur XP qui n'inclut pas SNI, nous voudrions envoyer du trafic vers l'ancienne batterie de serveurs et nous gérerions le proxy vers la nouvelle batterie de serveurs si nécessaire).

pomme de terre
la source

Réponses:

10

Selon leur site Web, les équilibreurs de charge F5 prennent en charge SNI:

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

Vous pouvez même créer des règles basées sur SNI.

Avertissement :

  • Je n'ai pas vérifié ce qu'ils réclament sur leur site Web
  • Je ne travaille pas pour F5 et je n'en ai pas utilisé en production depuis plus de 3 ans.
bgtvfr
la source
Merci pour votre réponse. Je me trompe peut-être, mais je pense que cette page parle de serveurs Web plutôt que de routage du trafic SSL. Il parle d'utiliser SNI pour sélectionner le bon certificat, donc je pense que c'est à la fin d'une connexion SSL, plutôt qu'au milieu.
pomme de terre
1
AFAIK, cette page parle de routage du trafic SSL "..., le BIG-IP vous permet d'attribuer plusieurs profils SSL à un serveur virtuel pour prendre en charge l'utilisation de la fonction TLS SNI. La fonction TLS SNI n'était pas disponible dans les BIG- précédents Versions IP, vous aurez donc besoin de mettre à niveau si vous n'êtes pas sur v11.1.0 ou supérieur! Pour prendre en charge cette fonctionnalité, un serveur SSL par défaut doit se voir attribuer un profil SSL par défaut ainsi qu'un profil SSL par site HTTPS. Le profil SSL est utilisé lorsque le nom du serveur ne correspond pas à la demande du client ou lorsque le navigateur ne prend pas en charge les extensions SNI. "
bgtvfr
les "serveurs virtuels" sont la façon dont le gros trafic IP achemine le trafic http / https vers les serveurs backend (= apache, tomcat, websphere ...)
bgtvfr
La plupart des grands acteurs (cisco, big-IP) font cela comme mentionné ci-dessus. Je ne sais pas pourquoi l'autre réponse a été marquée comme réponse.
Jim B
@JimB J'ai marqué l'autre comme réponse parce que je suis un programmeur essayant de négocier les capacités matérielles du réseau! J'ai lu l'article plus en détail et je ne peux toujours pas déterminer si un appareil choisit de transférer du trafic vers différents serveurs physiques en fonction de l'extension SNI (comme nous en avons besoin). Cela semble cependant pertinent: devcentral.f5.com/questions/…
potomato
9

le routeur ne peut-il pas examiner l'en-tête SNI,

Un routeur ne fonctionne généralement qu'au niveau de la couche OSI 3, c'est-à-dire qu'il n'inspecte pas le contenu du paquet mais uniquement l'adresse IP cible. Pour le routage basé sur SNI, une compréhension de TCP et TLS serait nécessaire, ce qui est à la fois plus complexe et beaucoup plus cher (en termes de performances) que le routage basé sur l'adresse IP. Et cela n'est généralement plus appelé routage.

Haproxy le fait. Les équilibreurs de charge matériels ne le font pas.

Vous mélangez routeur (couche 3), équilibreur de charge matériel (couche 4 et peut-être plus) et Haproxy (équilibreur de charge logiciel). Un équilibreur de charge matériel n'est rien de plus qu'une appliance avec un équilibreur de charge logiciel et peut-être aussi une accélération matérielle pour des actions spécifiques. Il n'y a rien qui rend par nature l'équilibrage (pas le routage) basé sur les informations SNI impossible sur un équilibreur de charge matériel et comme une autre réponse suggère qu'il existe des produits qui prennent en charge cela. Mais bien sûr, il doit être implémenté et cela coûte des performances - ils approfondissent le trafic plus lentement.

Steffen Ullrich
la source
Ok donc techniquement possible mais pas une bonne idée pour des raisons de performances, c'est pourquoi cela n'est pas fait. Merci.
potomato