分享

EIGRP理论与基础(上)

 mzsm 2015-05-06

Eigrp是一种Cisco专有协议,同时具备链路状态和距离矢量路由协议的优点。Eigrp是从距离矢量路由协议派生而来的,其行为是可预测的。与其前任IGRP一样,EIGRP也易于配置,适用于各种网络拓扑。Eigrp包括几种链路状态功能,如动态的邻居发现,这使它成为一种高级距离矢量协议Eigrp是高级的IGRP,因为它会聚速度快,且可确保在任何时候拓扑中都没有环路

特征:

1.快速汇聚Eigrp采用DUAL来实现快速汇聚。运行EIGRP的路由器存储了邻居的路由表,因此能够快速适应网络中的变化。如果本地路由表中没有合适的路由且拓扑表中没有合适的备用路由,EIGRP将查询邻居以发现替代路由。查询将不断传播,知道找到替代路由或确定不存在替代路由。

2.部分更新Eigrp发送部分更新而不是定期更新,且仅在路由的路径或度量值发生变化时才发送。更新中只包含已变化的链路的信息,而不是整个路由表。此外,还自动限制这些部分更新的传播,只将其传输给需要的路由器,因此EIGRP消耗的带宽比IGRP少得多。这种行为也不同于链路状态路由协议,链路状态路由协议将更新发送给区域内的所有路由器。

3.支持多种网络层协议EIGRP使用协议无关模块来支持IP4版(IPV4),IP6版(IPV6),Apple TalkIPX,以满足特定的网络层需求。EIGRP的汇聚速度快,并使用复杂的度量值,这使得在IPV6IPXApple Talek网络中实施EIGRP时,可以提供出众的性能和稳定性。

4.使用多播和单播EIGRP在路由器之间通信时使用多播和单播而不是广播,因此终端站不收路由更新和查询的影响。EIGRP使用的多播地址是224.0.0.10

5.支持变长子网掩码(VLSM):EIGRP是一种无类路由协议,这意味着它将通告每个目标网络的子网掩码,因此支持不连续子网和VLSM

6.在不同数据链路层协议和拓扑之间提供无缝连接性:使用EIGRP时,无需针对第2层协议做特殊的配置;而其他路由协议(如开放最短路径优先,OSPF)对于不同的第2层协议(如以太网和帧中继)需要采用不同的配置。在LANWAN环境中,EIGRP都能高效的运行。在多路访问拓扑(如以太网)中,EIGRP使用可靠的多播来建立和维护邻接关系。EIGRP支持所有的WAN拓扑;专用链路,点对点链路,非广播多路访问(NBMA)拓扑。通过WAN链路来建立邻接关系时,EIGRP能够适应不同类型的速度的介质,并可限制EIGRP占用的WAN链路带宽。

