EIGRP是什么

小白 2020-07-07 09:54:21
QA

增强内部网关路由协议(EIGRP)也翻译为加强型内部网关路由协议。结合链路状态和距离矢量型路由选择协议,采用弥散修正算法(DUAL)来实现快速收敛,支持Appletalk、IP、Novell和NetWare等多种网络层协议。

EIGRP:Enhanced Interior Gateway Routing Protocol 即 增强内部网关路由协议。也翻译为 加强型内部网关路由协议。 EIGRP 是 Cisco 公司的私有协议(2013 年已经公有化)。 EIGRP 结合了链路状态和距离矢量型路由选择协议的 Cisco 专用协议,采用弥散修正算法(DUAL)来实现快速收敛,可以不发送定期的路由更新信息以减少带宽的占用,支持 Appletalk、IP、Novell 和 NetWare 等多种网络层协议。

EIGRP是什么

协议特点

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

快速收敛

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

2.部分更新

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

3.支持多种网络层协议

EIGRP 使用协议相关模块来支持 IPv4、IPv6、Apple Talk 和 IPX,以满足特定网络层需求。

4.使用多播和单播

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

5.支持变长子网掩码(VLSM)

EIGRP 是一种无类路由协议,它将通告每个目标网络的子网掩码,支持不连续子网和 VLSM

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

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

7.配置简单

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

计算方法

EIGRP 选择一条主路由(最佳路由)和一条备份路由放在 topology table(EIGRP 到目的地支持最多 16 条链路。从 12.3T IOS 版本之后,最多支持 16 条负载均衡,之前为 6 条).它支持几种路由类型:内部,外部(非 EIGRP)和汇总路由.EIGRP 使用混合度量值.

EIGRP Metric 的 5 个标准

带宽(bandwidth)

10 的 7 次方除以源和目标之间最低的带宽乘以 256(10 的 7 次方除以以 Kbit/s 为单位的最小带宽,然后加上延迟之和除以 10,最后乘于 256)

延迟(delay)

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

可靠性(reliability)

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

负载(loading)

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

最大传输单元(MTU)

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

EIGRP Metric 的计算

一般情况下,K5=0;EIGRP 度量值的计算公式为:256*{K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)}

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

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

如果修改 K 值,使 K5 不等于 0,则 Metric 计算式变成:256*[K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)]*[K5 / (可靠性+K4)]

计算出的 Metric 值不是整数时自动取整,比如计算结果为 8501.39 ,显示值将为 8501。

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

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

特点

通过发送和接收 Hello 包来建立和维持邻居关系,并交换路由信息;

采用组播(224.0.0.10)或单播进行路由更新;

EIGRP 的管理距离为 90 或 170;

采用增量更新,减少带宽占用;

支持可变长子网掩码(VLSM),默认开启自动汇总功能;

支持 IP、IPX 和 AppleTalk 等多种网络层协议;

对每一种网络协议,EIGRP 都维持独立的邻居表、拓扑表和路由表;

EIGRP 使用 Diffusing Update 算法(DUAL)来实现快速收敛并确保没有路由环路;

存储整个网络拓扑结构的信息,以便快速适应网络变化;

支持等价和非等价的负载均衡;

使用可靠传输协议(RTP)保证路由信息传输的可靠性。

无缝连接数据链路层协议和拓扑结构,EIGRP 不要求对 OSI 参考模型的 2 层协议进行特别的配置。

环路解决

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

1.水平分割(Split Horizon)

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

2.路由的毒性逆转(Poison reverse)

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

触发条件:

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

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

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

路由分发

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

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

示例:

Router One

router eigrp2000 network 172.16.1.0 0.0.0.255

Router Two

router eigrp2000

redistribute eigrp1000 route-map to-eigrp2000

network 172.16.1.0 0.0.0.255--在 AS=2000 内定义邻居 AS=1000 去 AS=2000 的网段

!

router eigrp1000

redistribute eigrp2000 route-map to-eigrp1000--在 AS=1000 内定义邻居 AS=2000 去 AS=1000 的网段

network 10.1.0.0 0.0.255.255

route-map to-eigrp1000 deny 10

match tag 1000

!

route-map to-eigrp1000 permit 20

set tag 2000

!

route-map to-eigrp2000 deny 10

match tag 2000

!

route-map to-eigrp2000 permit 20

set tag 1000

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

Router Three

router eigrp 1000network 10.1.0.0 0.0.255.255

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

术语定义

弥散更新算法简介

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

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

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

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

adjacency(邻接)

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

Feasible Distance(FD,可行距离)

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

Feasible Condition(FC,可行条件)

邻居宣告到达目标网络的的距离小于本地路由器到达目标网络的 FD AD < FD => FC=ture.

Feasible Successor(FS,可行后继路由)

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

拓扑表(Topological Table)

拓扑表包括以下内容:

目标网络的 FD.

所有的 FD.

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

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

发现 FS 的网络相连的接口.

邻居表(Neighbor Table)

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

后继路由(Successor)

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

后继路由器:

是一个直接连接的邻居路由器,通过它到达目的网络的路由最优。

可行后继路由器:

是一个邻居路由器,但是通过它到达目的地的度量值后继路由器高,但它的通告距离小于通过后继路由器到达目的网络的可行距离,因而被保存在拓扑表中,用做备份路由。

优缺点

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

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

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

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

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

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

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

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

区域概念,EIGRP 已经引用 AS 概念,可以进行大规模网络的路由支持了。

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

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

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

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

K 值详解

1. EIGRP metric = (IGRP metric) * 256 IGRP metric is 24 bits in length. EIGRP metric is 32 bits in length.

2. K1 :: Bandwidth = (10,000,000 / bandwidth on interface,kbps) * 256 56K 45714176 1.544M 1657856 (10,000,000 / 1544 = 6476) * 256 10M 256000 100M 25600 1G 2560

3. K2 :: Loading

4. K3 :: Delay sum of delays in the path,in tens of microseconds,mutliplied by 256 Delay = [(sum of the DLY,in microseconds) / 10] * 256

这里的 DLY 是从本地接口发出后,沿途所经所有源接口的 DLY。

6. K5 :: Reliability(可靠性)

7. K1~K5 ---> B-L-D-R-M ---> BLack DReaM (这是我的一个记忆技巧)

8.Formula with default K values (K1=1,K2=0,K3=1,K4=0,K5=0): metric = K1*BW + ((K2*BW)/(256-load)) + K3*delay = BW + delay

9. If K5 is not equal to 0: metric = metric * [ K5/(reliability + K4) ]

10.K values are carried in EIGRP hello packets.

11.Mismatched K values can cause a neighbor to be reset.

排错命令

show run | begin router eigrp//查看配置文件中 eigrp 的配置命令

show ip protocols//查看当前路由器运行的 eigrp 协议状态

show ip route summary//查看 eigrp 路由汇总状态

show ip eigrp neighbors//查看 eigrp 邻居状态

show ip eigrp interface//查看各个运行 eigrp 的接口状态

show ip eigrp interface detail//查看各个运行 eigrp 的接口详细状态

show ip route eigrp//查看 eigrp 协议学习到的路由表

show ip eigrptopology//查看 eigrp 的拓扑表

show ip eigrptopology all-links//查看 eigrp 完整的拓扑表

show ip eigrptopology 10.1.1.0 255.255.255.0//查看指定的某个网络参数信息

debug eigrp packets//调试 eigrp 的查讯包

debug eigrp fsm //调试 eigrp 的 dual 算法调试信息

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