EIGRP简介
EIGRP是由距离矢量和链路状态两种路由协议混合,因此可以像距离矢量协议那样,从它的相邻路由器那里得到更新信息;也像链路状态协议那样,保存着一个拓扑表,然后通过自己的DUAL算法选择一个最优的无环路径
EIGRP的优点:
- 100%无环:如果整个网络包含在一个自制系统中,EIGRP使用DUAL能保证一张100%无环路由转发表
- 快速收敛:EIGRP使用DUAL(),通过备份路由而实现,当S不可用时,快速切换到FS上从而达到快速收敛的目的
- 使用多播、单播:使用组播(224.0.0.10)或单播进行路由更新,节省链路带宽;
- 增大了网络规模:RIP最大只能是15跳;而EIGRP最大可支持255跳,IGRP为224跳,他们两个默认都为100跳
- 支持三种网络层协议:EIGRP支持IP、IPX、Apple Talk三种网络层协议,这也就增大了EIGRP的使用范围
- 支持VLSM和非连续的网络:RIP和IGRP则不支持
- 减少了带宽的消耗、更好地利用带宽:EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它使用 触发式更新和增量更新,仅当某个目的网络的路由状态改变或路由的度量发生变化时,才向邻居发送路由 更新,因此其更新路由所需要的带宽比RIP和EIGRP小
EIGRP详解
EIGRP Databases(EIGRP数据库)存在三张表如下:
- 邻居表neighbor table:EIGRP路由器会在启动后发送HELLO包来寻找和维持邻居关系
- 拓扑表topology table:EIGRP路由器会把从邻居那里收到的路由路径信息加载到自己的拓扑表中,形成对全网络拓扑的认知
- 路由表routing table:路由器依靠它来进行数据的转发处理,该表中的内容是通过运行算法通过对topology table进行计算得出的一条或多条successor加入路由表
以路由器R4为例介绍Neighbor Table、Topology Table、Routing Table
- R4的Neighbor Table中的每个邻居都转发一份IP路由表的备份给R4
- R4把从邻居处收到的路由表存储在自己的Topology Table中,如图,R4分别收到R2和R3到网络172.16.1.0/24通告,通告距离为110和160,R4收到后加上自己到R2和R3的度量后就得到了计算距离210和260
- R4检查Topology Table,然后选择出一条到达目的地的最佳路由,确定最佳的Successor routers为R2,然后把它放在Routing Table中
EIGRP路由维护过程:
- 建立相邻关系:运行EIGRP的路由器自开始运行起,就不断地用多播地址224.0.0.10从参与EIGRP的各个接口向外发送Hello报文。当路由器之间彼此都收到Hello报文后,这时双方建立起邻居关系
- 发现网络拓扑,选择最短路由:当路由器通过Hello报文动态地发现了一个新邻居时,也获得了来自这个新邻居update通告的路由信息
- 路由查询、更新:当路由信息没有变化时,EIGRP邻居间只是通过发送Hello报文,来维持邻居关系,以减少对网络带宽的占用。在发现一个邻居丢失、一条链路不可用时,EIGRP立即会从拓扑表中启用备选路由器。如果拓扑表中没有FS(可行后继 Feasible Successor),EIGRP重新计算路由
路由在EIGRP中有5种包类型:
- hello包:EIGRP路由器使用HELLO包来发现邻居和keep-alive
- update包:通常采用多播(224.0.0.10)和单播来发送,发生在网络状态改变,拓扑变化,路由器加入和状态变化
- query包:查询包----询问包,即路由器刚启动时或者还未计算出FD(可行距离 Feasible Distance)时,它向邻居发送该包来查询是否有到达目的地的FD,通常用多播地址
- reply包:query包的回应包,以单播方式回应
- ACK包:对一些特殊包确认,是单播方式发送。Update,query,reply三种包都需要确认,而hello包不需要
相关资料
EIGRP数据包:http://nanjingfm.blog.51cto.com/2121842/1192041