7.精密的度量值:EIGRP的度量值算法与IGRP相同,但使用32位来表示度量值,而不像IGRP那样使用24位,这提高了颗粒度(EIGRP度量值是IGRP度量值的256倍)。与其他协议相比,EIGRP(和IGRP)的一个重要的优点是,支持在度量值不等的路径之间均衡负载,让管理员能够在网络中更好地分配流量。EIGRP依靠IP分组来传送路由信息。与其他IP路由协议一样。EIGRP路由进程是一项传输层功能。传输EIGRP信息的IP分组在其IP包头中使用协议号88(就像传输层控制协议TCP使用协议号6,而用户数据报文协议UDP使用协议号17一样。EIGRP在主网络边界自动进行路由汇总,但可禁用这项功能。在路由器接口上,管理员可以在任意比特边界配置手工汇总(只要路由表中有更具体的路由) 以缩小路由表。EIGRP还支持创建超网(supernet 聚合的地址快)。EIGRP使用4种重要的技术,这些技术使其有别于其他路由协议。

邻居发现协议:EIGRP的邻居发现机制让路由器能够动态的获悉其直接相连的网络中的其他路由器。路由器还必须能够检测到邻居不可达或没有正常运行。这是通过定期地发送小型的hello分组来实现的,其开销很低。只要从邻接路由器那里收到了hello分组,路由器就该邻居在正常运行,它们能够交换路由信息。

可靠传输协议(RTP):RTP负责确保EIGRP分组按顺序地传递给所有邻居,它支持多播和单播分组的混合传输。为提高效率,只有某些EIGRP分组以可靠的方式传输。

例如:在支持多播的多路访问网络(如以太网)中,无需分别将Hello可靠的发送给各个邻居,因此EIGRP发送单个多播HELLO分组,这种分组包含指示器,告诉接受方不用确认。RTP能够快速发送多播分组,即使有分组没有得到确认时,在这网络中包含速度各不相同的链路时也能确保汇聚时间非常短。

例如:在支持多播的多路访问网络(如以太网)中,无需分别将Hello可靠的发送给各个邻居,因此EIGRP发送单个多播HELLO分组,这种分组包含指示器,告诉接受方不用确认。RTP能够快速发送多播分组,即使有分组没有得到确认时,在这网络中包含速度各不相同的链路时也能确保汇聚时间非常短。

DUAL有限状态机制:DUAL内置了执行所有路由器计算的决策过程,它跟踪所有邻居通告的所有路由,并根据距离信息来选择前往目的地无环路高效路径。

协议无关模块:EIGRP的协议无关模块负责处理随网络层协议而异的要求。正如前面指出的,EIGRP支持IPIPv6以及老式协议AppleTalkIPX;这些协议都有独立的EIGRP模块,并独立与其它任何模块运行。例如,IP-EIGRP模块负责发送和接收使用IP封装的EIGRP分组,它还对EIGRP分组进行分析,并将接收到的信息高速DUALIP-EIGRP请求DUAL做出路由决策,并将解决结果存储在IP路由表中。IP-EIGRP还负责重分发其他IP路由协议获悉的路由。

EIGRP术语

邻居表:EIGRP路由器使用HELLO分组来发现邻居。路由器发现新邻居并同其建立邻接关系后,将在邻居表添加一个条目,其中包含该邻居的地址以及可到达该邻居的接口。这个表相当于链路状态路由协议使用的邻接关系数据库,他们的用途相同:确保直连邻居之间能够进行双向通信。EIGRP为其支持的每种网络协议维护一个邻居表。

拓扑表:路由器动态的发现邻居后,将向它发送一个更新,其中包括有关自己知道的路由的信息,同时也将从邻居那里收到这样的更新。这些更新将用于填充拓扑表。拓扑表包含邻接路由器通告的所有目标网络,换句话说,每台路由器都将其邻居的路由表存储在自己的EIGRP拓扑表中。如果邻居通告了一条路由,则说明他当前正使用该路由转发分组,所有距离矢量路由协议都必须严格遵守这条规则。EIGRP路由器为配置的每种网络协议维护着一个拓扑表。

通告距离和可行距离:DUAL使用距离信息(被称为度量值和开销)来选择无环路高效路径。选择开销最低的路由时,将当前路由器到下一跳路由器的开销加上下一跳路由器到目的地的开销,后者称为通告距离(AD),而得到的结果被称为可行距离(FD)。

后继站(successor):也叫当前后继站,指的是这样的邻接路由器,即它到目的地的路径开销最低(FD最低),且不是环路的一部分,后继站被提供给路由表,后者使用它来转发分组。可能存在多个后继站——如果它们的FD相同。

路由表:路由表包含前往每个目的地的最佳路由,用于转发分组,前往后继站的路由被存储到路由表中。EIGRP后继站被提供给路由表(如果路由器从不同的路由源那里获悉了前往同一个目的地的多条路由,它将根据管理距离来确定将哪条路由存储到路由表中)。默认情况下,每种协议最多可将4前往同一个目的地且度量值相同的路由加入到路由表中(但也可以对路由器进行配置,使其最多支持16条。)路由器为配置的每种网络协议维护一个路由表。

可行后继站:除开销最低的路径外,DUAL还存储前往每个目的地的备用路径。备用路径的下一跳路由器被称为可行后继站(Feasible Successor,FS)。FS是这样的邻居,即它比当前路径离目的地更近,但不少开销最低的路径,因此当前没有用来转发数据。要成为FS,下一跳路由器的AD必须小于当前后继站的FD,这确保拓扑没有环路。可行后继站和后继站是同时选择的,但前者之存储在拓扑表中。对于同一目的地,拓扑表中可以有多个可行后继站。

EIGRP使用DUAL来计算前往目的地的最佳路由。DUAL根据复合度量值来选择后继站和可行后继站,并确保选择的路由没有环路。

EIGRP工作原理

1.填充EIGRP

EIGRP与其他路由协议之间最大的差别可能在于其路由过程,EIGRP选择主路由(后继站)和备用路由(可行后继站),并在拓扑表中标识它们,然后将主路由(后继站)加入到路由表中。

EIGRP支持多种路由:内部路由,外部路由和汇总路由。内部路由源自EIGRP自制系统(AS)内部,外部路由是从其它路由协议或其它EIGRP自治系统获悉的,而汇总路由涵盖了多个子网。运行EIGRP使用的3个表

邻居表:邻居表包含每个邻居的地址及可前往该邻居的接口。邻居表条目还包含RTP所需的信息。序列号用于将确认对应到数据分组,将记录从邻居那里收到的最后一个序列号,以便能够检测到没有按顺序到达的分组。对于每个邻居,都使用一个传输链表来对重传分组进行排队。往返定时器存储在邻居表条目中,用于估算最佳的重传间隔。

拓扑表:每台EIGRP路由器都将其IP路由表的副本发送给EIGRP邻居表中的所有EIGRP邻居,后者将路由表存储在EIGRP拓扑表(数据库)中。拓扑表中还包含邻居通告的前往每个目的地度量值(AD)以及经由该邻居前往目的地的度量值(FD)。命令show ip eigrp topology all-links显示拓扑表中的所有IP条目,而命令show ip eigrp topology只显示IP路由的后继站和可行后继站。

在直连路由和接口发生变化,或邻接路由器报告路由变化时,拓扑表将跟新。

拓扑表中的路由处于两种状态之一:主动和被动。路由器没有重新计算时,路由处于被动状态。路由器重新计算时,路由处于主动状态。被动状态是正常状态。

如果经由后继站的路由不可用(由于拓扑发生了变化)或邻居修改了度量值,DUAL将查找前往目的地的可行后继站。如果找到FSDUAL将使用它,从而避免重新计算路由。这提高了汇聚速度。如果始终存在可行后继站,路由将不能进入主动状态,因此无需要重新计算。

当前往目的地的当前路由不可用,且没有可行后继站时,将重新计算路由。虽然重新计算并非处理器密集型的,但确实会影响汇聚时间,因此避免不必要的重新计算是有好处的。路由器通过向每个邻接路由器发送查询分组来启动重新计算。如果邻接路由器有前往该目的地的路由,将发送一个应答分组;否则,将向其邻居发送查询分组。在后一种情况下,在邻接路由器上,该目的地也将进入主动状态。在目的地处于主动状态时,路由器不能修改该目的地的路由表信息。

这种过程将继续进行。没有前往该目的地的邻居和知道该目的地不可达的路由器将立即做出应答,指出该目的地不可达。路由器收到其每台邻接路由器收到应答后,将对来自其邻居的查询做出应答,以此类推。路由器从每台邻接路由器那里都收到应答后,如果拓扑表中至少有一个针对该目的地条目,该目的地将恢复到被动状态,而路由器将为它选择一个后继站。如果拓扑表中没有针对该目的地的条目,则说明该目的地对当前路由器来说不再可达。

路由器:每台路由器都查看其EIGRP拓扑表,并确定前往目标网络的最佳路由和可行路由。路由器对前往特定网络的所有路由的FD进行比较,选择FD最小的路由,并将其加入IP路由表中,该路由就是就是后继路由。在路由表中,选定的后继路由的FD将成为前往该网络的EIGRP路由度量值。

2.EIGRP分组

EIGRP发送5种类型的分组:Hello,更新,查询,应答和确认(ACK),这些分组用于在邻居之间建立邻接关系以及确保拓扑表和路由表是最新的。排除EIGRP网络故障时,网络管理员必须知道各种EIGRP分组的用途以及它们是如何交换的。例如,如果运行EIGRP的路由器之间没有建立邻接关系,它们将不能彼此交换EIGRP更新;没有EIGRP路由更新,用户将无法跨越互联网络来服务器。

1)HelloHELLO分组用于发现邻居。它们以多播方式发送,且不需要确认号。

