当前位置:文档之家› EIGRP协议

EIGRP协议

EIGRPEIGRP简单实例EIGRP:Enhanced Interior Gateway Routing Protocol 即增强网关内部路由线路协议。

也翻译为加强型内部网关路由协议。

EIGRP是Cisco公司的私有协议。

Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。

EIGRP结合了链路状态和距离矢量型路由选择协议的Cisco专用协议,采用弥散修正算法(DUAL)来实现快速收敛,可以不发送定期的路由更新信息以减少带宽的占用,支持Appletalk、IP、Novell和NetWare等多种网络层协议。

EIGRP路由协议简介是Cisco的私有路由协议,它综合了距离矢量和链路状态2者的优点,它的特点包括:1.快速收敛链路状态包(Link-State Packet,LSP)的转发是不依靠路由计算的,所以大型网络可以较为快速的进行收敛.它只宣告链路和链路状态,而不宣告路由,所以即使链路发生了变化,不会引起该链路的路由被宣告.但是链路状态路由协议使用的是Dijkstra算法,该算法比较复杂,并且较占CPU和内存资源和其他路由协议单独计算路由相比,链路状态路由协议采用种扩散计算(diffusingcomputations ),通过多个路由器并行的记性路由计算,这样就可以在无环路产生的情况下快速的收敛.2.减少带宽占用EIGRP不作周期性的更新,它只在路由的路径和度发生变化以后做部分更新.当路径信息改变以后,DUAL只发送那条路由信息改变了的更新,而不是发送整个路由表.和更新传输到一个区域内的所有路由器上的链路状态路由协议相比,DUAL只发送更新给需要该更新信息的路由器。

在WAN低速链路上,EIGRP可能会占用大量带宽,默认只占用链路带宽50%,之后发布的IOS允许使用命令ip bandwidth-percent eigrp来修改这一默认值 .3.支持多种网络层协议EIGRP通过使用“协议相关模块”(即protocol-dependentmodule<PDM>),可以支持IPX,ApplleTalk,IP,IPv6和NovellNetware等协议.4.无缝连接数据链路层协议和拓扑结构EIGRP不要求对OSI参考模型的层2协议做特别的配置.不像OSPF,OSPF对不同的层2协议要做不同配置,比如以太网和帧中继,EIGRP能够有效的工作在LAN和WAN中,而且EIGRP保证网络不会产生环路(loop-free);而且配置起来很简单;支持VLSM;它使用多播和单播,不使用广播,这样做节约了带宽;它使用和IGRP 一样的度的算法,但是是32位长的;它可以做非等价的路径的负载平衡.编辑本段EIGRP的四个组件1.Protocol-Dependent Module(PDM)2.可靠传输协议(Reliable Transport Protocol,RTP)3.邻居的发现/恢复4.弥散更新算法(Diffusing Update Algorithm,DUAL)编辑本段RTP-EIGRP的可靠传输协议RTP负责EIGRP packet(下面有讲)的按顺序(可靠)的发送和接收,这个可靠的保障是通过Cisco私有的一个算法,reliable multicast实现的,使用组播地址224.0.0.10,每个邻居接收到这个可靠的组播包的时候就会以一个unicast作为确认按顺序的发送是通过packet里的2个序列号实现的,每个packet都包含发送方分配的1个序列号,发送方每发送1个packet,这个序列号就递增1.另外,发送方也会把最近从目标路由器接收到的packet的序列号放在这个要发送的packet里,在某些情况下,RTP也可以使用无需确认的不可靠的发送,并且使用这种不可靠发送的packet 中不包含序列号.EIGRP第一次传输都采用组播形式,重传输都采用单播。

编辑本段EIGRP-Metric计算方法EIGRP选择一条主路由(最佳路由)和一条备份路由放在topology table(EIGRP到目的地支持最多6条链路).它支持几种路由类型:内部,外部(非EIGRP)和汇总路由.EIGRP使用混合度.i.EIGRP Metric的5个标准1.带宽10的7次方除以源和目标之间最低的带宽乘以2562.延迟(delay)接口的累积延迟乘以256,单位是10微秒3.可靠性(reliability)根据keepalive而定的源和目的之间最不可靠的可靠度的值4.负载(loading)根据包速率和接口配置带宽而定的源和目的之间最不差的负载的值5.最大传输单元(MTU)路径中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不参与EIGRP度的运算ii. EIGRP Metric的计算EIGRP度量值的计算公式为:256*{K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)+K5/(可靠性+K4)} 默认情况下,K1和K3是1,其他的K值都是0.所以通常情况下,度量值=256×(10^7/最小带宽+累积延时)通过配置权重(K值),可以修改EIGRP度量值计算方式。

