WCMP(Weight-CostMultipathRouting)加权多路径,能够非常灵活地按照比例在链路上传递流量,ECMP是它的特例。IGRP、EIGRP和部分静态路由也支持WCMP。
IGRP和EIGRP通过Variance来设置可以负载均衡的链路。IGRP和EIGRP的命令格式如下:
variance multiplier
multiplier表示最优Metric的倍数,所有从最优Metric和multiplier×Metric值的路径均是负载均衡的有效路径。Multiplier可以在1-128之间,缺省情况下multiplier是1,即为ECMP。
遇到多路径路由时,路由器的转发引擎有两种机制来实现负载分担:
*基于数据流的负载分担
*基于数据报文的负载分担
目的地址和源地址相同的报文属于一个数据流。所谓基于数据流的负载分担,假定有10个数据流,有两个路径可选择,一边各走5个。基于报文的负载分担就是,假定有10个数据报文,有两个路径可选择,一边各走5个。
可以通过表1中的命令来改变路由负载分担的机制:
要想在静态路由中实现WCMP,需要用表2中的命令:
静态路由的weight权重缺省时值为1,权重参数是在静态路由实现负载分担时使用的一个参数,决定IP包负载分担的比例。当有两条或两条以上路由到达同一目的地址,但是下一跳不同的时候,路由器按照各条路由的权重比例转发IP包,从而实现负载分担的目的。