2)更新:更新分组包含路由变更信息,用于提供路由器汇聚时需要使用的路由,只发送给受影响的路由器。发现新路由并汇聚完毕(路由处于被动状态)后,以多播方式发送更新。为同步拓扑表,EIGRP在启动时以单播方式将更新发送给邻居。更新是以可靠的方式发送的。

3)查询:路由器计算路由但没有找到可行后继时,将向邻居发送查询分组,询问它们是否有前往目的地可行后继。查询通常是多播,但在有些情况下也可以以单播方式重传;查询总是被可靠的发送。

4)应答:应答分组用于响应查询分组,以单播方式被可靠地发送给查询分组的发送方。路由器必须对所有查询做出应答。

5)ACK:确认分组用于确认更新,查询和应答,它是以单播方式发送的HELLO分组,包含一个不为0的确认号(HELLO分组和ACK分组无需确认)

EIGRP HELLO 分组:

EIGRP路由器通过HELLO协议动态的发现与之相连的其他EIGRP路由器。路由器使用多播地址224.0.0.10通过EIGRP接口向外发送HELLO分组。EIGRP路由器从属于同一个自制系统AS的其他路由器那里收到HELLO分组后,将于该路由器建立邻接关系。

HELLO分组的发送间隔随介质而异。默认情况下,在T1或速度更低NBMA接口上,每隔60秒发送一次HELLO分组;在LAN和其他串行接口上,每隔5秒发一次

