你好,这里是网络技术联盟站。
今天给大家带来另外一个动态路由协议:EIGRP。
如果你没有学过思科,那么肯定是第一次听说动态路由协议中还有一个叫EIGRP的。
EIGRP是思科的私有协议,今天瑞哥就带着大家好好学习一下EIGRP,让我们直接开始吧!
什么是EIGRP?
- 英文全称:
Enhanced Interior Gateway Routing Protocol
- 中文名称:增强型内部网关路由协议
- 思科私有的混合路由协议
- 属于 IGP(内部网关协议)
- 使用 DUAL 扩散更新算法
- 同时具有距离矢量和链路状态路由协议属性
- 协议号 88
- 支持无类路由、VLSM、路由汇总、负载均衡和许多其他有用的功能
- 使用多播地址
224.0.0.10
动态发现邻居
EIGRP特点
- 快速收敛:使用 DUAL 算法来支持快速收敛。
- 带宽使用少:不像其他距离矢量路由协议那样发送定期更新
- 支持所有 LAN 和 WAN 数据链路协议和拓扑。
- 支持自动汇总:默认启用自动汇总。
- 支持可变长度子网掩码 (VLSM)。
- 支持 IPv4 和 IPv6
EIGRP术语
- DUAL:扩散更新算法
- 邻居表:运行 EIGRP 的相邻路由器的列表,用于可靠的消息传递
- 拓扑表:通过 EIGRP 学习的所有路由都保存在拓扑表中
- 路由表:包含最佳 EIGRP 路由
- 内部路由:EIGRP AS 内部的路由。
- 外部路由:另一个路由协议或 另一个AS 获取的路由
EIGRP拓扑示例
EIGRP三张表
EIGRP对其路由操作使用不同的表,在EIGRP中主要使用了三种类型的 EIGRP表:
- 邻居表
- 拓扑表
- 路由表
让我们一一介绍:
邻居表
邻居表保存了所有建立EIGRP邻居关系的路由器,EIGRP 邻居表由 Hello 消息建立。
每个路由器根据从相邻 EIGRP 路由器接收到的 Hello 数据包构建邻居表.
查看 EIGRP 邻居表命令:
代码语言:txt复制show ip eigrp neighbors
拓扑表
拓扑表保存到所有目的地的所有路由,是一种控制平面或 EIGRP 数据库。
查看EIGRP 拓扑表命令:
代码语言:txt复制show ip eigrp topology
路由表
路由表是保存到任何目的地的最佳路由的表.
查看 EIGRP 路由表命令:
代码语言:txt复制show ip route eigrp
EIGRP包类型
为了传递消息和促进会话管理,EIGRP 使用了五种包类型:
HELLO
EIGRP定期发送HELLO包来促进邻居发现。
Ack
ACK 数据包用作对更新、查询或回复数据包的反馈,作为一种反馈机制。
UPDATE
更新包用于发送路由更新。
QUERY
QUERY包用于请求任何路由更新,请求更新。
REPLY
在接收到整个 QUERY 数据包后发送,来确认该数据包的接收。
EIGRP管理距离
- 汇总路由:5
- 内部路由:90
- 外部路由:170
管理距离值越小,协议越可靠。
例如,如果路由器从OSPF)(默认管理距离:110)和 EIGRP(默认管理距离:90)接收到某个网络的路由,则路由器选择 EIGRP,因为 EIGRP 更可靠。
EIGRP操作原理
EIGRP操作过程一般可以简单的归类为3步:
第一步:邻居发现
运行EIGRP 的路由器通过交换 Hello 消息来发现彼此,并比较参数(例如,自治系统编号、K 值和网络地址)来确定它们是否能够形成邻居。
第二步:拓扑交换
如果相邻的 EIGRP 路由器决定形成一个邻居,它们会相互交换它们的完整拓扑表。但是,在建立邻居关系后,只有对现有拓扑的更改才会在路由器之间进行通信。这种方法使 EIGRP 比诸如 RIP 之类的路由协议更有效,后者会定期通告其整个已知网络列表。
第三步:选择路由
填充 EIGRP 路由器的拓扑表后,EIGRP 进程会检查所有学习到的网络路由并选择通往每个网络的最佳路由,EIGRP 认为具有最低度量的网络路由是通往该网络的最佳路由。
详解邻居发现和拓扑交换
邻居发现和拓扑交换比较重要,这里我们用一张图来演示一下步骤,既然讲,那么肯定要讲到位。
结合上面讲的EIGRP包类型
第 1 步:R1 -> R2 邻居发现
R1将 EIGRP Hello 消息 广播到 EIGRP 组播地址 224.0.0.10
,要求任何使用 EIGRP 的路由器识别自己。
第 2 步:R2 -> R1 全路由信息
R2在收到路由器 R1 的 Hello 消息后,将单播更新消息发送回 R1 的 IP 地址 192.168.1.1,此更新消息包含R2 的完整 EIGRP 拓扑表,也就是全路由信息。
第 3 步:R1 -> R2 确认
R1 接收 R2 的更新,并以发送到路 R2 的 IP 地址 192.168.1.2 的确认 (ACK) 单播消息作为响应。
第 4 步:R2 -> R1 邻居发现
接着角色转换,R2 向 EIGRP 多播地址 224.0.0.10 发送 Hello 消息。
第 5 步:R1 -> R2 全路由信息
R1 使用包含 R1 的完整 EIGRP 拓扑表的单播更新来响应路由器 R2 的 Hello 消息,此更新消息的目的地是路由器 R2 的 IP 地址 192.168.1.2。
第 6 步:R2 -> R1 确认
R2 接收到 R1 的路由信息,并以发送到R1 的 IP 地址 192.168.1.1 的 ACK 单播消息作为响应。
此时,路由器 R1 和 R2 之间已经建立了 EIGRP 邻居关系,路由器将定期交换 Hello 消息,以确认每个路由器的邻居仍然存在。然而,这是路由器最后一次交换它们的完整路由信息,随后的拓扑更改通过部分更新进行通告,而不是在邻居建立期间使用的完整更新。
EIGRP度量值
EIGRP度量值计算有点复杂,使用带宽、延迟、负载、可靠性 和 MTU 值来计算的,我们来看一下公式:
为了保住大家的脑细胞,我用颜色区分了一下,其中:
- K1 = 带宽
- K2 = 负载
- K3 = 延迟
- K4 和 K5 = 可靠性
这些K值都有默认值:
- K1(带宽)= 1
- K2(负载)= 0
- K3(延迟)= 1
- K4(可靠性)= 0
- K5(MTU)= 0
通常我们不使用 K2、K4 和 K5 值,因为负载和可靠性是动态值,它们会随着时间而不断变化。
EIGRP度量值计算非常繁琐,但是也是比较重要的,大家可以看完本文后多找几个例子进行练习。
总结
EIGRP是一种基于内部网关路由协议 (IGRP) 原理的高级距离矢量路由协议,具有提高运算能力和收敛速度快的独特特性。
本文瑞哥图文并茂的给大家罗列了EIGRP重要技术点,希望对您有帮助!