之前,我们已经讨论的在多出口链路负载均衡的多个相关问题,在这里总结如下


大家可以看出;链路负载均衡深入探讨时,其实是个话题很多,细节很多的技术主题,今天我们继续讨论链路负载均衡中的链路和NAT IP 会话保持,这也是一个比较细节但是非常重要的问题。


在实际部署中,大家有没有遇到过部署链路负载均衡设备后,使用客户报网银或者网上营业厅,证券,基金等敏感业务不能使用的问题呢?这个问题我们一步步来分析


1)多链路出口的通常部署情况

如下图;多个出口,甚至多个电信和网通出口;通常的策略是按照运营商归属性质分配;

如目的地址是电信的IP,则在多个电信链路中平均分配。

2)链路会话保持: 网银应用失效的原因之一

在我们访问网银应用时,由于网银对安全性要求较高;通常会要求整个会话过程中用户必须使用同一源IP地址登录。对远端的网银系统而言,这个源IP并不是客户的内网IP,而是在链路疏导设备后NAT后的IP地址。

我们在访问网银时,通常会发送2个并发的会话;这2个会话对链路负载均衡设备,是需要分别处理的;很明显,如果链路疏导设备没有基于目的地址的链路保持,会将用户2个请求分别发送到2条不同的电信链路中,当然NAT后的IP地址也不同,会造成访问失败。这种不正确的处理方式如下图所显示


基于目的地址的会话保持是所有链路负载均衡设备必须具备的功能,在实际应用中也必须开启。


3)NAT 地址会话保持: 网银应用失效的原因之二

即使在基于目的地址的保持启用后,也有可能遇到网银等应用失效的问题;这时通常是由于该链路有多个NAT IP 地址,而不同的会话虽然选择了同一条链路;但是使用了不同的NAT 转换IP地址造成。如下图:

电信链路有5个可用的NAT IP地址1到5; 

在用户访问营业厅的2个并发会话如果分别使用了NAT IP 3 和4 ,那么对于远端服务器的效果,是和不做链路保持的效果一样的,发现用户会话中使用了2个不同的IP地址,会认为该请求无效,造成访问失败。


4)正确的处理方式: 链路目的IP会话保持+NAT IP地址保持

如前描述,出口链路负载均衡正确的流量处理方式应该有2个保持功能

  • 基于目的IP地址的链路保持方式

  • NAT IP 地址的保持方式


5)NAT IP地址保持实现的方式

NAT IP地址的保持方式,有些厂商可能要通过详细的acl 和单个NAT IP的一一绑定来实现;配置繁琐而且无法真正确保NAT地址使用的均衡性。A10设备内置了简单的client-sticky-nat一键设置功能;只需启用该功能后即可实现;配置截图如下:

在命令行里的IP NAT 地址池和使用情况截图;只需定义NAT地址池和启用Client IP Sticky NAT功能后即有效;端口在用和历史使用的统计也很平均。

某个特定用户(内网IP 172.24.39.62)的会话截图;

同一用户仍旧根据链路调度方式,可以使用多个不同链路;

在使用每条链路时,会HASH选择固定的一个NAT IP; 以彻底确保网银/网上营业厅等等应用的正常使用。


(J.L)