HELLO分组的发送频率被称为HELLO间隔,可在接口上使用接口配置命令ip hello-interval eigrp as-nummberseconds来调整。

HELLO分组中包含保持时间。保持时间指的是多长时间内未收到邻居的HELLO分组和其他EIGRP分组时,该邻居视为处于down状态。保持时间默认为HELLO间隔的3倍。因此,在LAN和快速WAN接口上,默认保持时间为15秒,在慢速WAN接口上为180秒。可以使用接口配置命令ip hold-time eigrp as-number seconds来调整保持时间。

注意:HELLO间隔被修改后,保持时间并不会自动地响应调整;因此,修改HELLO间隔后,必须手动调整保持时间。

如果保持时间过后仍未收到分组,将删除相应邻接关系以及从该邻居那里获悉的所有拓扑表条目,就像该邻居发送了一条指出所有这些路由都不可抵达的更新一样。如果该邻居是前往每个网络目标的后继站,将从路由表中删除该网络,并计算替代路径,如果有可行替代路径,将快速完成汇聚。

3.EIGRP邻居

即使Hello间隔和保持时间值不匹配,两台路由器也能成为EIGRP邻居,这意味着可以再路由器上独立地设置HELLO间隔和保持时间。

为建立EIGRP邻接关系,所有邻居都将其主地址用作EIGRP分组的源IP地址。如果两台EIGRP路由器的主地址属于同一个IP子网,他们之间将建立邻接关系。此外,如果邻居属于不同的自制系统或用于计算度量之的常熟(K值)不相同,它们将不能建立对等关系。

1)邻居表的内容EIGRP路由器以多播方式发送HELLO分组以发现邻居,然后同这些邻居建立邻接关系以便能够交换路由更新。只有邻接路由器之间才会交换路由信息。每台路由器都更具它从运行相同网络层协议的EIGRP邻接路由器那里收到的HELLO分组来建立邻居表。可使用命令show ip eigrp neighbors来查看IP邻居表。

Hhandle):Cisco IOS内部用来跟踪邻居的编号。

地址(Address):邻居的网络层地址。

