EIGRP理论
简介
EIGRP是Cisco私有协议,它是由距离矢量和链路状态两种路由协议混合而成的一种协议。即像距离矢量协议那样,EIGRP从它的相邻路由器那里得到更新信息;也像链路状态协议那样,保存着一个拓扑表,然后通过自己的DUAL算法选择一个最优的无环路径。EIGRP不像传统的距离矢量协议,EIGRP有着很快的收敛时间,而且不用发送定期的路由更新;也不像链路状态协议,EIGRP并不知道整个网络是什么样的,它只能靠邻居公布的信息。EIGRP使用与IGRP相同的路由算法DUAL(扩散更新算法),DUAL机制是EIGRP的核心,通过它来实现无环路径。内部EIGRP管理距离为90,外部EIGRP管理距离为170,支持等价和非等价负载均衡。IP数据包中,EIGRP的协议字段为88。
名词解释:
度量值:EIGRP使用带宽(bandwidth)、延迟(delay)、可靠性(reliability)、负载(loading)、最大传输单元
可行距离(Feasible Distance):到达一个目的地的最小度量值。
通告距离(Advertise Distance):相邻路由器所通告的它自己到达某个目的地的最小度量值。
可行条件(Feasible Condition):通告距离(AD)小于可行距离的条件即AD
EIGRP 后继(Successor):一个直接连接的邻居路由器,它满足FC,通过它具有到达目的地的最小度量值的路
可行后继(Feasible Successor):一个邻居路由器,它满足FC,具有到目的地第二低度量值的路由器。当主
活跃状态/主动路由(active state):是一种正在搜索FS的状态,当路由器丢失了S,并且没有FS可用时,该
被动状态/被动路由(passive state):是一种目前有正确的路由到达目的地的状态,当路由器失去了S而有一
邻居关系:EIGRP通过hello包来建立邻居关系,在低速链路上hello包的发送间隔为60秒、高速链路上为5秒。
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那样,每隔一段时间就交换一次路由信息,它使用
组播MAC地址是:01-00-5E-00-00-0A。
说明:EIGRP是Cisco专有协议,当Cisco设备和其他厂商的设备互连时,不能使用EIGRP协议。
EIGRP形成邻居的条件:
1.AS号相同;
2.度量计算的K值相同;
3.认证相同(EIGRP只支持密文认证);
4.对端通告的Neighbor ID必须在本端的直连网段中存在。
注意:路由协议都是通过端口的Primary IP传输数据流并形成Neighbor ID(代表一个接口)。EIGRP路由器在接收到Hello后会用自己的Primary IP的子网掩码与Hello中的Neighbor ID进行与运算,得出网络地址后与自己路由表中的直连网段进行匹配,有则认为对方是邻居,并将其放入邻居表中,没有就会以不在同一子网为由来拒绝形成邻居。
说明:IGRP和EIGRP在相同的自制系统中可以自动再发布路由信息,但是也可以关闭自动再发布路由信息。
EIGRP详解
EIGRP的三张表:Neighbor Table、Topology Table、Routing Table
初始运行EIGRP的路由器都要经历发现邻居、了解网络及选择路由的过程,在这个过程中同时建立三张独立的表格:Neighbor Table、Topology Table、Routing Table。其中Neighbor Table保存了和路由器建立了邻居关系的且直连的路由器;Topology Table包含路由器学习到的到达目的地的所有路由条目;Routing Table则是最佳路径的路由表。
以路由器R4为例介绍Neighbor Table、Topology Table、Routing Table
1、R4的Neighbor Table中的每个邻居都转发一份IP路由表的备份给R4;
2、R4把从邻居处收到的路由表存储在自己的Topology Table中,如图,R4分别收到R2和R3到网络172.16.1.0/24
3、R4检查Topology Table,然后选择出一条到达目的地的最佳路由,确定最佳的Successor routers为R2,然后
EIGRP的Routing Table:
D EX:从外面发布进来的路由。
Address:邻居路由器的地址。
Interface:本地到邻居的接口。
Hold time:等待米有从邻居处接受到任何数据报文的最大时间,当收到新的报文后Hold time复位。
SRTT(Smooth round-trip time)顺利往返时间:一个EIGRP报文发送给邻居然后到本地路由器从邻居处接收
RTO(Retransmission timeout)重传超时:重新传输报文之前等待确认报文的时间,单位是ms。
Q Cnt(Queue count)队列计数:等待发送的EIGRP报文数,如果这个数值持续高于0,说明网络发生了拥塞。
EIGRP的Topology Table:
A:active,表示当前网络不可用,正处于发送查询状态。
U:update,表示网络处于等待update包的确认状态。
Q:query,表示网络处于等待query包的确认状态。
SIA:stuck-in-active,表示网络持续处于active状态,说明EIGRP网络的收敛发生了问题。
EIGRP路由的Traffic Table(接收和发送信息表):
EIGRP使用可靠传输协议RTP(Reliable Transport Protocl),RTP确保每一个EIGRP分组都必须得到确认,只有前一个分组得到确认之后才会发送下一个分组,RTP的重传机制使得发送给邻居可靠的报文在RTO(Retransmit Time Out)超出以后,还没得到确认的话,RTP会将分组重传(重传为单播,目的是为了不影响那些已经正常确认的路由),最多重传16次,如果16次之后还没有确认则重置邻居关系,直到邻居关系保持时间(hold time)超出,宣布邻居不可达。接收者需要对update、reply和query这些有序号的报文进行确认,不需要可靠性的报文(如Hello和ACK)则没有必要确认。
Hello:以多播的方式发送,用于发现邻居路由器,并维持邻居关系。
更新(update):当路由器收到某个邻居路由器的第一个Hello报文时,以单点传送方式回送一个包含它所知道的
查询(query):当一条链路失效,路由器重新进行路由计算。但在拓扑表中没有可行的后继路由时,路由器就以
答复(reply):以单点的方式回传给查询方,对查询数据报文进行应答。
确认(ACK):以单点的方式传送,用来确认update、query、reply数据报文,以确保传输的可靠性。
说明:OSPF要求邻居必须具有相同的Hello和Down的判定间隔才能进行通信,而EIGRP没有这种限制。在实际应用中,将EIGRP的保持时间设为Hello间隔的3倍,而在OSPF中将保持时间设为Hello间隔的4倍。
EIGRP路由维护过程:
1.建立相邻关系:运行EIGRP的路由器自开始运行起,就不断地用多播地址224.0.0.10从参与EIGRP的各个接口
2.发现网络拓扑,选择最短路由:当路由器通过Hello报文动态地发现了一个新邻居时,也获得了来自这个新
3.路由查询、更新:当路由信息没有变化时,EIGRP邻居间只是通过发送Hello报文,来维持邻居关系,以减少