计算机网络中 EIGRP 数据包的类型
EIGRP(增强型内部网关路由协议)是一种距离矢量路由协议,用于在计算机网络上自动进行路由决策和配置。它是一种网络协议,允许路由器比内部网关路由协议 (IGRP) 或边界网关协议 (BGP) 等以前的协议更快地交换数据。
EIGRP 具有运行在 IP 之上的 88 号端口,因此被定义为传输层协议。 BGP、Telnet、FTP等应用层协议缺乏内置的可靠性机制,在传输层依靠TCP(6号协议)来保证可靠性。 Hello、Update、Query、Reply 和 ACK是 EIGRP 数据包的五种类型。
EIGRP 使用 IP 数据包来传送路由信息。 IP 标头中协议编号字段值为 88 (0x58) 的 IP 数据包包含 EIGRP 数据包。持有路由控制信息(即回复、更新和查询)的 EIGRP 数据包不会定期传送,每个可信数据包都分配有一个序列号,并且需要对该序列号进行显式确认。
EIGRP 有它的可靠性机制来确认收到它的各种类型的数据包,它使用 RTP 在邻居之间以有保证和有序的方式传递或交换数据包。
RTP 确保相邻路由器之间的通信保持不变。因此,每个邻居都有自己的重传列表。此列表显示尚未被 RTO(往返超时)中的邻居确认的数据包。它用于跟踪所有尚未确认的可信数据包。
EIGRP 数据包类型:
当与其他 EIGRP 路由器连接时,EIGRP 会使用五个不同的数据包,如下所示:
- 你好
- 更新
- 询问
- 回复
- ACK(确认)
1、你好
在建立邻接关系之前,该方法用于寻找邻居。 EIGRP Hello 是确认号为 0 的多播消息。在共享 EIGRP 更新之前,EIGRP 路由器必须建立邻居关联。
hello 消息的目的是:
- “你好”消息旨在找出你的邻居是谁。
- 在任何类型的链接上,它始终是多播的。
- 定时器设置为 5 秒,并定期发送。
- 有 15 秒的按住计时器。
2.更新
用于传输某个路由器使用的融合路由。当新路由被识别或收敛完成时(路由变为被动),EIGRP 更新作为多播传输;在 EIGRP 启动期间与邻居同步拓扑表时,它们作为单播发送。它们通过 EIGRP 路由器可靠地发送。
拓扑表和路由表是通过在邻居之间发送更新消息来建立的。 OSPF 邻居路由器使用更新消息与邻居共享其前缀。多播和单播更新消息都是可能的。串行连接上的更新消息是单播。
另一方面,以太网链路可以是多播和单播。更新消息的操作码是 1。它也有一个自治号码。 RTP(可靠传输协议)用于更新消息以确保数据包的可靠性。更新消息使用序列号和确认号。
3.查询
当 DUAL 重新计算路由器没有可行后继者的路由时,它将向其他 EIGRP 邻居询问可能的后继者。 EIGRP 查询作为多播可靠地发送。顾名思义,当后继路由失败并且在 EIGRP 拓扑数据库中没有可行的后继路由时,会传递查询数据包。丢失路由的路由器向其邻居发送查询消息,以查看该路由是否仍然存在于其拓扑表中。在查询消息中,您还可以设置最大延迟时间。使用串行链路时,始终是单播,而使用以太网链路时,始终是多播。
查询消息的属性:
- 拥有操作码 3
- 它可以是单播或多播
- 它使用可靠传输协议 (RTP)
- 存在序列号和确认号。
4. 回复
为响应查询数据包,发出 EIGRP 回复数据包。为了可靠地响应查询包,使用了回复包。查询的发起方接收单播格式的回复数据包。将 OPCode 4 分配给 EIGRP 应答数据包。
回复消息的属性:
- 拥有操作码 4
- 它使用可靠传输协议 (RTP)
- 这是一条单播消息
5. 承认
EIGRP 确认 (ACK) 数据包只不过是一个空的 EIGRP Hello 数据包。 EIGRP 使用确认包来确保 EIGRP 包被可靠地传送。 ACK 总是传输到单播地址,而不是 EIGRP 多播组地址,后者是可靠数据包发送方的源地址。确认包也总是有一个非零的确认号。因为 ACK 实际上只是一个没有信息的 Hello,所以它使用与 Hello Packet 相同的 OPCode。该项目的 OPCode 为 5。
EIGRP 数据包格式的工作:
所有启用 EIGRP 的接口都会从 EIGRP 路由器接收 Hello 数据包。 224.0.0.10 是 EIGRP 多播地址。只有同一自治系统中的其他路由器才能与 EIGRP 路由器创建邻居连接(邻接)。
在 LAN 上,EIGRP hello 数据包每 5 秒传输一次,以及带宽大于 T1 的点对点链路和多点电路,这些 hello 数据包将在低速接口或 T1 上每 60 秒发送一次。 HELLO 间隔由 interface 子命令ip hello-interval eigrp {as-num} {sec}配置,用于网络接口上的 EIGRP 路由过程。
保持时间——路由器假定邻居启动而没有收到来自该邻居的 Hello 或任何 EIGRP 数据包的时间长度——同样保存在 EIGRP 邻居表中。 IP hold-time eigrp {as-num} {sec}接口子命令配置 EIGRP 路由进程的保持时间间隔。保持时间间隔应至少是 Hello 间隔的 3 倍。实际上,默认保持时间段是 Hello 间隔的三倍。当 Hello 间隔改变时,保持时间间隔不会立即修改。更改 Hello 间隔后,必须手动调整保持时间间隔以匹配新的 Hello 间隔。
这是我们应该注意的一件事,新指定的保持时间值不会影响本地路由器,而是会影响附近的路由器!在邻居路由器上,使用show ip eigrp neighbors EXEC命令验证新指定的保持时间间隔。接收到 Hello 数据包的邻居路由器将使用保持时间值,因为它是 Hello 数据包中的一个参数。
如果在保持时间间隔结束前没有收到 EIGRP 数据包,则邻居邻接关系终止,从邻居学习到的拓扑表条目将被擦除,并发出一条说明路由不可达的更新。如果对于任何目标网络,邻居是后继网络,则将从路由表中删除这些网络,并使用 DUAL 重新计算备用路径。
当路由器没有对该路由进行重新计算时,它被称为被动;在路由器执行重新计算以寻找新的继任者之后,当当前的继任者变得无效时,它被认为是活跃的。
EIGRP 数据包格式中的术语:
EIGRP 标头中的字段如下:
版本:EIGRP 进程版本由该值标识。 EIGRP 的第 2 版目前正在使用中。
Opcode : Update (0x01)、Query (0x03)、Reply (0x04) 和 Hello (0x05) 是不同类型的 EIGRP 数据包 (0x05)。 EIGRP 标头后面的 TLV 由它确定。您好,具有非零 ACK 编号的数据包称为 ACK。操作码指定以下 EIGRP 数据包类型之一:
update(1)
query(3)
reply(4)
hello/ack(5)
SIA query(10)
SIA reply(11)
Checksum :完整的 EIGRP 数据包的校验和,IP 标头除外。
标志:当建立新的邻居关系时,第一个 LSB 位 (0x00000001) 用于表示初始批次的路由更新。条件接收位 (0x00000002),用于 Cisco 专有的可靠多播技术 – 可靠传输协议 (RTP)。其他组件没有被使用。
SEQ & ACK :RTP 使用它来确保 EIGRP 消息被可靠地交换。
AS 编号:识别 EIGRP 数据包的自治系统。 EIGRP 进程仅处理 EIGRP 域内的 EIGRP 数据包(相同的 AS 编号)
类型/长度/值 (TLV):包含以下路由条目和 DUAL 信息:
IPv4 Internal routes = 0x0102
IPv4 External routes = 0x0103
IPv6 Internal routes = 0x0402
IPv6 External routes = 0x0403
EIGRP parameters =0x0001
Authentication Type = 0x0001
Sequence = 0x0003
Software version = 0x0004
Next Multicast Sequence = 0x0005
Multi Protocol Internal Routes (AFI) = 0x0602
Multi Protocol External Routes (AFI) = 0x0603
类型:在值字段中,它指定信息的类型。
长度:指定总长度(这是 EIGRP 中的整个 TLV)。
值:它包含原始信息。
EIGRP 域内的目标网络是内部路由,而 EIGRP 域外的目标网络是外部路由,与其他路由进程一样,将路由重新分配到 EIGRP 域。 EIGRP IP 内部路由的类型字段为 0x0102。 EIGRP 的度量信息与 IGRP 类似,增加了两个新字段:Next Hop 和 Prefix Length(用于支持 VLSM)。
内部 EIGRP 路由是源自与接收路由器相同的 EIGRP 自治系统的路由。
EIGRP IP 内部路由数据包格式:
EIGRP IP 内部路由 TLV 中包含以下信息:
- Next Hop : 下一跳的 IP 地址,数据包应该发送到该地址。
- Delay :路由度量的延迟参数。通向目的网络的路径上接口上所有延迟参数的总和就是延迟值。
- 带宽:路由度量的带宽参数。接口提供带宽,这是接口上通往目标网络的路径上的最低带宽。
- MTU : 路由度量的接口 MTU 参数
- 跳数:到达目标网络所需的跳数。
- 可靠性:在 1 到 255 的潜在范围之外,接口的可靠性。 Reliability 为 1 表示接口是 1/255 可靠的,而 Reliability 为 255 表示接口是 100% 可信赖的。
- 负载:超出 1 到 255 的潜在范围,接口的负载。负载数 1 表示相对较小的负载,而负载值 255 表示完全饱和的界面。
- 前缀长度:目标网络的子网掩码。
EIGRP IP 外部路由数据包格式:
外部 EIGRP 路由是跨 EIGRP 自治系统重新分配的路由。除了 EIGRP IP 内部路由 TLV 字段外,EIGRP IP 外部路由 TLV 还包含一些额外的字段信息,如下所示:
- 始发路由器:外部 EIGRP 路由所源自的路由器的路由器 ID。
- 发起自治系统号:在重新分配到此 EIGRP 自治号之前,EIGRP 自治系统号路由。
- 外部协议度量:路由在重新分配到 EIGRP 之前的度量。
- 外部协议 ID :在 EIGRP 中生成重新分配的路由的路由协议类型。 RIP、IGRP、BGP、OSPF 和其他路由协议就是示例。
有关形成外部路由的源(路由器和路由协议)的信息在 Originating Router、Originating AS、External Protocol Metric 和 External Protocol ID 字段中指定。这里我们需要知道,在基于 OSI 的上下文中,域间路由协议(IDRP)相当于 TCP/IP 环境中的边界网关协议(BGP)。 Cisco IOS 软件不支持 IDRP。