可以再EIGRP配置模式使用命令:Metric weight Tos K1 K2 K3 K4 K5 来修改K值,Tos 只有一个有效值0,否则将被忽略。

EIGRP 要求两台路由器的K值必须相同才能成为邻居。

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

[1]编辑本段EIGRP PacketEIGRP使用多种类型的packet,这些packet通过IP头部信息里的协议号88来标识:1. Hello packet用来发现和恢复邻居,通过组播的方式发送,使用不可靠的发送.2. ACK(acknowledgement) packet不包含数据(data)的Hello包,使用unicast的方式,不可靠的发送.3. Update packet传播路由更新信息,不定期的,通过可靠的方式发送(比如网络链路发生变化).当只有一台路由器需要路由更新时,update 通过unicast的方式发送;当有多个路由器需要路由更新的时候,通过组播的方式发送.4. Query(查询) & Reply(应答) packet是DUAL finite state machine用来管理扩散计算用的,查询包可以是组播或unicast;应答包是通过unicast的方式发送,并且方式都是可靠的.5. Request(请求) packet最初是打算提供给路由服务器(server)使用的,但是从来没实现过.编辑本段EIGRP的邻居发现/恢复协议EIGRP的Update包是非周期性发送的,1.Hello包在一般的网络中(比如点到点,point-to-point)是每5秒组播1次(要随机减去1个很小的时间防止同步);2.在多点(multipoint)X.25,帧中继(Frame Relay,FR)和ATM 接口(比如ATM SVC)和ISDN PRI接口上,Hello包的发送间隔是60秒.在所有的情况中,Hello包是不需要确认的.可以在接口配置模式下修改该接口的Hello包默认的发送间隔,命令为ip hello-interval eigrp当一个路由器收到从邻居发来的Hello包的时候,这个Hello 包包含了一个holdown time,这个holdown time告诉这个路由器等待后续Hello包的最大时间.如果在超出这个holdown time之前没有收到后续Hello包,那么这个邻居就会被宣告为不可达,并通知DUAL这个邻居已丢失.默认hold time是3倍于Hello包发送间隔的, 更高链路 -- 默认Hello间隔和保持时间是5s和15s T1或低于T1链路 -- 分别是60s和180s可以在接口配置模式下修改这个默认的holdown time, 命令为ip hold-time eigrp.EIGRP邻居信息都记录在邻居表(neighbor table)中,使用show ip eigrp neighbors命令查看IP EIGRP的邻居.编辑本段EIGRP对环路的解决EIGRP LOOP[2]如果EIGRP不考虑环路的问题,那么当右图中连接路由3和4的线路断开后会因到不了network a而使路由1-3相互查询怎么去network a而产生环路。

因此EIGRP对于环路的防止考虑两方面:1.水平分割(Split Horizon)永远不会在同一个接口下通告一条该接口学到的路由信息2.路由的毒性逆转(Poison reverse)接收路由信息的接口,再从该接口通告出刚才学到的路由为不可达触发条件:当两台路由器进行邻居初始化时,他们会互相以最大的metric值通告回刚才学到的路由信息(路由中毒)当拓扑发生改变时,会临时关闭水平分割和毒性逆转,重新学习拓扑发送查询请求时,会引起水平分割,比如当一个路由器查询一条未知网段去向时,他会想每一个邻居发送查询,处于该网段的继承者(successor)会返回查询给该路由器,而该路由器会反馈一个查询结果给其他邻居,不会再次告诉那个继承者要走这个网段应该要经过自己编辑本段EIGRP的路由重分发在一些大型网络中,往往存在不同的自治区域需要互联的情况EIGRP重分发。

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

示例:Router Onerouter eigrp 2000 network 172.16.1.0 0.0.0.255Router Tworouter eigrp 2000 redistribute eigrp 1000 route-map to-eigrp2000network 172.16.1.0 0.0.0.255 --在AS=2000内定义邻居AS=1000去AS=2000的网段!router eigrp 1000redistribute eigrp 2000 route-map to-eigrp1000 --在AS=1000内定义邻居AS=2000去AS=1000的网段network 10.1.0.0 0.0.255.255route-map to-eigrp1000 deny 10match tag 1000!route-map to-eigrp1000 permit 20set tag 2000!route-map to-eigrp2000 deny 10match tag 2000!route-map to-eigrp2000 permit 20set tag 1000--当AS=1000的网段被标上(tag)1000的标记,当AS=2000重分发进AS=1000时,被标上1000的路由信息将被拒绝,以防产生环路;反之在AS=2000上亦然。

相关主题