当内网用户访问外部网络存在多个等效出口(即存在多条链路)时,可在网关配置MLLB(Multi-Link Load Balance,多链路负载均衡)功能来保证业务连续性和网络质量。
MLLB不能直接进行数据流的转发处理,而是作为公共方法为路由模块在等价路由(到达目的网络同时存在多条路由)间选取一个合适出口作为转发接口。因此,MLLB要结合路由模块使用,包括但不限于:
l 静态路由:当到达同一个目的网络存在多条静态路由(优先级,管理距离等都相等),会形成静态路由的等价路由。
l 运营商地址库路由:当多个接口引用相同的地址库,会构成等价路由。
l DNS正向代理:当到达DNS服务器的链路出现拥塞,有多条备选链路可以切换。
l 智能路由:当流量命中策略后,存在多出口链路。
MLLB适用以下场景:
场景分类 |
说明 |
静态路由 |
适用于大多数多出口场景,在专网、运营商、VPN线路等多类链路之间进行流量分担 |
运营商地址库路由 |
适用于多运营商地址库选路场景,在多个支持运营商地址库的线路进行流量分担 |
DNS正向代理 |
适用于多运营商地址库选路场景,在某个支持运营商地址库的链路劣化后,启用其他链路进行流量分担 |
智能路由 |
适用于大多数多出口场景,相较于明细路由可以更精确地选取流量 |
MLLB提供的分担方式如下:
分担方式 |
描述 |
必选配置 |
基于源地址 |
根据“源IP”的哈希值选择流量分担链路,源地址相同的业务走同一链路 |
无 |
基于源地址+目的地址 |
根据“源IP+目的IP”哈希值选择流量分担链路,源地址和目的地址相同的业务走同一链路 |
无 |
基于带宽 |
根据带宽比例或者带宽利用率比例选择流量分担链路 |
配置各接口(链路)的上下行带宽 |
基于链路优先级 |
根据优先级最大值选择流量分担链路 |
配置各接口(链路)的优先级 |
基于链路权重 |
根据权重比例选择流量分担链路,权重大的链路具有较高机会分担流量 |
配置各接口(链路)的权重 |
基于带宽+会话 |
根据下行带宽利用率和会话利用率综合判断利用率最小的链路 |
配置各接口(链路)的下行带宽、最大会话数 |
基于会话 |
根据实时会话数利用率(实时会话数除以设定的最大会话数)最小值选择流量分担链路 |
配置各接口(链路)的最大会话数 |
如下图所示,设备接口Ge0/1、Ge0/2、Ge0/3都配置了相同的路由规则,启用基于源地址的负载均衡后,相同源IP的报文均会由同一个接口发出,当某个接口流量达到阈值,则该接口不再参与新建流的流量分担。当所有接口流量都达到阈值,所有接口都参与新建流的流量的分担。
基于源IP负载均衡适用于多个出口的链路带宽和链路质量差异不大的场景,或网银、游戏等场景,方便相同服务的多条流走相同的路径,不同服务的报文均衡分布在多个出接口,充分利用多接口分担流量,保障业务质量。
启用基于源地址+目的地址负载均衡后,源IP和目的IP都相同的报文,会由同一个接口发出,当某个接口流量达到阈值,则该接口不再参与新建流的流量分担。当所有接口流量都达到阈值,所有接口都参与新建流的流量的分担。与基于源IP负载均衡不同的是,若目的IP不同,报文可能会从不同的接口发出,更加分散地在出口间进行流量分担。
如下图所示,设备Ge0/1、Ge0/2、Ge0/3都设置了相同的路由规则A,接口Ge0/1带宽为300M,阈值为90%;Ge0/2带宽为200M,阈值为90%;Ge0/3带宽为100M,阈值为80%。
接口流量均未达到阈值时,命中路由规则A的流量在Ge0/1、Ge0/2、Ge0/3三个接口上分担的流量比例为3:2:1。当Ge0/3流量达到阈值,则该接口不再参与新建流的流量分担,后续新建的且命中路由规则A的流量只会在Ge0/1、Ge0/2两个接口上进行分担,比例为3:2。当所有接口流量都达到阈值,则后续新建的且命中路由规则A的流量继续按照带宽比例在三个接口进行分担。
基于带宽的负载均衡可以让带宽大的出接口分担更多的流量,同时所有接口都参与流量,充分利用接口带宽。
如下图所示,设备接口Ge0/1、Ge0/2、Ge0/3都配置了相同的路由规则,ISP1链路计费较划算,用户设置Ge0/1权重最高,值为5,流量阈值设置为90%;ISP2链路计费较高,Ge0/2设置的权重稍低,值为2,流量阈值设置为90%;ISP3链路计费和ISP2相同,但是带宽只有ISP2的一半,Ge0/3口权重设置最低,值为1,流量阈值设置为90%。当接口流量均未达到阈值时,所有流量在Ge0/1、Ge0/2、Ge0/3的分担比例为5:2:1;当接口Ge0/1流量达到阈值时,则该接口不再参与新建流的流量分担,后续流量只在Ge0/2、Ge0/3两个接口按2:1的比例进行分担;当所有接口负载都超过阈值时,后续流量按原始权重比例5:2:1在三个口进行分担。
如下图所示,设备接口Ge0/1、Ge0/2、Ge0/3都配置了相同的路由规则,ISP1链路质量较好,用户设置Ge0/1优先级最高,流量阈值设置为90%;ISP2链路质量次之,Ge0/2设置的优先级次之,流量阈值设置为90%,ISP3链路质量最差,Ge0/3口优先级设置最低,流量阈值设置为90%。在流量没有超过阈值的时候,所有流量优先由Ge0/1分担;当Ge0/1口流量超过阈值,Ge0/2与Ge0/1一起分担流量,旧流走Ge0/1口,新建流都走Ge0/2口;当Ge0/1、Ge0/2都达到阈值,启用Ge0/3与Ge0/1、Ge0/2一起分担流量,旧流走Ge0/1口和Ge0/2口,新建流都走Ge0/3口;当Ge0/1、Ge0/2、Ge0/3都达到阈值,新建流重新从优先级高的接口进行流量分担。基于链路优先级的负载均衡适用于区分主备线路的场景。
如下图所示,设备接口Ge0/1、Ge0/2、Ge0/3都配置了相同的路由规则,其中Ge0/1口链路支持的最大会话数为2000;Ge0/2口链路支持的最大会话数为5000;Ge0/3口链路支持的最大会话数为8000。
由于每个链路支持的最大会话数不同,同时不同会话的生存周期、创建时间、连接负载等也存在差异,若新流总是无差别地选择会话数最少的链路来分担流量,所支持最大会话数数值较小的Ge0/1链路可能很快被占满,无法分担新流。因此,为了更均衡地利用各个接口带宽资源,基于会话的负载均衡模式下,流量将基于加权最小会话数进行负载分担,即流量优先选择实际会话数除以设定的最大会话数后数值最小的链路来分担流量。
基于带宽+会话的负载均衡模式综合考虑了链路的带宽利用率与会话利用率,优先选择实时会话数除以配置的最大会话数后数值最小且链路带宽未达到阈值的链路分担流量。当网络中存在多条拨号的互联网线路,且出接口都配置了相同的路由规则时,配置基于会话+带宽的负载均衡,可帮助企业均衡利用各个接口带宽资源,保障网络质量;适用于家庭宽带和专线共存的场景。