功能介绍
     多链路负载均衡MLLB,是在直连等价负载ECMP路由的多条链路上,对于新建的流路由器根据软件内置的算法根据运营商接口的实际带宽进行合理的流量分配,避免始终按照1:1的比例进行流量转发,防止低带宽链路负载较大的流量,从而提高链路资源的利用效率。
    基本概念解释:
     1)ECMP路由:称为多重等价路由,对于给定的路由前缀,有一个以上的出口或下一跳。直连 ECMP 路由是指多个下一跳都是直连的,非递归的,形成的 ECMP 路由
     2)链路带宽:链路可用资源的衡量指标,不同于物理接口的固有传输速率。是运营商提供的传输速率上限。通常是指下行,比如运营商提供的500M带宽;当该接口中没有设置 bandwidth 命令参数时,在特权用户模式下用 show interface 命令来显示其缺省值。只有配置了接口带宽bandwith,该接口才会加入 MLLB 的转发列表里,缺省情况下接口不会加入 MLLB 转发列表。
     3)链路负载:是指链路当前资源的利用率,通过物理接口接收报文速率 / 链路带宽 计算得到。
     4)负载均衡策略:在不同等价链路之间分担流量的策略,有两种:
          a.负载优先策略(设备的默认策略),又称带宽利用率策略,根据 ECMP 出口的负载进行流量分担,每次新建流都选择当前负载最
小的出口。当转发接口的链路负载率超过阈值时(即接口过载,默认90%),不会再在该接口新建流,直到该接口不再处于过载状态。
          b.哈希策略,根据用户的源 IP 地址,通过特殊的哈希算法让新建流通过计算得到的接口转发。
组网需求
      某高校有多条运营商链路,其中移动和联通分别有两条线路(未做端口聚合),在配置基于运营商选路对应运营商出口形成等价路由后,为更加合理利用出口带宽同时确保用户上网体验,需要部署MLLB功能,提升每条线路的使用利用率。其中移动运营商两条链路带宽分别为500M和1000M;联通两条链路分别为500M和800M
组网拓扑
    
配置步骤

1)    配置等价路由,以基于地址库的运营商选路路由配置为例

    参考“基于地址库的运营商选路”章节配置

            通过tftp上传完成地址库后配置

     RSR77-X(config)# route-auto-choose cnc gigabitEthernet 2/2/1 61.148.32.129 --->中国联通(CNC)接口为gigabitEthernet 2/2/1,下一跳地址为61.148.32.129

     RSR77-X(config)# route-auto-choose cnc gigabitEthernet 2/2/2 62.14.2.123 --->中国联通(CNC)接口为gigabitEthernet 2/2/2,下一跳地址为62.14.2.123

     RSR77-X(config)# route-auto-choose cmcc gigabitEthernet 1/1/1 218.204.198.65   --->中国移动(CMCC)接口为gigabitEthernet 4/1/1,下一跳地址为218.204.198.65

     RSR77-X(config)# route-auto-choose cmcc gigabitEthernet 1/1/2 218.203.12.54   --->中国移动(CMCC)接口为gigabitEthernet 4/1/1,下一跳地址为218.203.12.54 

2)    开启多链路负载均衡MLLB功能

    RSR77-X(config)#mllb enable   ----->全局开启多链路负载均衡功能

3)    配置负载均衡策略为按照负载进行均衡

    RSR77-X(config)#mllb policy load   ----->配置负载均衡策略为负载优先策略

   RSR77-X(config)#mllb load-sharing original----->配置同一个源IP只走同一个出口。在某些应用场景(比如网银、游戏等)不允许同一个用户的报文从不同的出口到达目的地址,否则认为是伪造报文或多次登录。使用该命令后同一个源IP的报文都从同一个出口转发。

4)    配置链路带宽

    RSR77-X(config)# interface gigabitEthernet 1/1/1

    RSR77-X(config-if-gigabitEthernet 1/1/1)# bandwidth 500000 ---->设置接口带宽为500Mbps

    RSR77-X(config-if-gigabitEthernet 1/1/0)#exit

    RSR77-X(config)# interface gigabitEthernet 1/1/2

    RSR77-X(config-if-gigabitEthernet 1/1/2)# bandwidth 1000000 ---->设置接口带宽为1Gbps

    RSR77-X(config-if-gigabitEthernet 1/1/2)#exit

    RSR77-X(config)# interface gigabitEthernet 2/2/1

    RSR77-X(config-if-gigabitEthernet 2/2/1)# bandwidth 500000

    RSR77-X(config-if-gigabitEthernet 2/2/1)#exit

    RSR77-X(config)# interface gigabitEthernet 2/2/2

    RSR77-X(config-if-gigabitEthernet 2/2/2)# bandwidth 800000

    RSR77-X(config-if-gigabitEthernet 2/2/2)#end

配置验证

可通过show mllb path 来查看链路的负载情况

    RSR77-X#sh mllb path 

    MLLB state: enable  policy: hash  LOAD_SHARE: TRUE

    MLLB path list count: 6  fpm mid: 0x0  entity bandwidth: 1000

      GigabitEthernet 1/1/1(3-12), ACTIVE, bandwidth 500000, threshold 90, load 24%(208231)

      GigabitEthernet 1/1/2(5-14), ACTIVE, bandwidth 1000000, threshold 90, load 20%(238202)

      GigabitEthernet 2/2/1(6-15), ACTIVE, bandwidth 500000, threshold 90, load 16%(202231)

      GigabitEthernet 2/2/2(7-16), ACTIVE, bandwidth 800000, threshold 90, load 23%(211238)

      Route-aggregatePort 1(10-19), INACTIVE, bandwidth 1000000, threshold 90, load 0%(0)

关键字段解读:

1)entity bandwidth: 1000:显示当前的 mllb per-entity配置

2)(3-12):本地id和全局id,可以不用管,是开发用的

3)ACTIVE:表示该接口在负载均衡MLLB策略中,属于激活的状态

     INACTIVE:表示这个接口不在MLLB的负载均衡接口当中,并没有参与MLLB功能

4)bandwidth 1000000:表示当前运营商提供的运营商带宽,

5)threshold 90:负载阀值,默认为90%

6)load 24%:表示基于当前带宽的百分比,流经接口的流量和bandwidth的比值

7)(208231)中的值:表示实际的接口流量,单位是 kbits

======

如果是通过策略路由的形式进行负载,配置示例如下:

    RSR77-X(config)#route-map isp permit 10

    RSR77-X(config-route-map)#match ip address 110

    RSR77-X(config-route-map)#set ip next-hop 10.1.1.1

    RSR77-X(config-route-map)#set ip next-hop 10.2.1.1

    RSR77-X(config-route-map)#exit

    RSR77-X(config)#route-map isp permit 20

    RSR77-X(config-route-map)#match ip address 120

    RSR77-X(config-route-map)#set ip next-hop 11.1.1.1

    RSR77-X(config-route-map)#set ip next-hop 11.2.1.1

    RSR77-X(config-route-map)#exit

#配置策略路由负载分担模式,缺省情况下为冗余模式

    RSR77-X(config)#ip policy load-balance 

# 内网口应用策略路由

    RSR77-X(config)#interface TengigabitEthernet 2/1/0

    RSR77-X(config-if-TengigabitEthernet 2/1/0)#ip policy route-map isp