1、ECMP简介
Equal-CostMultipathRouting,等价多路径。即存在多条到达同一个目的地址的相同开销的路径。当设备支持等价路由时,发往该目的 IP 或者目的网段的三层转发流量就可以通过不同的路径分担,实现网络的负载均衡,并在其中某些路径出现故障时,由其它路径代替完成转发处理,实现路由冗余备份功能。
2、与传统路由技术比较
如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定的时间,而等价多路径路由协议可以在该网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。
3、分配包的基本方式
1)基于数据流的负载分担
目的地址和源地址相同的报文属于一个数据流。基于数据流的负载分担的方式就是,假定有10个数据流,有2条路径可选择,一边各走5个。
2)基于数据报文的负载分担
假定有10个数据报文,有2个路径可选择,一边各走5个。
4、优点
提高链路利用率;路径冗余备份。
5、缺点
实际上,网络中各条路径的带宽、时延和可靠性等不一样,把Cost认可成一样,不能很好地利用带宽,尤其在路径间差异大时,效果会非常不理想,逐包转发可能导致报文乱序。例如,路由器两个出口,两路径,一个带宽是100M,一个是2M,如果部署是ECMP,则网络总带宽只能达到4M的利用率。
6、ECMP改进方向
ECMP算法的核心是均衡使用所有等代价的路径。
当前网络的负载状态会影响最短路径的选取。比如,两点之间的最短路如果使用越来越多直至拥塞,最短路就会发生变化。因此,最短路是随着当前网络的负载而发生变化的。最短路径的计算是由链路权重确定的,链路权重确定了之后最短路也就确定了。所以,如何根据当前网络负载状况对链路权重进行赋值是ECMP路由算法的一个重要的问题。