保持时间(Hold Time):在没有收到邻居的任何分组时,认为链路不可用之前等待的最长时间。最初,期望的分组时HELLO分组,但在最新的CiscoIOS软件版本中,收到邻居的第一个HELLO分组后,任何EIGRP分组都将重置定时器。

  • 正常运行时间(Uptime):本地路由器首次收到邻居的分组后经过的时间,以小时,分和秒计。

  • 平均往返定时器(SRTT):将EIGRP分组发送到邻居以及本地路由器收到对该分组的确认之间的时间,单位为毫秒。该定时器用于确定重传间隔,也被称为重传超时(RTO)

  • RTO:路由器将重传队列中的分组重传给邻居之前所等待的时间,以毫秒计。

  • 队列计数(queue count):在队列中等待发送的EIGRP分组(更新,查询和应答)数。如果该值经常大于0,则可能存在拥塞问题。0表示队列中没有EIGRP分组。

  • 序列号(Seq Num):从邻居那里收到的最后一个更新,查询或应答分组的序列号。

2EIGRP的可靠性

EIGRP的可靠性机制确保重要的路由信息被递送到邻接路由器。这些信息是EIGRP确保五环路拓扑所必不可少的。为提高效率,只有某些分组被可靠的传输。

所有携带路由选择信息(更新,查询和应答)的分组都被可靠的发送(因为它们不是定期发送的),这意味着需要给可靠的分组分配序列号,并显示确认序列号。

前面说过,RTP负责确保EIGRP分组按顺序地传输给所有邻居,它支持多播和单播分组的混合传输。RTP确保邻接路由器之间正在进行的通信不会中断,因此,为每个邻居维护一个重传列表,其中指出了在RTO期间还未得到邻居确认的分组,它用来记录已发送出去但未得到确认的所有可靠分组。如果RTO到期后仍未收到ACK分组,EIGRP将重传可靠分组的一个副本,知道重传16次或保持定时器到期为止。

使用可靠多播分组的效率非常高,然后在拥有多个邻居的多路访问介质上,可能存在延迟。仅当对等体都确认了前一个多播分组后,才能传输下一个可靠多播分组。如果一个或多个对等体的应答速度慢,将给所有对等体带来负面影响,推迟下一个分组的传输。RTP被设计用来处理这种异常:如果因某个邻居对多播的应答速度较慢而未确认多播分组,将以单播方式重传该分组。这样,可靠的多播能够继续进行,而不会延误与其他对等体的通信,从而避免由于网络中包含不同速率的链路而降低汇聚速度。

多播流(multicast flow)定时器(在show ipeigrp interface中可以看到)指定了从多播切换到单播之前,等待的ACK分组的时间。RTO指定了发送两个连续的单播之间等待的时间。针对每个邻居的EIGRP进程根据SRTT计算多播流定时器和RTO的值。计算SRTT,RTO和多播定时器值的公司是CISCO 专用的。

当网络处于稳定状态时,没有翻滚的路由,EIGRP在等待保持时间后认为邻居失效。因此,默认情况下,在高速链路和低速WAN链路上,EIGRP等待的时间分别为15秒和180秒。EIGRP认为邻居失效且无法同其建立邻居关系后,将把原来通过该邻居可以到达的所有网络从路由表中删除。路由器将尝试找到前往这些网络的替代路由,从而发生汇聚。

低速链路的保持时间为180秒,这好像太长了,但适用于速度最低的链路,这些链路通常用来连接那些不那么重要的远程站点。在有些运行关键任务,对时间敏感的应用程序(如IP电话)的网络中,15秒的时间太长了。重要的一点是,其他因素可能补偿定时器的影响,让网络能够快速汇聚。

例如,由于远程站点超时,导致网络不稳定和路由翻滚,EIGRP保持定时器将从180秒开始倒计时。当上游站点将更新发送给远程站点时,后者没有确认,前者将尝试重传更新16次。每当RTO到期时都将重传。路由器将重置邻接关系,这导致网络的汇聚速度比等待保持时间到期要快。(重传16次了,180秒还没有倒计时完)

