EIGRP(含汇总,非等价负载均衡,默认等实验)
来源:互联网 发布:ai人工智能 开源 编辑:程序博客网 时间:2024/04/27 18:16
EIGRP是高级距离矢量协议,比RIP高级的地方在于:EIGRP除路由表外,还多了邻居表和拓扑表。通过邻居表,从邻居那里获得路由后,保存到拓扑表里,然后根据DUAL算法选择一个最优的无环路径加入路由表,因此EIGRP是100%防环的。另外EIGRP能快速收敛。支持VLSM和CIDR。支持多种网络层协议(IP/IPX/AppleTalk)。支持组播(地址是224.0.0.10)及单播路由更新。支持手动汇总。支持非等价负载均衡。
AD值:
EIGRP的AD值是90,汇总EIGRP的AD值为5,外部EIGRP的AD值为170。
度量:
RIP的度量值是跳数,相对比较粗糙。EIGRP的度量就先进多了,有5个参数:带宽,延时,(可靠性,负载,MTU一般不用)。计算公式:10^7/路径的最小带宽)+延时/10]×256,带宽单位kbps,延时单位ms
EIGRP有5种报文:Hello,Update,Query,Reply,Ack。报文封装在IP协议内的协议号为88。
1.Hello(用于建邻居):
EIGRP组播发送Hello包来发现邻居,并非所有直连的路由器都是邻居,直连只是形成邻居的条件之一,其他条件有:AS号相同,度量计算的K值相同,通过认证。邻居建立后追加入邻居表,还要定时维护邻居表,具体做法是:每隔5秒邻居给发送Hello包,如果3倍时间(即15秒)内都没有收到邻居发过来的Hello包,就认为邻居发生故障并将邻居关系down掉。(所以虽说EIGRP只有第一次是完整发送路由信息外,其他时间都是有变化才更新,但平时并不是完全安静不发送任何报文的,还是会每隔5秒发送Hello包,以维持邻居关系)
2.Update(用于更新路由信息):
邻居建立后,采用可靠传输协议(RTP)组播Update报文,为保障报文到达所有邻居,组播Update后,需要邻居回复ACK进行确认。如RTO(Retransmit Time Out)超时后还没收到邻居的ACK,就向该邻居重传Update(重传为单播,已回复ACK的邻居就不会收到重传,节约了带宽),最多15次,第16次重传Update后仍旧没收到对方的ACK答复,就认为邻居发生故障,将邻居关系down掉。从Update报文里得到邻居路由后,保存到拓扑表里,然后根据DUAL算法选择一个最优的无环路径加入路由表。补充一点:Update,Query,Reply需要回复ACK,Hello和ACK报文没有必要回复ACK
DUAL算法:(介绍Query和Reply报文前先介绍DUAL算法)
DUAL算法是EIGRP的核心,通过它EIGRP才能实现100%无环。先了解几个术语:
AD(Advertise Distance):邻居到达目的地的成本。注意此处AD非路由条目内的管理距离AD(Administrator Distance),它俩仅仅缩写相同而已
FD(Feasible Distance):到达邻居的成本 + AD
Successor后继:最低成本路径(即最小FD)的邻居。
FS(Feasible successor):次优路径的邻居,但其AD要小于Successor的FD(这样可以避免环路)。当Successor消失后,有FS的话直接将FS放入路由表(这样可以加快收敛)。没FS的话向所有邻居发Query查询报文,查询这条路由条目,如果邻居自己没有到达目的地的路由,会像它的邻居扩散开去查询,直到整个EIGRP网络所有路由器都到达不了目的地为止。如果有一个邻居能到达目的地就会回复Reply报文并停止这个查询在网络中蔓延。
3/4.Query/Reply(用于查询路由):
当Successor消失且无FS的话,组播Query报文,向所有邻居查询这条路由条目,如果邻居自己没有到达目的地的路由,会像它的邻居扩散开去查询,直到整个EIGRP网络所有路由器都到达不了目的地为止。如果有一个邻居能到达目的地就会单播回复Reply报文并停止这个查询在网络中蔓延。所有Query都得到Reply后,EIGRP重新计算路由,重置FD,选择Successor。如果所有邻居都到达不了目的地就回复一个度量为无穷大的报文。
虽说最坏情况下查询将蔓延到整个EIGRP网络,其实还是有办法限制查询范围的。比如汇总可以限制查询范围。假设边界路由器上汇总33.1.0.0/16,邻居向其发起33.1.1.0/24的查询,路由表查看路由表发现只有汇总路由,没有33.1.1.0/24这条路由就马上回复邻居,不会再扩散去询问别人了。
另一种限制查询范围的方式是EIGRP的根路由器stub,当把一个路由器配成stub,邻居就不会再向stub路由器发送任何查询目的地的Query了。
5.ACK(略)
概念介绍完后,介绍下基本配置:(配置IP地址略,可以参见静态路由)
基本配置命令:
配置好之后,我们先来看一下邻居关系:(如果不能建立邻居,可能是AS号不同,或K值不同,或认证失败)
邻居表看完后,看一下拓扑表:
最后看一下路由表:
路由表里[90/2195456]解释一下:前面90是EIGRP协议的AD值(汇总EIGRP的AD值为5,外部EIGRP的AD值为170),后面2323456是度量值。上面理论介绍时说过,度量是由5个参数计算得出,分别是带宽,延时,可靠性,负载,MTU(默认只用带宽,延时)。先确认当前度量的K值确实是带宽和延时:
度量的计算公式:10^7/路径的最小带宽)+延时/10]×256,带宽单位kbps,延时单位ms。再查看带宽和延时的值:
同样可以看R2和R3端口的信息,这里就不截图了。R2到R3的带宽比1544大,延时是1000,。度量:(10^7/1544 + (20000+1000)/10)*256 = (6476+2100)*256 = 2195456(K值是可以修改的R1(config-router)#metricweights 0 0 0 1 0 0,这样就表示度量值只考虑延时)
EIGRP汇总
上面的例子里一上来就no auto-summary关闭自动汇总,因为自动汇总会造成的麻烦比它带来的好处(缩小路由表)要大。在不连续子网内,用自动汇总常会发生错误地重复地汇总路由,导致ping不通。因此通常建议关闭自动汇总。如果真想要汇总,建议手动汇总,汇总总是在出接口上做:
EIGRP的汇总有一点和RIP不同,RIP是汇总全部,而EIGRP是汇总本地宣告的路由。
EIGRP负载均衡:
基本配置不在赘述(Cisco路由器的话,记得no ip cef以免影响负载均衡的效果)。从图中就能看出R1访问R2有两条路径:
两条路由的FD都是2195456,因此无法区分出优劣,将负载均衡。在R1上ping 23.1.1.2 source 11.1.1.1,在R2上打开debug看效果:
上面R1出发去往R2的两条路由由于度量值一样,所以是等价的负载均衡。EIGRP还支持非等价的负载均衡,通过改变variance值来实现。那Successor将和哪些路由进行非等价的负载均衡呢?和FS。非FS的路由不能进行非等价的负载均衡。例如R2的拓扑表:
为了实现非等价的负载均衡,需要让上面第二条路由成为FS,所以需要修改K值,R3上的show inter s0/1看到带宽是1544,时延20000,根据度量计算的公式,调整一下带宽和时延:
第二条路由成为FS后,在拓扑表中(非明细拓扑表)就可以看见这条路由了:
但第二条路由仍旧不会出现在R2的路由表中,要实现非等价的负载均衡,需要修改variance值,只要FS的FD<Successor的FD*variance值,FS就能被加入路由表内,和Successor一同进行负载均衡(因为Successor和FS的度量值不同,所以是非等价的负载均衡)。例子中variance需要改成5(2297856 < 460800*5):
R2上再同样ping 11.1.1.1,打开debug就可以看出前5个包从e1/0途径R3去往R1,第6个包从s0/0途径去R1,根据度量值的倍数分配数据包,实现了非等价的负载均衡。
EIGRP默认路由:
RIP中用default-information originate产生一条默认路由,EIGRP稍微麻烦点。
R3作为网络内部的边界路由器,R4作为外部路由器。先将R1,R2,R3配置EIGRP。在R3上配置一条静态默认路由去往外部R4:
R3因为有了一条通往R4的静态默认路由,因此可以ping通R4,但R1和R2无法访问外部网络的R4,因此需要R3上配置默认网络:
但这样R1和R2仍旧无法ping通R4,打开R1和R2的路由表查看,发现并没有学习到R3的这条默认路由。因为ip default-network指定的是主类网络34.0.0.0/8,但R3向R1和R2宣告的是34.1.1.0 0.0.0.255,且R3上取消了自动汇总,因此需要将R3改成自动汇总,或手动在内网接口e0/1上做汇总ip summary-address eigrp 10 34.0.0.0 255.0.0.0。这样R1和R2的路由表里就有了R3的默认路由,就能ping通外网R4了
EIGRP认证:
认证通不过不能加入邻居表,认证本身和其他协议的认证并无区别,可参照RIPv2
PS:
RIP里介绍过RIP里passive掉端口,该端口只收不发。EIGRP里同样可以passive掉端口,区别是EIGRP里passive掉后该端口不收不发。一旦passive后邻居就看不见该路由器了,但仍能宣告路由给邻居。如果连路由也不想宣告给邻居,可以直接no network
- EIGRP(含汇总,非等价负载均衡,默认等实验)
- 等价eigrp负载均衡
- 配置EIGRP等价负载均衡和非等价负…
- eigrp不等价负载均衡
- 基于EIGRP的不等价负载均衡
- eigrp的不等价负载均衡
- EIGRP负载均衡
- CCNP_route笔记5 EIGRP中使用offset-list设等价负载均衡
- EIGRP-如何验证EIGRP负载均衡?
- EIGRP的负载均衡完全总结
- ospf eigrp重分布和负载均衡
- 静态路由(静态汇总路由,静态默认路由,负载均衡,浮动静态路由)介绍
- EIGRP路由过滤、汇总、默认路由
- CentOS7,Ngnix+Tomcat负载均衡实验(Nginx负载均衡、Tomcat负载均衡、Nginx反向代理、Web负载均衡)
- 负载均衡汇总
- CCNP-EIGRP&帧中继、负载均衡、认证、stub区域
- nginx+tomcat 负载均衡实验
- 第一章:nginx负载均衡实验
- Objective-C 4 第一个类
- pyquery安装
- 中继器、集线器、网桥、交换机、路由器和网关在网络协议中工作的层次(计算机网络学习笔记)
- uLua实例
- hive指定多个字符作为列分隔符
- EIGRP(含汇总,非等价负载均衡,默认等实验)
- git创建版本库
- Ⅰ.17 如何创建和使用Verification Points
- linux查找目录下的所有文件中是否含有某个字符串
- 查看被占用端口号
- 高端婚礼的布置技巧 8个细节不能忽略
- Android Studio解决unspecified on project app resolves to an APK archive which is not supported
- C# Dictionary 简介
- 非上架AppStore的ipa分发方法