《深入理解eigrp》doc版.doc_第1页
《深入理解eigrp》doc版.doc_第2页
《深入理解eigrp》doc版.doc_第3页
《深入理解eigrp》doc版.doc_第4页
《深入理解eigrp》doc版.doc_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录Table of Contents 1EIGRP协议简介81.1EIGRP协议特性简介81.2EIGRP协议的运行机制简介92EIGRP的多进程113报文格式123.1报文格式描述123.2EIGRP报文头123.3EIGRP的TLV基本结构133.4Parameter TLV143.5Authentication TLV143.6Sequense TLV153.7Software Version TLV163.8Next Multicast Seq TLV163.9IP Request TLV163.10IP Metric TLV173.11IP Exterior TLV184邻居的发现和维护194.1发送Hello报文194.2邻居的发现194.3邻居建立的握手过程204.4邻居的删除235EIGRP报文的MD5认证246拓扑表的维护256.1拓扑表的结构256.2EIGRP的Metric计算266.3FD(Feasible Distance)、RD(Report Distance)以及可靠后继条件(Feasible Condition)276.4拓扑表的变化将触发状态机287DUAL算法和DUAL状态机287.1D-V算法和Metric计算287.2触发更新、部分更新机制297.3可靠后继条件(FC)297.4可靠后继条件中必须判断最优后继307.5使用查询应答机制进行DUAL计算317.5.1被动态(Passive)和主动态(Active)317.5.2DUAL算法的启动327.5.3查询(Query)327.5.4应答(Reply)327.5.5收敛327.6DUAL状态机描述357.6.1DUAL状态机的状态367.6.2DUAL状态机的状态转换377.7Stuck In Active(SIA)功能397.8DUAL算法的性能408报文发送和可靠传输408.1单播报文和多播报文418.2报文发送策略过滤418.3序号确认428.4超时重传428.5水平分割(Horizon Split)438.6流控(Flow Control)438.7EIGRP对链路带宽的限制449引入路由4410路由聚合4510.1自动聚合4610.2手工聚合4711EIGRP的负载分担4711.1等价负载分担4711.2非等价负载分担4812EIGRP命令列表4913EIGRP的新进展5413.1EIGRP Stub5413.2在PE-CE之间运行EIGRP5513.3通过RouterID来减少邻居数量5513.4EIGRP NSF5613.5三次握手过程的改进5613.6EIGRP Fast Hellos5614EIGRP vs OSPF5614.1OSPF的缺点 vs EIGRP优点5614.2OSPF的优点 vs EIGRP缺点5715相关参考资料58表目录 List of Tables表1 缩略语清单7表2 EIGRP报文类型13表3 EIGRP TLV类型14表4 EIGRP接口默认带宽和延时27表5 DUAL状态机状态转换表39表6 Ack报文和一般Hello报文的比较42表7 EIGRP配置命令表54图目录 List of Figures图1 关于可靠后继的说明10图2 同一链路上可以运行多个进程11图3 不同进程之间不可建立邻居12图4 EIGRP报文头结构12图5 EIGRP的TLV结构13图6 TLV结构-Parameter TLV14图7 TLV结构-Authentication TLV15图8 TLV结构-Sequense TLV15图9 TLV结构-Software Version TLV16图10 TLV结构-Next Multicast Se TLV16图11 TLV结构-IP Request TLV17图12 TLV结构-IP Metric TLV17图13 TLV结构-IP Exterior TLV18图14 三次握手示意图(1)20图15 三次握手示意图(2)21图16 在一方没有准备好的情况下的三次握手示意图22图17 Cisco的一种不严格的三次握手过程23图18 MD5 计算方式示意25图19 EIGRP Metric计算示意图26图20 可靠后继条件中必须判断最优后继的示意图31图21 DUAL示意-初始情况33图22 DUAL示意-假定一“CA链路中断”33图23 DUAL示意-假定二“BA链路中断”34图24 DUAL示意-假定三“AN链路中断”34图25 DUAL状态机36图26 DUAL示意-“AN链路中断”在水平分割时的处理43图27 自动聚合示意46 第68页,共68页Page 68 , Total68 Error! Reference source not found.关键词Key words:EIGRP DUAL 动态路由协议 D-V算法摘 要Abstract:EIGRP是Cisco发明的一个私有路由协议,由IGRP发展而来,但是算法做了很大的改动。EIGRP和IGRP、RIP一样是一个采用D-V算法的动态路由协议,在收敛速度、占用网络带宽和系统资源等方面有了很大的改进,具有收敛快、无环路由计算、可以应用于大规模网络的优点。本文深入描述了EIGRP协议机制细节。缩略语清单List of abbreviations:Abbreviations缩略语Full spelling 英文全名Chinese explanation 中文解释EIGRPEnhanced Interior Gateway Routing Protocol增强型内部网关路由协议IGRPInterior Gateway Routing Protocol内部网关路由协议RIPRouting Information Protocol路由信息协议OSPFOpen Shortest Path First开放最短路径优先协议BGPBorder Gateway Protocol边界网关协议DUALDiffused Update Algorithm散播更新算法FSMFinity State Machine有限状态自动机D-V算法Distance-Vector Algorithm距离-矢量算法TLVType-Length-Value“类型-长度-值”三元组MD5Message Digest 5信息摘要算法CRConditional Receive条件接收CD路由Candidate Default Route候选缺省路由FSFeasible Successor可靠后继FCFeasible Condition可靠后继条件FDFeasible Distance可靠距离RDReport Distance上报距离DICDistance Increase Condition距离增加条件CSCCurrent Successor Condition当前后继条件SNCSource Node Condition源节点条件SIAStuck In Active滞留在Active状态RTPReliable Transmit Protocol可靠传输协议表1 缩略语清单1 EIGRP协议简介EIGRP(Enhanced Interior Gateway Routing Protocol),即增强型内部网关路由协议。它是Cisco发明的一种动态路由协议,由IGRP协议发展而来,号称是增强型的IGRP,但实际上除了Metric计算方式和IGRP类似以外,其他方面已经几乎看不到IGRP的影子。EIGRP的算法做了很大的改动,虽然和IGRP、RIP一样是一个采用D-V算法的动态路由协议,但是在收敛速度、占用网络带宽和系统资源等方面有了很大的改进,具有收敛快、无环路由计算、可以应用于较大规模网络的优点。1.1 EIGRP协议特性简介1、多进程机制。一台路由器上可以运行多个EIGRP协议的进程。各个进程之间用as号来区分。不同进程之间互不干扰,路由信息可以互相引入。和OSPF的多进程不一样,EIGRP的报文中携带有进程号,所以甚至可以在同一链路上运行EIGRP的多个进程。2、使用Hello报文建立并维护邻居关系。EIGRP的邻居机制和大部分路由协议类似,邻居建立后将互相交换路由信息。当网络上某台路由器失效时,其他路由器可以快速察觉并响应变化。3、触发更新和部分更新。仅在路由信息发生变化时,邻居路由器之间才进行路由信息的交换,并且只交换发生了变化的路由信息,这样可以占用较小的网络带宽。4、适应较大范围的网络。 EIGRP的路由度量距离(metric)是根据网络延时、带宽、有效带宽等参数计算出来,是一个32bit的数。这样EIGRP可以较为准确地反映网络链路的情况,metric的取值范围大也可以使EIGRP适应大范围的网络。EIGRP比RIP有了广阔得多的适应范围,但是一般来说也不应该超过几十台的规模,否则将引起效率问题。5、快速收敛、无环路的DUAL计算。对收到的路由信息使用一种称为DUAL的算法进行处理,生成到达各个目标网络的最短路由信息。EIGRP的路由计算仅会波及到必要的路由和必要的路由器,而不会扩散到全网。DUAL算法的机制可以保证生成的路由是没有环路的,它的收敛时间也比较好,优于传统的D-V协议。6、路由聚合。使用路由聚合以后,对于聚合范围内的多条路由信息只向外发送一条路由信息,这样可以减少占用的网络带宽,也减少了对处理器和内存资源的使用。EIGRP既支持自动聚合,又支持任意长度掩码的手工聚合。7、路由引入。可以引入静态路由和其他路由协议(如RIP、OSPF)发现的路由。还可以引入其他EIGRP进程报告的路由。在引入IGRP和EIGRP的路由时,直接使用IGRP和EIGRP路由的度量距离metric。8、路由策略。在接收、引入、发布路由时,EIGRP支持使用路由策略对路由进行过滤。9、多种网络协议支持。支持IPv4、IPX、AppleTalk这三种网络层协议。10、支持不等价负载分担。EIGRP是目前唯一支持不等价负载分担的协议,即支持不同metric路由之间的负载平衡。1.2 EIGRP协议的运行机制简介EIGRP周期性的使用组播在各个接口上发送一种低开销的Hello报文。收到Hello报文的路由器会把这个路由器加入到自己的“邻居表”中,于是这两个路由器会开始进行路由信息交换。以后每次收到Hello报文,路由器则认为对端路由器是“活着的”,而且可以与之交换信息。当连续一段时间没有收到对端路由器的Hello报文,那么就会认为对端路由器已经失效,将之从邻居表中删除,其通告所有的路由都随之变成不可达。在两台已经建立了邻居关系的路由器第一次交换路由时,它们将将交换所有的路由信息;但是在这之后,只有当网络结构或者路由发生了变化时,才会向外更新变化了的那一部分路由。EIGRP并不象RIP一样,EIGRP没有定期更新路由的机制。EIGRP将所有的收到的路由信息存放在“拓扑表”中,包括路由的目的地址、掩码、下一跳、度量距离(Metric)等信息。EIGRP按照DUAL算法从拓扑表中挑选出最佳的、没有环路的路由,加入到路由表中。DUAL算法(Diffusing Update Algorithm),散播更新算法,是EIGRP核心内容,也正是DUAL算法保证了EIGRP的路由计算是没有环路的。DUAL算法使用一个有限状态自动机(FSM)来描述EIGRP的路由计算过程,这个有限状态机被称为“DUAL状态机”,有限状态机的机制保证了DUAL算法可以收敛。在后面的描述中提到DUAL这个缩写时,根据上下文,可能表示DUAL状态机,也可能表示DUAL算法。DUAL算法是一种D-V算法。D-V算法,即距离-矢量算法,它的基本思想是:要找一台路由器到目标网络的距离,那么把它到邻居的距离和邻居到目标网络的距离相加,得到经由某个邻居到目标网络的距离,然后对所有的邻居进行计算并从中取最小值,就得到了路由器到目标网络的最短距离。所有采用D-V算法的路由协议都必须考虑如何避免环路的生成。所谓“距离”,各个动态路由协议的定义是不一致的,例如RIP的定义是到目标网络所经过的路由器的数目“跳数”。EIGRP针对每条网络路径,根据传输延时、链路带宽、有效带宽等参数计算出一个的综合度量距离(Metric),用它来衡量各条路由的优劣。在后文中,提到“距离”这个词,往往指的是综合度量距离Metric。就路由器A而言,对一个目标网络,“可靠后继”(Feasible Successor,简称FS)是指 这样的邻居路由器B:通过B到达目标网络有一条路经,并且B到目标网络的距离小于A到目标网络的距离。而“后继”指的是某条路由当前正在使用的下一跳。例如在如下的网络拓扑结构中:301001020ABNC图1 关于可靠后继的说明假定:B-N的“距离”是10,C-N的“距离”100,A到N的最短路径是A-B-N,最短“距离”是30。那么对于目标N:路由器A的可靠后继有B,但C却不是它的可靠后继,路由器B的可靠后继有N,但A却不是它的可靠后继。如果B是A的可靠后继,那么我们可以确信:路由器A通过路由器B到达目标网络不会有环路。也就是说,可靠后继是没有环路的充分条件。当网络发生变化时,DUAL会首先检测对目标网络是否还存在可靠后继:(1)如果存在可靠后继,那么使用可靠后继中最优的一个作为到达目标网络的下一跳,没有必要的重新计算路由。 (2)没有可靠后继,拓扑表中也没有关于此目的地址的路由项,这说明目标网络已经不可达。(3)没有可靠后继,但是拓扑表中还存在到达此目的地址的路由项,即还有相邻路由器宣称它可以通往此目的地。这种情况下,相邻路由器所报告的这条路由不能满足可靠后继条件,我们无法对这条路由作出没有环路的保证。此时不可以采用这个相邻路由器作为通往目的地址的下一跳,(因为不能确保没有环路),而必须启动DUAL进行路由重算,这也是一个重新确定可靠后继的过程。当计算结束时,或者可以找到新的可靠后继,找到新的可以确保无环路的路由;或者可以确信目标网络已经不可达。DUAL算法被称为一种散播算法,是因为它采用一种“分布的”、“扩散的”计算方式。具体说来,当一台路由器对某条路由找不到可靠后继,开始进行路由重算时,它会向所有的邻居路由器提出“查询”(Query),这时我们称这条路由进入了active状态;等到所有的邻居路由器都对查询做出“应答”(Reply)后,这台路由器才会根据这些应答计算出新的可靠后继和新的最佳路由,这时我们称这条路由回到了passive状态,这个过程称之为“收敛”。当邻居路由器收到查询时,它也会检查自己的可靠后继条件:若条件满足,可靠后继存在,那么它将马上对查询做出应答;若条件不满足,找不到可靠后继,那么它只好先将查询搁置起来。然后它也会启动路由重算的过程,会向它所有的邻居发出查询,直到它的所有邻居应答后,它才会收敛并计算出新的可靠后继,这时它才会对先前搁置的查询做出应答。可以看出,DUAL是一个不断向外扩散的计算过程,看起来似乎会将越来越多的路由器卷入到计算过程中。但是实际上,DUAL的机制可以保证计算不会被扩散到太远,计算一般只会波及到必须的路由器;DUAL也可以保证这些发出查询的路由器不会相互无休止地等待应答,它们都会在比较快的时间内收敛。计算的传播过程也伴随着路由信息的传播,这使EIGRP可以很快的感受到网络的变化并做出响应。伴随着DUAL计算,有许多报文在相邻路由器之间传送,这些报文携带者EIGRP的路由信息。EIGRP使用Raw IP在相邻路由器之间传送报文,因为Raw IP一种不可靠的传输,所以EIGRP必须建立自身的可靠传输体系。EIGRP使用的序号确认、超时重传等机制确保报文的可靠送达。只需要简单了解的读者看看这些就够了,如果想深入了解EIGRP,请继续向下看。2 EIGRP的多进程EIGRP是支持多进程的,在同一台路由器上,可以运行多个EIGRP的进程,各个进程之间使用进程号号(as-number)相区分。EIGRP每个进程之间是完全独立的,就像有几个协议一样:它们具有独立的使能网段、独立的协议配置、独立的接口配置、独立的邻居表、独立的拓扑表、独立的报文传送。进程的运行不会互相干扰,一个进程的运行状态和其他进程无关。 EIGRP甚至可以在同一接口、同一链路上运行多个进程。 EIGRP的各个进程之间可以相互引入路由。EIGRP100ABEIGRP200图2 同一链路上可以运行多个进程EIGRP报文头中包含有as number,EIGRP进程将会丢弃接收到的其他进程(as number)的报文。EIGRP只在具有同一as-number的路由器之间建立邻居关系。 无法建立邻居进程100A进程200B图3 不同进程之间不可建立邻居3 报文格式3.1 报文格式描述EIGRP使用Raw IP来封装报文,IP头中协议字段为88。EIGRP的报文共分为Hello、Query、Reply、Update、Request五种,但是其中Request报文目前并没有使用。EIGRP没有单独的确认(Ack)报文,确认消息包含在其他报文中。每种报文又是由一个报文头加上一个或多个TLV组成。TLV指Type-Length-Value,指的是由类型、长度、值三部分组成的信息单位。EIGRP目前有8种TLV:Parameter TLV、Authentication TLV、Sequence TLV、Software Version TLV、Next Multicast Seq TLV、IP Request TLV、IP Metric TLV、IP Exterior TLV。其中IP Request TLV只用于Request报文,目前并没有使用。(其实还有一些IPX和AppleTalk网络使用的TLV,这两种网络不常用,所以也不再叙述。)3.2 EIGRP报文头所有EIGRP的报文都有如下一个头部:241680VersionOpcodeChecksumFlagsSequence NumberAck NumberAutonomous-System Number图4 EIGRP报文头结构字段说明: Version:协议版本(目前为2) Opcode:报文类型编码报文类型1Update2Request3Query4Reply5Hello表2 EIGRP报文类型其中Update(1)报文用来更新路由,Request(2)报文目前不再使用,Query(3)报文和Reply(4)报文用于查询和应答,Hello(5)报文用来维护邻居关系。报文的具体内容在后续的TLV的描述中会讲到。 Update(1)、Query(3)、Reply(4)三种报文的具体用法会在“DUAL算法和DUAL状态机”详细描述。 Checksum:校验和 Flags:标志(0x01表示INIT,0x02表示CR)。INIT标志表示发送给新邻居的第一个初始化Update报文,这个报文将携带所有的路由信息,而以后的普通的Update报文将只携带变化了的路由信息。关于CR(Conditional Receive)标志,将在“Sequence TLV”部分中讲述。 Sequence Number:报文的序列号,用于确认机制。不需要确认的报文,如Hello报文,这个域为0。 Ack Number:报文携带的确认信息。表示已经收到了此序列号的报文。 Autonomous-System Number:自治系统号,一般来说就是进程号。3.3 EIGRP的TLV基本结构根据报文的不同类型,在报文头后面有一个或者多个TLV(Type-Length-Value组)。每个TLV的基本结构如下图所示:241680TLV TypeTLV LengthTLV Value(不定长)图5 EIGRP的TLV结构字段说明: TLV Type:表示TLV的类型。其中的高字节为0表示与网络层协议无关的TLV类型;为1表示IP网络的TLV类型;2表示AppleTalk网络;3表示IPX网络。编码TLV类型0x0001Parameter TLV0x0002Authentication TLV0x0003Sequense TLV0x0004Software Version TLV0x0005Next MultiCast Seq TLV0x0101IP Request TLV0x0102IP Metric TLV0x0103IP Exterior TLV表3 EIGRP TLV类型 TLV Length:这个TLV的长度,由此来界定各个TLV。这个长度是指整个TLV的长度,包括TLV Length和 TLV Length部分。 TLV Value:TLV的内容,具体依据不同的TLV不同。3.4 Parameter TLVParameter TLV被携带在Hello报文中,用来指定建立邻居所需要的一些参数。它的TLV Type为0x0001,长度为12字节。格式如下:241680TLV Type(0x0001)TLV Length(0x000C)k1k2k3k4k5Hold Time图6 TLV结构-Parameter TLV字段说明: k1-k5:计算度量距离的系数K值。 Hold-Time:这个Hello报文的有效时间,若超出这段时间还没有收到新的Hello报文,则认为此路由器已经失效,邻居关系终止。3.5 Authentication TLVAuthentication TLV用来携带认证信息,它的TLV Type为0x0002,它可能出现在任何报文中。按照Cisco的想法,可以对一份报文采用多种认证方式,但是目前只采用了MD5认证。241680TLV Type(0x0002)TLV LengthAuth Type(0x0002)Auth Length(0x0010)Auth Data(对于MD5认证,长32字节)图7 TLV结构-Authentication TLV字段说明: Auth Type:认证类型,目前只有MD5一种类型0x02。 Auth Length:认证的长度,对MD5来说,认证长度为0x10。 Auth Data:认证信息。对于MD5来说,又包括Auth KeyID(4字节)、Auth Pad(12字节)、Auth Digest(16字节)三部分。Auth KeyID默认为0x00000001,可以在接口上配置;而Auth Pad没有意义,永远为0;Auth Digest包含MD5认证的信息。3.6 Sequense TLVSequense TLV可能出现在Hello报文中,它的TLV Type为0x0003,它的作用让某些邻居路由器进入到CR(Conditional Receive)状态。241680TLV Type(0x0003)TLV LengthAddress LengthProtocol Independent Address(对于IP为4字节)注:Address Lenght、Protocol Independent Address两部分可重复图8 TLV结构-Sequense TLV字段说明: Address Length:地址的长度,对于IPv4地址族,取4。 Protocol Independent Address:网络层地址,对于IPv4地址,它长4字节。每一组Address Length和Protocol Independent Address,表示了一个邻居路由器的IP地址,Sequense TLV可以携带多个IP地址的列表。凡是接收到这个TLV的邻居路由器将检查自己是否在这个列表中,如果不在这个列表中,则把自己置为CR状态。只有处于CR状态的路由器,才能接收带有CR标志的报文。(EIGRP报文头部分中关于Flags字段的说明)。让我们通过一个例子来了解CR状态的作用,某路由器R在一个接口上有A、B、C三个邻居。它向这个接口发送了一个Update报文,然后收到了A、C的确认,但是因为某种原因没有收到B的确认,这样无法知道B是否收到了这份Update报文。此时,路由器R既不想继续等B的确认;也不希望B在没有收到第一份Update报文的情况下接收第二份Update报文,因为这种失序有可能引起混乱。于是,路由器R发了一个带有Sequense TLV的Hello报文,里面列出了B的IP地址,这样A、C就会将自己置于CR状态,B则会保持正常态。R发出的后续Update报文将在报文头中打上CR标志,这样只有A、C才会接收这些报文,而B因为不是CR状态,将会忽略带有CR标志的报文,这样保证了B不会接收到失序的报文。路由器R将在稍后向B依次发送B所错过的报文。3.7 Software Version TLV出现在Hello报文中,它的TLV Type为0x0004,用来指定EIGRP协议软件的版本。241680TLV Type(0x0004)TLV Length(0x0008)Sys Major Sys MinorEIGRP MajorEIGRP Minor图9 TLV结构-Software Version TLV字段说明: Sys Major和Sys Minor:系统的主版本号和从版本号。目前分别取1和0。 EIGRP Major和EIGRP Minor:EIGRP的主版本号和从版本号。目前分别取1和0。3.8 Next Multicast Seq TLVNext Multicast Seq TLV可以出现在Hello报文中,它的TLV Type为0x0005。它需要和与Sequense TLV配合使用,单独的Next Multicast Seq TLV没有意义。在有Sequense TLV,但没有Next Multicast Seq TLV时,表示处于CR状态的邻居路由器可以接收以后所有带CR标志的报文。(见上面的5.3.1.5 Sequense TLV部分)在有Sequense TLV和Next Multicast Seq TLV都有时,则Next Multicast Seq TLV指定了一个序列号,处于CR状态的邻居路由器只可以接收带CR标志,并且序列号为这个指定序列号的报文。241680TLV Type(0x0005)TLV Length(0x0008)Seq Number图10 TLV结构-Next Multicast Se TLV字段说明: Seq Number:下一个可以接收的多播报文的序列号。3.9 IP Request TLVRequest TLV是专用于Request报文,它的TLV Type为0x0101,表示向对端路由器请求关于某几个IP网络地址的路由信息。但是现在的EIGRP协议版本没有使用Request报文。241680TLV Type(0x0101)TLV LengthMask Bit CountIP Address(不定长)注: Mask Bit Count、IP Address两部分可重复图11 TLV结构-IP Request TLV字段说明: 使用Mask Bit Count和IP Address表示一个网络地址,这是一种“紧缩”的表示方式。如果表示10.0.0.0/255.0.0.0,那么Mask Bit Count取8,IP Address长一个字节,置10;如果表示192.2.0.0/255.255.0.0,那么Mask Bit Count取16,IP Address长两个字节,分别置192和2。3.10 IP Metric TLVIP Metric TLV可以出现在Query、Reply、Update报文中,它的TLV Type为0x0102,用来表示到某个目的地址的EIGRP内部路由及其度量距离。(EIGRP内部路由是指由EIGRP发现、非引入的路由)241680TLV Type(0x0102)TLV LengthNext Hop Forwarding AddressDelayBandwidthMTUHop CountReliabilityLoadReserved(必须为0)Mask Bit CountIP Address(不定长)注: Mask Bit Count、IP Address两部分可重复图12 TLV结构-IP Metric TLV字段说明: Next Hop Forwarding Address:路由的下一跳的IP地址。 灰色标记的部分表示计算一个综合度量距离Metric的各个要素。 Delay、Bandwidth、MTU、Hop Count、Reliability、Load:依次是总延时、最小带宽、MTU值、跳数、可信度、负载。 Mask Bit Count和IP Address:目标网络的IP地址。用“紧缩”方式(见IP Request TLV中的说明)。一个IP Metric TLV中可以有多个目标网络,表示多条路由信息,它们的下一跳和Metric相同。3.11 IP Exterior TLVIP Exterior TLV可以出现在Query、Reply、Update报文中,它的TLV Type为0x0103,用来表示到某个目的地址的EIGRP外部路由及其度量距离。(EIGRP外部路由是指由EIGRP引入的路由)241680TLV Type(0x0103)TLV LengthNext Hop Forwarding AddressRouter IDAS NumberAdministrator TagExternal Protocol MetricReserved(必须为0)Ext ProtocolFlags FieldDelayBandwidthMTUHop CountReliabilityLoadReserved(必须为0)Mask Bit CountIP Address(不定长)注: Mask Bit Count、IP Address两部分可重复图13 TLV结构-IP Exterior TLV字段说明: Next Hop Forwarding Address:路由的下一跳的IP地址。 上方浅灰色的部分表示EIGRP外部路由信息。Router ID:引入这条路由的路由器的IP地址。AS Number: 引入这条路由的路由器所在的自治系统。Administrator Tag:标记External Protocol Metric:所引入路由在原协议中的Metric值External Protocol:所引入路由的原协议号。(IGRP为1;EIGRP为2;静态路由为3;RIP为4;OSPF为6;BGP为9;直连网段为11)Flags Field:标志位(0x01 表示EXTERNAL;0x02为CD)。EXTERNAL标志表示外部路由;CD标志表示Candidate Default路由。 下方深灰色标记的部分表示计算一个综合度量距离Metric的各个要素。Delay、Bandwidth、MTU、Hop Count、Reliability、Load:依次是总延时、最小带宽、MTU值、跳数、可信度、负载。 Mask Bit Count和IP Address:紧缩格式的目标网络IP地址,可以有多个,表示多条路由信息。4 邻居的发现和维护首先需要指出的是,EIGRP只会在使能的接口上工作。即启动EIGRP之后,需要使用Network命令打开相应的接口,这个接口所连网段的路由才会被EIGRP发布,同时EIGRP也会向这个接口发送报文并接收来自这个接口的报文。当一个接口被指定为passive-interface。那么,这个接口上将既不发送也不接收EIGRP报文(包括Hello报文),但是这个接口所连网段的路由仍然会被其他接口发布。邻居是通过定期发送的Hello报文实现的,相邻路由器之间通过Hello报文建立邻居关系,在一段时间内没有收到报文将清除邻居关系,路由信息报文的连续发送失败和一些配置命令也会导致邻居关系的清除。4.1 发送Hello报文EIGRP定期将向开启的各个接口发送Hello报文,默认每隔5秒钟发送一次,发送间隔可以根据需要在接口模式下配置。发送采用一个定时器控制。发送使用组播地址224.0.0.10,所有运行EIGRP的路由器将加入这个多播组。Hello报文不携带路由信息,只有as-number、系数K值、保持有效时间(Hold-time)等一些参数,这样报文比较短小,占用很少的带宽资源。Hello报文是不需要确认的,也就是说Hello报文采用不可靠传输。4.2 邻居的发现当一台路由器接收到来自其他路由器的Hello报文时,而且这台路由器还不在它的邻居表中,那么EIGRP将检查Hello报文中携带的as-number、系数K值是否与自己的一致,如果一致,将和这台路由器建立邻居关系,将其添加到自己的邻居表中。接收到Hello报文也将刷新一个Hold Time定时器,这个定时器控制邻居是否超时。具体来说,邻居建立的条件有如下:1、 自治系统号相同2、 系数常量相同(K1、K2、K3、K4、K5)3、 在同一个网段上(地址借用除外)4.3 邻居建立的握手过程在收到对端路由器发送过来的Hello报文后,并满足邻居建立条件,EIGRP就会与其建立邻居关系。但是,必须经过三次握手后,才可以正常的发送和接收路由信息。如下图所示:三次握手成功,正常交换剩下的路由UPD Init=1 Seq#=567 ACK#=123UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=0 Seq#=124 ACK#=567UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=1 Seq#=123 ACK#=0UPD Init=0 Seq#=568 ACK#=124UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123UPD Init=1 Seq#=568 ACK#=123AAAAAAAAAAAAAAAABAAABAAABAAABAAA新邻居,开始交换拓扑表新邻居,开始交换拓扑表新邻居,开始交换拓扑表新邻居,开始交换拓扑表先收到邻居的带INIT标志的报文收到邻居的ACK新邻居,开始交换拓扑表新邻居,开始交换拓扑表新邻居,开始交换拓扑表新邻居,开始交换拓扑表同时收到邻居的INIT和ACK图14 三次握手示意图(1)三次握手示意图(1)的说明:1、A发送一个带INIT标记的UPDATE报文给B。2、B收到邻居A发送过来的带INIT标志的UPDATE报文后会接着发一个带INIT标记的UPDATE报文给A,同时这个UPDATE报文中带有ACK号,应答邻居A的INIT标记报文。3、A收到B的带有INIT标志的UPDATE报文(有ACK号)以后,会发送一个ACK报文给B。这时,邻居关系才算真正建立起来,可以正常交换剩下的路由信息。同时,还可以通过如下方式来完成三次握手(如下图):三次握手成功,正常交换剩下的路由UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1 Seq#=567 ACK#=0UPD Init=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论