所有携带路由选择信息(更新,查询和应答)的分组都被可靠的发送(因为它们不是定期发送的),这意味着需要给可靠的分组分配序列号,并显示确认序列号。

前面说过,RTP负责确保EIGRP分组按顺序地传输给所有邻居,它支持多播和单播分组的混合传输。RTP确保邻接路由器之间正在进行的通信不会中断,因此,为每个邻居维护一个重传列表,其中指出了在RTO期间还未得到邻居确认的分组,它用来记录已发送出去但未得到确认的所有可靠分组。如果RTO到期后仍未收到ACK分组,EIGRP将重传可靠分组的一个副本,知道重传16次或保持定时器到期为止。

使用可靠多播分组的效率非常高,然后在拥有多个邻居的多路访问介质上,可能存在延迟。仅当对等体都确认了前一个多播分组后,才能传输下一个可靠多播分组。如果一个或多个对等体的应答速度慢,将给所有对等体带来负面影响,推迟下一个分组的传输。

RTP被设计用来处理这种异常:如果因某个邻居对多播的应答速度较慢而未确认多播分组,将以单播方式重传该分组。这样,可靠的多播能够继续进行,而不会延误与其他对等体的通信,从而避免由于网络中包含不同速率的链路而降低汇聚速度。

多播流(multicast flow)定时器(在show ipeigrp interface中可以看到)指定了从多播切换到单播之前,等待的ACK分组的时间。RTO指定了发送两个连续的单播之间等待的时间。针对每个邻居的EIGRP进程根据SRTT计算多播流定时器和RTO的值。计算SRTT,RTO和多播定时器值的公司是CISCO 专用的。

当网络处于稳定状态时,没有翻滚的路由,EIGRP在等待保持时间后认为邻居失效。因此,默认情况下,在高速链路和低速WAN链路上,EIGRP等待的时间分别为15秒和180秒。EIGRP认为邻居失效且无法同其建立邻居关系后,将把原来通过该邻居可以到达的所有网络从路由表中删除。路由器将尝试找到前往这些网络的替代路由,从而发生汇聚。

低速链路的保持时间为180秒,这好像太长了,但适用于速度最低的链路,这些链路通常用来连接那些不那么重要的远程站点。在有些运行关键任务,对时间敏感的应用程序(如IP电话)的网络中,15秒的时间太长了。重要的一点是,其他因素可能补偿定时器的影响,让网络能够快速汇聚。

例如,由于远程站点超时,导致网络不稳定和路由翻滚,EIGRP保持定时器将从180秒开始倒计时。当上游站点将更新发送给远程站点时,后者没有确认,前者将尝试重传更新16次。每当RTO到期时都将重传。路由器将重置邻接关系,这导致网络的汇聚速度比等待保持时间到期要快。(重传16次了,180秒还没有倒计时完)

4.初始路由发现

EIGRP将邻居发现和路由获悉过程合而为一。过程如下:

  • 链路上的路由器(路由器A)启动后,通过其所有EIGRP接口发型HELLO分组。

  • 通过某个接口收到HELLO分组后,路由器B用更新分组进行应答,更新分组中包含路由表中的全部路由,但通过该接口获悉的路由除外(水平分割规则)。路由器B将一个更新分组发送给路由器A,但在路由器B将HELLO分组发送给路由器A之前,并没有建立邻接关系。路由器B发送的更新分组的初始位(Init bit)被设置,以指出这是初始化过程。更新分组中包含有关邻接路由器B知道的路由信息,其中包括邻居通告每个目的地的度量值。

  • 两台路由器彼此发送HELLO分组后,邻接关系便建立了。路由器A用ACK分组应答路由器B,指出它已经收到更新信息。

  • 路由器A将更新分组中的信息加入到拓扑表中。拓扑表包含邻接路由器通告的所有目标网络,它列出了所有目标网络以及能够到达目标网络的所有邻居和相应的度量值。

  • 路由器A向路由器B发送一个更新分组。

  • 收到更新分组后,路由器B向路由器A发送一个ACK分组。

本文出自:http://blog.sina.com.cn/s/blog_e21bca140102vpou.html  BY:Miller_Amy

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多