负载均衡产品的应用(下)——链路篇

标签:
负载均衡多链路it |
分类: 安全 |
文/王玉堂
1 多链路部署后引发的问题
许多企业都意识到单条互联网出口链路带来的问题:链路一旦中断,内部员工将无法访问互联网,分支机构VPN中断,网站邮箱均无法对外服务。因此许多企业会部署多条运营商链路来解决单出口的不可靠。在单链路时代,出口一般会部署路由器或防火墙,部署多链路后,将多链路直接连接到路由器或防火墙上是否可以?
以上这些是当前出口路由器或防火墙遇到的新问题,可通过出口链路负载均衡来解决上述问题。
2 链路负载均衡核心功能介绍
1) 出口链路健康探测
所谓健康检测,就是负载均衡设备定期对链路服务状态进行探测,收集相应信息,及时隔离工作异常的链路。健康检测的结果除标识链路能否工作外,还可以统计出链路的响应时间,作为选择链路的依据。负载均衡技术支持丰富的健康性检测方法,可以有效地探测和检查链路的运行状态。
- ICMP方式:向链路上的节点发送ICMP Echo报文,若收到ICMP Reply,则链路正常。
- TCP Half Open方式:向链路上节点的某端口发起TCP连接建立请求,若成功建立TCP半开连接,则链路正常。
- DNS方式:向链路上的DNS服务器发送DNS请求,若收到正确的DNS应答,则链路正常。
http://www.h3c.com.cn/res/201110/18/20111018_1267762_image001_727418_30008_0.jpg
图1负载均衡链路故障探测功能
2) Outbound方向链路负载均衡
最理想的outbound链路负载均衡算法是就近性探测,即将将数据流分发到响应最快的出链路上, Outbound链路负载均衡是以报文的目的地址为目的进行检测,Inbound链路负载均衡是以DNS请求的源地址为目的进行检测。根据检测结果计算出最优链路,并通过最优链路转发业务流量。
就近性检测根据以下几个参数进行加权计算,得出链路加权数,并根据链路加权数的大小判断链路的优劣:
- 链路物理带宽:即链路的可用带宽值。
- 链路成本:取决于每条链路的成本值,比如租用联通10M链路每月1万元,租用电信10M链路每月1.5万元,则两条链路的成本比例为2:3,两条链路成本的取值应该满足该比例。
- 链路延迟时间(即RTT):通过链路健康性检测获得。
- 路由跳数(即TTL):通过链路健康性检测获得。
- ISP表项:负载均衡内置各运营商IP地址列表,outbound方向报文的目的IP地址如果与某ISP表项匹配,则将报文从匹配的ISP链路送出去。
- 链路静态调度算法:对每条链路轮询(加权轮询)分发数据流、根据报文的源IP/Port Hash、选择链路中并发连接数最少、链路中最大剩余带宽等方式。
- 持续性(会话保持)表项:针对网上银行、电子购物等应用,某一用户的一次交易过程中的多个连接从同一个链路送出去(做NAT时保证源IP不变,否则网银或电子购物服务器会将源IP漂移的报文视为攻击),就是持续性功能。负载均衡设备会将首次出方向报文的选路结果记录下来形成持续性表项,某数据流后续报文均根据持续性表项进行转发。
http://www.h3c.com.cn/res/201110/18/20111018_1267763_image002_727418_30008_0.jpg
图2 Outbound链路负载均衡选路示意图
负载均衡设备对出方向的每一个数据流的目的IP进行探测,选出最优链路进行分发。在实际应用中,尤其是在大型网络中如高校出口、运营商出口,其用户群访问的目的IP以数十万甚至上百万来计,如果负载均衡设备本身同时探测每个目的IP的响应时间,对负载均衡设备性能消耗较大,因此就近性探测方法一般针对小型网络或对ISP表项无法匹配的数据流。如图2所示,对出方向数据流首先进行ISP表项匹配,对于目的IP未匹配的报文可采用静态分发算法如轮询或加权轮询、动态算法如链路最小并发连接等以及就近性探测均可。
3) Inbound方向链路负载均衡
内网和外网之间存在多条链路时,通过Inbound链路负载均衡可以实现在多条链路上分担外网用户访问内网服务器的流量。Inbound链路负载均衡的典型组网如图3所示。
http://www.h3c.com.cn/res/201110/18/20111018_1267764_image003_727418_30008_0.png
图3Inbound链路负载均衡组网图
Inbound链路负载均衡中,负载均衡设备作为权威名称服务器记录域名与内网服务器IP地址的映射关系。一个域名可以映射为多个IP地址,其中每个IP地址对应一条物理链路。
外网用户通过域名方式访问内网服务器时,本地DNS服务器将域名解析请求转发给权威名称服务器——负载均衡设备,负载均衡设备依次根据就近性算法、ISP表选择最佳的物理链路,并将通过该链路与外网连接的接口IP地址作为DNS域名解析结果反馈给外网用户,外网用户通过该链路访问内网服务器。这里提及的就近性算法、ISP表项匹配原理与Outbound同,只是探测的是入方向报文的源IP而已。详细的实现机制见图4。
http://www.h3c.com.cn/res/201110/18/20111018_1267765_image004_727418_30008_0.jpg
图4 Inbound链路负载均衡实现示意图(智能DNS功能)
4) 来回路径一致
在多ISP出口的应用场景中,用户对互联网提供公众服务(如WEB、邮件系统)中,由于出口路由器一般配置静态策略居多,容易出现用户请求报文与服务器响应报文来回路径不一致的情况。如图5所示。
http://www.h3c.com.cn/res/201110/18/20111018_1267766_image005_727418_30008_0.jpg
图5 链路负载均衡来回路径一致功能
这将会导致两个问题:
1、 用户访问业务速度极慢,请求报文从电信进来,响应报文从移动出去,并跨网回送到电信,容易受到运营商跨网转发的速度瓶颈。
2、用户无法正常访问业务:如果运营商的设备开启URPF(反向单播逆向路径检测)功能,那么响应报文可能会被其他运营商丢弃。
为此,H3C的解决方法是特有的记录上一跳功能来保证用户的请求报文和响应报文来回路径一致。其实现原理是:负载均衡设备依据用户请求报文的五元组生成会话表,并把该会话表与入端口(物理或逻辑)对应关系记录成上一跳表项;但服务器响应报文会匹配到会话表,负载均衡设备会不再经路由查询、自动选路等处理直接将响应报文从入接口转发出去。
5) 防链路拥塞功能
在多家ISP链路情况下,无论Outbound方向采用何种负载均衡算法,都要防止链路出现流量过载。H3C负载均衡提供防链路拥塞功能来避免流量过载情况,负载均衡设备针对每条链路设置流量阈值,一般阈值略低于链路物理带宽值,当该链路的实际流量达到阈值后,后续按策略应由该链路转发的新的数据流会分发到其他低负载链路上。
3 链路负载均衡应用场景分析
1) 同一家运营商,多条链路
http://www.h3c.com.cn/res/201110/18/20111018_1267767_image006_727418_30008_0.jpg
图6 多条相同运营商链路
此种情况多为备份+带宽扩容,各链路的质量(除带宽外)大致相同,因此建议直接采用基于各条链路带宽值的加权轮询方式进行负载均衡(如图6建议按1:1:2的权值进行轮询分发),无需链路就近性探测,并建议开启会话保持功能,保证同一条数据流的后续报文从同一链路出去,以便出方向的NAT地址转换使用相同的IP地址,避免访问网银业务、电子购物等应用时被误认为攻击而导致无法正常交易。
2) 不同运营商,多条链路
http://www.h3c.com.cn/res/201110/18/20111018_1267768_image007_727418_30008_0.jpg
图7 多条不同运营商链路(一)
大型的网络中较多使用此方式,在实现链路备份+链路带宽扩容的同时,将对外提供的业务系统同时发布到多家运营商(每个运营商内的用户访问速度均较快),如图7所示。由于目的IP是ISP1的报文可能被轮询到ISP2的链路上,访问速度会不理想,按照outbound访问最快的原则,网络规模较小的情况,可采用就近性探测+会话保持+链路保护机制,对于规模较大的网络建议采用根据ISP地址匹配进行分流,对于目的IP与ISP表项不匹配的数据流,可采用就近性探测或按照链路带宽的加权轮询的方式,并开启基于源IP的会话保持功能。
3) 不同运营商,多条链路
http://www.h3c.com.cn/res/201110/18/20111018_1267769_image008_727418_30008_0.jpg
图8 多条不同运营商链路(二)
在多家运营商、多条运营商链路的用户,某些业务需要独享一定的带宽,比如高校出口网络,教师办公需要一定的带宽保证。如图8所示,H3C负载均衡提供在一条物理链路上配置多条逻辑链路功能,在一条链路上给教师分配一定带宽的逻辑链路,教师的教学办公的流量从优先保障的链路转发,学生的流量从剩余的逻辑链路和其他物理链路按照上述“不同运营商,多条链路之一”进行转发。
4) 广域网多链路
在广域网链路中,常常会采用双链路方式,负载均衡可较好的对广域网流量进行负载均衡并提供高可靠性和特定业务流的带宽保障,如图9所示。
http://www.h3c.com.cn/res/201110/18/20111018_1267770_image009_727418_30008_0.jpg
图9 广域网链路负载均组网说明
-
LB将出方向的流量按照加权轮询方式将流量分担到两条广域网链路上。
-
LB实现链路保护机制:针对每条链路设置流量阈值,流量超过阈值,新数据流将分发到另一条链路。
-
链路故障检测:LB通过ICMP或TCP half open探测链路故障,并将数据流分发到健康的链路上。
-
视频数据流的Qos,LB为视频数据流创建一条独享的逻辑链路(最小带宽保障),其他办公流量走剩下的带宽。
-
来回路径一致:LB记录广域网来的数据流的上一跳接口,保证数据流来回路径一致。
4 链路负载均衡组网方案
http://www.h3c.com.cn/res/201110/18/20111018_1267771_image010_727418_30008_0.jpg
图10 典型出口链路负载均衡组网方案
出口链路负载均衡根据不同算法进行选路,选路之后需要做NAT。NAT对出口设备而言是非常专业的功能,但对一般负载均衡厂家的设备而言,却非其核心功能。因为NAT要具备丰富完善的ALG功能(应用层网关,满足各种不同应用穿越NAT)。并且单IP做NAT地址转换要不受限6万个并发连接的限制。根据公安部82号令,出口NAT日志需要保留至少60天,如果负载均衡负责输出大流量NAT日志,会造成负载均衡性能大幅下降。基于以上原因,并不推荐负载均衡承担NAT功能。建议NAT由专业的设备如路由器或防火墙来实现。
5 结束语
在多链路的出口环境下,通过部署负载均衡设备,一方面克服了传统出口路由器防火墙静态策略转发数据流的不灵活性,其次提供的智能DNS功能(Inbound链路负载均衡)提升了对外业务系统的访问体验。H3C在湖南某高校出口部署链路负载均衡设备后,带宽利用率提升了近50%,可见,链路负载均衡让网络出口更高效、更可靠和更智能。