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


9

我们有一个Web服务器场,目前托管2个应用程序-这两个应用程序都在所有服务器上运行。我们希望将其拆分,因此我们为每个应用程序都有一个专用的服务器场(我们有充分的理由)。

我们希望在所有服务器之前都配备一个负载均衡器,该负载均衡器可以根据主机名将流量路由到正确的服务器场,但是我们希望维护Web服务器的SSL。

看来我们提供的路由器没有这样做。我很感谢没有SNI,这是不可能的,但是我们希望SNI指标几乎涵盖所有流量。

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

据我所知,Haproxy做到了这一点,但似乎硬件负载平衡器没有。是否有任何原因,还是我们应该为此而努力?

(对于不使用SNI的XP上使用IE的最后一名警卫,我们希望将流量发送到旧服务器场,并在必要时管理向新服务器场的代理)。

Answers:


10

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

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

您甚至可以基于SNI制作iRules。

免责声明:

  • 我尚未在他们的网站上验证他们的主张
  • 我不为F5工作,并且已经3年以上未使用任何产品了。

感谢您的回复。我可能在这方面是错的,但我认为该页面是在谈论Web服务器,而不是路由SSL通信。它谈论使用SNI选择正确的证书,因此我认为它在SSL连接的末尾,而不是在中间。
potomato

1
AFAIK,此页面讨论“路由SSL流量” ...,BIG-IP允许您将多个SSL配置文件分配给虚拟服务器,以支持TLS SNI功能的使用。TLS SNI功能在以前的BIG-中不可用IP版本,因此,如果您不在v11.1.0或更高版本上,则需要升级!要支持此功能,必须为虚拟服务器分配默认的SSL配置文件作为备用,并且为每个HTTPS站点分配一个SSL配置文件。当服务器名称与客户端请求不匹配或浏览器不支持SNI扩展时,将使用SSL配置文件。“
bgtvfr

“虚拟服务器”是大型ip将http / https流量路由到后端服务器(= apache,tomcat,websphere ...)的方式
bgtvfr

如上所述,大多数大型公司(思科,大IP)都在这样做。我不确定为什么其他答案被标记为答案。
Jim B

@JimB我将另一个标记为答案,因为我是一名试图协商网络硬件功能的程序员!我对文章进行了进一步的研究,如果设备选择基于SNI扩展将流量转发到其他物理服务器(根据需要),则仍然无法解决。不过,这看起来很相关:devcentral.f5.com/questions/…–
potomato

9

路由器无法检查SNI标头,

路由器通常仅在OSI层3上工作,即,不检查数据包的内容,而仅检查目标IP。对于基于SNI的路由,有必要了解TCP和TLS,这比基于IP地址的路由既复杂又昂贵(就性能而言)。这通常也不再称为路由。

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

您正在混合路由器(第3层),硬件负载平衡器(第4层甚至更高)和Haproxy(软件负载平衡器)。硬件负载平衡器无非就是一个上面装有一些软件负载平衡器的设备,也许还有一些针对特定操作的硬件加速。在硬件负载平衡器上,根本没有任何东西可以使基于SNI信息的平衡(而不是路由)成为不可能,并且像另一个答案一样,暗示有产品支持这一点。但是,当然,它需要实施并且会降低性能-他们越深入地了解流量,就会越慢。


好的,从技术上来说是可行的,但出于性能方面的考虑不是一个好主意,这就是为什么它没有完成的原因。谢谢。
potomato
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.