硬件负载平衡器可以使用 SNI 路由 SSL 流量吗?

pot*_*ato 9 ssl load-balancing sni

我们有一个网络服务器场,目前托管 2 个应用程序——这两个应用程序都在所有服务器上运行。我们想拆分它,以便为每个应用程序提供一个专用的服务器群(我们有充分的理由这样做)。

我们希望在所有服务器前有一个单一的负载平衡器,它会根据主机名将流量路由到正确的服务器场,但我们希望维护到网络服务器的 SSL。

我们提供的路由器似乎没有这样做。我明白没有 SNI 这是不可能的,但我们希望几乎所有流量都有 SNI 指标。

现在我是程序员,不是网络人员,但是当一个新的 SSL 连接请求进来时,路由器不能检查 SNI 标头,并路由到正确的农场。我假设传入的 SSL 连接由 {source IP:source port} 标识,所以它不能为后续传入的数据包记住这一点(如果 SNI 仅出现在第一个数据包中)?

据我所知 Haproxy 是这样做的,但硬件负载平衡器似乎没有。这有什么原因吗,或者这是我们应该推动的吗?

(对于最后一个在 XP 上使用不包含 SNI 的 IE 的守卫,我们希望将流量发送到旧场,并在必要时管理到新场的代理)。

bgt*_*vfr 10

根据他们的网站,F5 负载均衡器支持 SNI:

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

您甚至可以制作基于 SNI 的 iRule。

免责声明:

  • 我还没有验证他们在他们的网站上声称的内容
  • 我不为 F5 工作,而且我已经 3 年多没有在生产中使用任何东西了。


Ste*_*ich 9

路由器不能检查 SNI 标头,

路由器通常只在 OSI 第 3 层工作,即不检查数据包的内容而只检查目标 IP。对于基于 SNI 的路由,需要了解 TCP 和 TLS,这比仅基于 IP 地址的路由更复杂且成本更高(关于性能)。这通常也不再称为路由。

Haproxy 会这样做.. 硬件负载平衡器不会。

您正在混合路由器(第 3 层)、硬件负载平衡器(第 4 层和可能更高)和 Haproxy(软件负载平衡器)。硬件负载平衡器只不过是一个带有一些软件负载平衡器的设备,可能还有一些用于特定操作的硬件加速。没有什么可以在硬件负载平衡器上固有地使基于 SNI 信息的平衡(而不是路由)变得不可能,并且就像另一个答案表明存在支持此功能的产品一样。但是当然它需要实施并且会降低性能 - 他们更深入地查看流量,它变得越慢。