EIGRP支持等价和非等价的负载均衡,要理解等价的负载均衡和非等价的负载均衡的前提是首先要知道负载均衡的方式
在cisco中,负载均衡分为两种,一种是基于目标地址的负载均衡,一种是基于数据包的负载均衡。
基于目标地址的负载均衡:当路由器有两条去往目标网络的路径,当发送一个数据去往第一个目标网络时,走第一条路径,当去往第二个目标时,走第二条路经,当去往第三个目标时,走第一条路径,以此类推,思科默认的是基于CEF的急速转发,等同于基于目标地址的负载均衡
基于数据包的负载均衡:对于每一个数据包,路由器都要执行路由表的查询和接口的选择,也就是说,每一次的数据转发都是相对独立的
由于默认是基于CEF的负载均衡,所以要实现EIGRP的等价和不等价的负载均衡,需要关闭cef的急速转发。
如图所示规划ip地址,其中172.16.1.1用于模拟两个相同的目标网络,在R1-R3三台路由器之间运行EIGRP,关闭cef,默认R2去往目标主机172.16.1.1会实现等价的负载均衡
接下来测试,在R1和R3上打开debug ip icmp,检测ping包
在R2做ping包测试,ping10个包
可以看到,在R1和R3上分别产生了5个包,这就是EIGRP的等价负载均衡。
接下来,做EIGRP的不等价负载均衡实验,修改e0/0接口带宽,默认是10M,修改为20M
可以看到修改后的路由表里面只有一条路由条目,下一跳地址为100.1.1.1 ,EIGRP的非等价负载均衡默认是关闭的,需要在EIGRP进程下通过variance命令开启,开启EIGRP的非等价负载均衡需要满足以下条件:
1.用于非等价负载均衡的路径需要满足FC条件
2.variance定义的值乘以最优路径的FD需大于用于实现非等价负载均衡的路径的FD
如下图所示:
R2的拓扑表中有两条去往目标网路172.16.1.1的路径,证明下一跳为200.1.1.1的这条路由条目已经满足了第一个条件,要满足第二个条件可以用131153920/9885920得出它们之间的倍数关系:
由于variance的取值为整数,范围为1-128,所以variance的值大于等于2即可,比如接下来,将variance的值设置为10,然后进行非等价负载均衡的测试
接下来测试:
开始ping包,每次1个,可以发现,首先走R1,走了4个包以后切换到了R3,然后R3上走了3个包以后切换到了R1上:
由此可以得出,R1上走4个包以后就会走R3上3个包,用4除以3得出:
基于以上实验结果,可以得出,EIGRP实现非等价负载均衡和variance的值无关,而是基于EIGRP的度量值来实现非等价负载均衡,那么variance的值只是确定一个满足FC条件的路径需要作为非等价负载均衡的路径的度量范围,如果将varance的值设置为1,那么将不能实现非等价的负载均衡!
以上就是本期的内容,特别说明,本示例中关于EIGRP的配置是使用64bit的命名式配置方法,32bit为传统EIGRP的配置,谢谢!