网络出口通常会连接2条或以上的运营商链路,如在教育用户,会有教育网线路和电信/网通线路;在政府外网的出口有电信、网通线路等。多条运营商链路按照一定策略分担流量或者作为备份。
多链路负载均衡,是在直连ECMP路由的多条链路上根据一定策略进行合理的流量分配,提高链路资源的利用效率。
直连ECMP路由
ECMP路由称为多重等价路由,对于给定的路由前缀,有一个以上的出口或下一跳。直连ECMP路由是指多个下一跳都是直连的,非递归的,形成的ECMP路由。
链路带宽
链路可用资源的衡量指标,不同于物理接口的传输速率。是运营商提供的传输速率上限。通常是指下行带宽。
链路负载
链路负载是指链路当前资源的利用率,通过物理接口接收报文速率 / 链路带宽 计算得到。
负载均衡策略
在不同链路之间分担流量的策略,可以选择按照带宽进行负载均衡、链路负载优先进行负载均衡。
基于流选路
流会话,英文通常称为session,即一段时间内出现的目的IP,目的端口,源IP,源端口,VRF五元组相同的报文。多链路负载均衡和过载保护是基于流选路,同一条流的所有报文都会选到同一个出口。
带宽策略
带宽策略根据ECMP出口的带宽比例进行负载均衡,使得新建流在不同出口上分担的数目,与带宽成比例。对于给定的ECMP出口,其带宽越大权重值越大,不同出口之间的权重比接近于出口的带宽比。如果一个出口的流量超过阈值,则该出口不参与选路,如果所有出口的流量超过阈值,则默认随机选择,但用户也可以指定选路失败后优选某一个出口。
负载策略
负载策略又称带宽利用率策略,根据ECMP出口的负载进行流量分担,每次新建流都选择负载最小的出口。
缺省配置
功能特性 | 缺省值 |
多链路出口负载均衡 | 关闭 |
链路带宽 | 物理接口带宽 |
负载均衡策略 | 带宽均衡策略 |
同一个源IP只走同一个出口 | 使用源IP和目的IP结合作为选路参照 |
配置前提
配置多链路出口负载均衡的接口需要先配置好IP地址。
配置步骤
步骤 | 配置任务 | 说明 |
1 | 必选 | |
2 | 可选(链路实际带宽跟接口带宽不一致时使用) | |
3 | 可选(配置负载均衡策略时使用) | |
4 | 可选(某些应用场合,不允许同一个用户的报文从不同的出口到达目的地址使用) |
缺省情况下,设备关闭多链路负载均衡功能,进入特权模式,按以下步骤开启多链路负载均衡功能:
命令 | 作用 |
Ruijie#
configure terminal | 进入全局配置模式。 |
Ruijie(config)#
mllb enable | 启用多链路负载均衡功能 |
Ruijie(config)#
no mllb enable | 关闭多链路负载均衡功能 |
例:全局开启多链路负载均衡功能。
Ruijie# configure
terminal
Enter configuration
commands, one per line. End with
CNTL/Z.
Ruijie(config)# mllb enable
例:全局关闭多链路负载均衡功能。
Ruijie# configure
terminal
Enter configuration
commands, one per line. End with
CNTL/Z.
Ruijie(config)# no mllb
enable
命令 | 作用 |
Ruijie#
configure terminal | 进入全局配置模式。 |
Ruijie(config)#
interface interface-name | 进入端口的配置模式。 |
Ruijie(config-if)#
bandwidth kilobits | 配置链路带宽 |
Ruijie(config-if)#
no bandwidth | 恢复链路带宽为缺省值 |
例:配置链路带宽为1000M:
Ruijie# configure
terminal
Enter configuration
commands, one per line. End with
CNTL/Z.
Ruijie(config)# interface
gigabitEthernet 1/1/0
Ruijie(config-if-gigabitEthernet
1/1/0)# bandwidth 1000000
例:取消链路带宽设置:
Ruijie# configure
terminal
Enter configuration
commands, one per line. End with
CNTL/Z.
Ruijie(config)# interface
gigabitEthernet 1/1/0
Ruijie(config-if-gigabitEthernet
1/1/0)# no bandwidth
命令 | 作用 |
Ruijie#
configure terminal | 进入全局配置模式。 |
Ruijie(config)#
mllb policy { bandwidth | load } | 选择负载均衡策略为带宽/负载,缺省为带宽策略。 |
Ruijie(config)#
no mllb policy | 恢复负载均衡策略为缺省值 |
例:配置负载均衡策略为bandwidth:
Ruijie# configure
terminal
Enter configuration
commands, one per line. End with
CNTL/Z.
Ruijie(config)# mllb policy
bandwidth
同一个源IP只走同一个出口是指,在某些应用场合,不允许同一个用户的报文从不同的出口到达目的地址,否则认为是伪造报文。这种场合需配置同一个源IP的报文都从同一个出口转发。同时需要配合命令mllb
policy bandwidth一起使用。
例:配置负载均衡源IP固定则出口固定:
Ruijie# configure
terminal
Enter configuration
commands, one per line. End with
CNTL/Z.
Ruijie(config)# mllb
load-sharing original
组网需求
进行负载均衡的线路,其线路质量差别不大,典型场景是几条线路都是同一个ISP。例如某学校出口设备有2条移动出口,分别连接gi1/1/0,gi1/1/1口带宽分别为1000M,500M。2条电信出口,分别连接gi1/1/2,gi1/1/3口带宽分别为1000M,500M。
学校期望每个运营商的用户在其相应运营商的两条线路之间的流量分配与带宽成比例。这种场景适于带宽策略或负载策略,我们主要推荐用带宽策略。
组网拓扑
配置要点
配置用户组,不同的运营商用户属于不同的用户组。
通过策略路由,每个运营商用户都有2个出口链路,形成直连ECMP路由,流量在这2个链路之间进行多链路负载均衡。
备注:
1、MLLB功能可以对任何路由(包括 策略路由、静态路由、动态路由)形成的直连ECMP路由进行负载均衡策略;目前是RSR77和SAM运营商联动方案中常用到,因此本案例列举了策略路由的MLLB功能
2、MLLB功能在不同版本上功能有所变化,请以实际版本操作命令为准。
配置步骤
1) 配置物理接口IP地址
略
2) 与SAM基础联动、用户组等配置
#启用SAM联动
Ruijie(config)#umg-sam
Ruijie(config-umg-sam)#enabled
Ruijie(config-umg-sam)#exit
#创建SAM联动的用户组
Ruijie(config)#user-group
isp1_user
Ruijie(config-umg-sam)#exit
Ruijie(config)#user-group
isp2_user
Ruijie(config-umg-sam)#exit
3) 配置策略路由
#用户组关联ACL
Ruijie(config)#ip
access-list extended 110
Ruijie(config-ext-nacl)#10
permit ip user-group isp1_user any
Ruijie(config-ext-nacl)#100
deny ip any any
Ruijie(config)#ip
access-list extended 120
Ruijie(config-ext-nacl)#10
permit ip user-group isp2_user any
Ruijie(config-ext-nacl)#100
deny ip any any
#配置策略路由规则,2个下一跳形成直连ECMP路由,开启MLLB后,将在直连ECMP两条出口线路之间负载均衡。
Ruijie(config)#route-map isp
permit 10
Ruijie(config-route-map)#match
ip address 110
Ruijie(config-route-map)#set
ip next-hop 10.1.1.1
Ruijie(config-route-map)#set
ip next-hop 10.2.1.1
Ruijie(config-route-map)#exit
Ruijie(config)#route-map isp
permit 20
Ruijie(config-route-map)#match
ip address 120
Ruijie(config-route-map)#set
ip next-hop 11.1.1.1
Ruijie(config-route-map)#set
ip next-hop 11.2.1.1
Ruijie(config-route-map)#exit
#配置策略路由负载分担模式,缺省情况下为冗余模式
Ruijie(config)#ip
policy load-balance
# 内网口应用策略路由
Ruijie(config)#interface
TengigabitEthernet 2/1/0
Ruijie(config-if-TengigabitEthernet
2/1/0)#ip policy route-map isp
4) 配置开启多链路负载均衡功能
#全局开启多链路负载均衡功能。
Ruijie(config)#mllb
enable
5) 配置负载均衡策略为按照带宽负载均衡
# 配置负载均衡策略为bandwidth
Ruijie(config)#mllb
policy bandwidth
6) 配置链路带宽
Ruijie(config)# interface
gigabitEthernet 1/1/0
Ruijie(config-if-gigabitEthernet
1/1/0)# bandwidth 1000000
Ruijie(config-if-gigabitEthernet
1/1/0)#exit
Ruijie(config)# interface
gigabitEthernet 1/1/1
Ruijie(config-if-gigabitEthernet
1/1/1)# bandwidth 500000
Ruijie(config-if-gigabitEthernet
1/1/1)#exit
Ruijie(config)# interface
gigabitEthernet 1/1/2
Ruijie(config-if-gigabitEthernet
1/1/2)# bandwidth 500000
Ruijie(config-if-gigabitEthernet
1/1/2)#exit
Ruijie(config)# interface
gigabitEthernet 1/1/3
Ruijie(config-if-gigabitEthernet
1/1/3)# bandwidth 1000000
Ruijie(config-if-gigabitEthernet
1/1/3)#end