科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道路由交换 EIGRP路由协议简介

EIGRP路由协议简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  是Cisco的私有路由协议,它综合了距离矢量和链路状态2者的优点,它的特点包括

来源:chinaitlab 2011年4月16日

关键字: 路由交换 EIGRP

  • 评论
  • 分享微博
  • 分享邮件

  是Cisco的私有路由协议,它综合了距离矢量和链路状态2者的优点,它的特点包括

  快速收敛

  链路状态包(Link-State Packet,LSP)的转发是不依靠路由计算的,所以大型网络可以较为快速的进行收敛。它只宣告链路和链路状态,而不宣告路由,所以即使链路发生了变化,不会引起该链路的路由被宣告。但是链路状态路由协议使用的是Dijkstra算法,该算法比较复杂,并且较占CPU和内存资源和其他路由协议单独计算路由相比,链路状态路由协议采用种扩散计算(diffusingcomputations ),通过多个路由器并行的记性路由计算,这样就可以在无环路产生的情况下快速的收敛

  减少带宽占用

  不作周期性的更新,它只在路由的路径和度发生变化以后做部分更新。当路径信息改变以后,DUAL只发送那条路由信息改变了的更新,而不是发送整个路由表。和更新传输到一个区域内的所有路由器上的链路状态路由协议相比,DUAL只发送更新给需要该更新信息的路由器。 在WAN低速链路上,EIGRP可能会占用大量带宽,默认只占用链路带宽50%,之后发布的IOS允许使用命令ip bandwidth-percent eigrp来修改这一默认值

  支持多种网络层协议

  通过使用“协议相关模块”(即protocol-dependentmodule),可以支持IPX,ApplleTalk,IP,IPv6和NovellNetware等协议

  无缝连接数据链路层协议和拓扑结构

  不要求对OSI参考模型的层2协议做特别是配置。不像OSPF,OSPF对不同的层2协议要做不同配置,比如以太网和帧中继,EIGRP能够有效的工作在LAN和WAN中,而且EIGRP保证网络不会产生环路(loop-free);而且配置起来很简单;支持VLSM;它使用多播和单播,不使用广播,这样做节约了带宽;它使用和IGRP一样的度的算法,但是是32位长的;它可以做非等价的路径的负载平衡

  的四个组件

  可靠传输协议

  邻居的发现/恢复

  弥散更新算法

  的可靠传输协议

  负责EIGRP packet(下面有讲)的按顺序(可靠)的发送和接收,这个可靠的保障是通过Cisco私有的一个算法,reliable multicast实现的,使用组播地址224.0.0.10,每个邻居接收到这个可靠的组播包的时候就会以一个unicast作为确认按顺序的发送是通过packet里的2个序列号实现的,每个packet都包含发送方分配的1个序列号,发送方每发送1个packet,这个序列号就递增1.另外,发送方也会把最近从目标路由器接收到的packet的序列号放在这个要发送的packet里,在某些情况下,RTP也可以使用无需确认的不可靠的发送,并且使用这种不可靠发送的packet中不包含序列号。EIGRP第一次传输都采用组播形式,重传输都采用单播。

  计算方法

  选择一条主路由(最佳路由)和一条备份路由放在topology table(EIGRP到目的地支持最多6条链路)。它支持几种路由类型:内部,外部(非EIGRP)和汇总路由。EIGRP使用混合度

  的5个标准

  带宽

  的7次方除以源和目标之间最低的带宽乘以

  延迟

  接口的累积延迟乘以256,单位是10微秒

  可靠性

  根据keepalive而定的源和目的之间最不可靠的可靠度的值

  负载

  根据包速率和接口配置带宽而定的源和目的之间最不差的负载的值

  最大传输单元

  路径中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不参与EIGRP度的运算

  的计算

  度量值的计算公式为:256*{K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)+K5/(可靠性

  默认情况下,K1和K3是1,其他的K值都是

  所以通常情况下,度量值=256×(10^7/最小带宽+累积延时)

  通过配置权重(K值),可以修改EIGRP度量值计算方式。可以再EIGRP配置模式使用命令:Metric weight Tos K1 K2 K3 K4 K5 来修改K值,Tos 只有一个有效值0,否则将被忽略。

  要求两台路由器的K值必须相同才能成为邻居。另外,K2,K4,,K5最好不要设置,因为这些参数设置为非零之后,会导致计算度量值时会考虑借口的负载和可靠性,而负载和可靠性会随时间变化,这将导致EIGRP重新泛洪拓扑数据,还可能导致路由器不断地选择不同的路由,由此导致网络不稳定。

  使用多种类型的packet,这些packet通过IP头部信息里的协议号88来标识

  用来发现和恢复邻居,通过组播的方式发送,使用不可靠的发送

  不包含数据(data)的Hello包,使用unicast的方式,不可靠的发送

  传播路由更新信息,不定期的,通过可靠的方式发送(比如网络链路发生变化)。当只有一台路由器需要路由更新 时,update通过unicast的方式发送;当有多个路由器需要路由更新的时候,通过组播的方式发送

  查询) & Reply(应答

  是DUAL finite state machine用来管理扩散计算用的,查询包可以是组播或unicast;应答包是通过unicast的方式发送,并且方式都是可靠的

  请求

  最初是打算提供给路由服务器(server)使用的,但是从来没实现过

  的邻居发现/恢复协议

  的Update包是非周期性发送的

  包在一般的网络中(比如点到点,point-to-point)是每5秒组播1次(要随机减去1个很小的时间防止同步

  在多点(multipoint)X.25,帧中继(Frame Relay,FR)和ATM接口(比如ATM SVC)和ISDN PRI接口上,Hello包的发送间隔是

  秒

  在所有的情况中,Hello包是不需要确认的。可以在接口配置模式下修改该接口的Hello包默认的发送间隔,命令为

  当一个路由器收到从邻居发来的Hello包的时候,这个Hello包包含了一个holdown time,这个holdown time告诉这个路由器等待后续Hello包的最大时间。如果在超出这个holdown time之前没有收到后续Hello包,那么这个邻居就会被宣告为不可达,并通知DUAL这个邻居已丢失。默认hold time是3倍于Hello包发送间隔的, 更高链路 -- 默认Hello间隔和保持时间是5s和15s T1或低于T1链路 -- 分别是60s和180s 可以在接口配置模式下修改这个默认的holdown time, 命令为

  邻居信息都记录在邻居表(neighbor table)中,使用show ip eigrp neighbors命令查看IP EIGRP的邻居

  对环路的解决

  如果EIGRP不考虑环路的问题,那么当右图中连接路由3和4的线路断开后会因到不了network a而使路由1-3相互查询怎么去network a而产生环路。因此EIGRP对于环路的防止考虑两方面:

  水平分割

  永远不会在同一个接口下通告一条该接口学到的路由信息

  路由的毒性逆转

  接收路由信息的接口,再从该接口通告出刚才学到的路由为不可达

  触发条件:

  当两台路由器进行邻居初始化时,他们会互相以最大的metric值通告回刚才学到的路由信息(路由中毒

  当拓扑发生改变时,会临时关闭水平分割和毒性逆转,重新学习拓扑

  发送查询请求时,会引起水平分割,比如当一个路由器查询一条未知网段去向时,他会想每一个邻居发送查询,处于该网段的继承者(successor)会返回查询给该路由器,而该路由器会反馈一个查询结果给其他邻居,不会再次告诉那个继承者要走这个网段应该要经过自己

  的路由重分发

  在一些大型网络中,往往存在不同的自治区域需要互联的情况

  重分发

  。b比如在右图的情况下,AS号为1000的要与AS号为2000的两个EIGRP相互通信,只需要在中间路由器配置重分发,注意配置重分发也要避免路由环路。

  示例:

  在AS=2000内定义邻居AS=1000去AS=2000的网段

  在AS=1000内定义邻居AS=2000去AS=1000的网段

  当AS=1000的网段被标上(tag)1000的标记,当AS=2000重分发进AS=1000时,被标上1000的路由信息将被拒绝,以防产生环路;反之在AS=2000上亦然。

  现在路由1和3之间就能互访了。

  的术语定义

  弥散更新算法简介

  (弥散更新算法可以保证路由100%无环路loopfree)为了能够让DUAL正确的操作,低层协议必须满足以下几个条件

  一个节点要在有限的时间里检测到新邻居的存在或和一个邻居的连接的丢失

  在链路上传输的所有信息必须在有限的时间里按正确的顺序收到

  所有的消息,包括链路cost的更改,链路故障,和新邻居的发现,都应该是在有限时间里,一个一个的依次处理Cisco的EIGRP使用邻居的发现/恢复和RTP来确保上述前提条件

  邻接

  在刚启动的时候,路由器使用Hello包来发现邻居并标识自己用于邻居的识别。当邻居被发现以后,EIGRP会在它们之间形成一种邻接关系。邻接是指在这2个邻居之间形成一条交换路由信息的虚链路(virtual link)。当邻接关系形成以后,它们之间就可以相互发送路由update,这些update包括路由器它所知道的所有的链路及其metric.对于每个路由,路由器都会基于它邻居宣告的距离(distance)和到达那个邻居的链路的cost来计算出一个距离

  可行距离

  到达每个目标网络的最小的metric将作为那个目标网络的FD.比如,路由器可能有3条到达网络172.16.5.0的路由,metric分别为380672,12381440和660868,那么380672就成了

  可行条件

  邻居宣告到达目标网络的的距离小于本地路由器到达目标网络的

  可行后继路由

  如果一个邻居宣告到达目标网络的距离满足FC,那么这个邻居就成为FS.比如,路由器到达目标网络172.16.5.0的FD为380672,而他邻居所宣告到达目标网络的距离为355072,这个邻居路由器满足FC,它就成为FS;如果邻居路由器宣告到达目标网络的距离为 380928,即不满足FC,那么这个邻居路由器就不能成为FS,FS和FC是避免环路的核心技术,FS也是downstream router(下游路由器),因为从FS到达目标网络的距离比本地路由器到达目标网络的FD要小,存在一个或多个FS的目标网络被记录在拓扑表中。

  拓扑表

  拓扑表包括以下内容

  目标网络的

  所有的

  每一个FS所宣告的到达目标网络的距离

  本地路由器计算出的,经过每个FS到达目标网络的距离,即基于FS所宣告到达目标网络的距离和本地路由器到达那个FS的链路的

  发现FS的网络相连的接口

  邻居表

  每个路由器的RAM中都保存有关于邻居的地址和接口信息的表。

  后继路由

  又称成功者(Secessful),是到达远程网络的最佳路由。是EIGRP用于转发业务量的路由,它被存储在路由表中。

  路由协议优缺点

  (1)EIGRP路由协议主要优点

  精确路由计算和多路由支持。EIGRP协议继承了IGRP协议的最大的优点是矢量路由权。EIGRP协议在路由计算中要对网络带宽、网络时延、信道占用率和信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。

  较少带宽占用。使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,如果没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送路由报文而影响正常数据业务的事情发生。

  快速收敛。路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。

  认证。为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全。

  路由聚合。EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。

  实现负载分担。去往同一目的的路由表项,可根据接口的速率、连接质量和可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。

  配置简单。使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP 路由进程,然后再使用network 命令使能网络范围内的接口即可。

  (2)EIGRP路由协议主要缺点

  没有区域概念。EIGRP没有区域的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法(RIP协议就是使用这种算法)的局限所在。

  定时发送HELLO报文。运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以,一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。

  基于分布式的DUAL算法。EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于活动状态(这种路由被称为活动路由栈),并且,如果在活动路由的这次DUAL计算过程中,出现到该路由的后继(successor)的测量发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种特殊情况下,EIGRP还有不理想的情况。

  是Cisco公司的私有协议。Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。如果要支持EIGRP协议需向Cisco公司购买相应版权,并且Cisco公司修改该协议没有义务通知任何其他厂家和使用该协议的用户。而OSPF是开放的协议,是IETF组织公布的标准。世界上主要的网络设备厂商都支持该协议,所以它的互操作性和可靠性由于公开而得到保障,并且在众多的厂商支持下,该协议也会不断走向更加完善。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章