网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

计算机网络中EIGRP数据包的类型

更新时间:2026年03月27日   作者:spoto   标签(Tag):

EIGRP(增强型内部网关路由协议)是一种距离矢量路由协议,用于自动化计算机网络中的路由选择和配置过程。这是一种网络协议,它能够让路由器以比传统的内部网关路由协议或边界网关协议更快速的方式交换数据。

EIGRP使用端口号88,该端口运行在IP之上,因此被归类为传输层协议。而BGP、Telnet、FTP以及其他应用层协议则没有内置的可靠性机制,它们依赖于传输层的TCP协议来确保可靠性。EIGRP数据包共有五种类型:Hello包、Update包、Query包、Reply包和ACK包。

EIGRP使用IP数据包来传输路由信息。在IP头部中,协议号字段的值为88(0x58)的IP数据包,就包含了EIGRP数据包。而包含路由控制信息的EIGRP数据包,比如回复、更新和查询等,则不会定期被发送。每个可信的数据包都会被分配一个序列号,而该序列号需要得到明确的确认后才能被处理。

EIGRP拥有自己的可靠性机制,用于确认各种类型的数据包是否已经收到。此外,EIGRP还使用RTP来以可靠且有序的方式在邻居之间传递或交换数据包。

RTP的作用是确保相邻路由器之间的通信保持稳定。因此,每个邻居路由器都有自己的一列重传列表。该列表中记录了那些尚未被邻居路由器确认的数据包。这个列表有助于记录所有那些未被确认的、可靠的数据包。

EIGRP数据包的类型:

在与其他 EIGRP 路由器进行通信时,EIGRP 会使用五种不同的数据包来进行传输。这些数据包的具体信息如下:

  1. 你好
  2. 更新信息/内容
  3. 查询/询问
  4. 回复
  5. 确认/认可

你好。

在建立邻居关系之前,该方法被用来找到某个路由器。EIGRP的“Hellos”是一种多播消息,其确认号为0。在共享EIGRP更新信息之前,EIGRP路由器必须先建立邻居关系。

发送“Hello”消息的目的是:

  1. “Hello”这条消息的目的是为了了解你的邻居是谁。
  2. 无论采用何种类型的链接方式,它始终都是多播方式。
  3. 计时器设置为5秒,并且会定期发送数据。
  4. 有15秒的保持时间。

2. 更新

该机制用于传输特定路由器所使用的汇总路由信息。当发现新的路由时,或者当汇总过程完成(即路由变为被动状态)时,EIGRP更新会以组播方式发送;而在EIGRP启动过程中,与邻居节点同步拓扑表信息时,更新则以单播方式发送。这些更新能够可靠地通过EIGRP路由器进行传输。

拓扑表和路由表是通过在邻居之间发送更新消息来构建的。OSPF邻居路由器使用更新消息来与邻居共享自己的前缀信息。既可以使用多播更新消息,也可以使用单播更新消息。而串行连接上的更新消息则采用单播方式传输。

而以太网连接则可以同时支持多播和单播传输方式。更新消息的操作码为1。此外,该消息还包含了一个自治编号。为了确保数据包的可靠性,更新消息使用了RTP(可靠传输协议)。更新消息还利用了序列号和确认号来传递信息。

3. 查询/检索

当DUAL重新计算一条没有可行替代路由的路线时,它会向其他EIGRP邻居请求可能的替代路由。 EIGRP查询是通过组播方式可靠地发送的。 所谓“查询数据包”,指的是在后续路由失效且EIGRP拓扑数据库中没有可行的后续路由时,才会被发送出去的。顾名思义,这种数据包就是用来进行查询的。 丢失了路由信息的路由器会向其邻居设备发送查询消息,以确认该路由是否仍然存在于它们的拓扑表中。 在“查询消息”中,您还可以设置最大延迟时间。 当使用串行连接时,总是采用单播方式;而当使用以太网连接时,则总是采用多播方式。

查询消息的属性:

  1. 拥有操作码3
  2. 它既可以是单播,也可以是组播。
  3. 它采用了可靠传输协议(Reliable Transport Protocol,RTP)。
  4. 其中包含了序列号和确认号。

4. 回复/回应

为了响应查询数据包,EIGRP会发送回复数据包。为了能够可靠地响应查询数据包,就需要使用回复数据包。查询数据包的发送方会收到以单播格式表示的回复数据包。EIGRP回复数据包的OPCode为4。

回复消息的属性:

  1. 拥有操作码4
  2. 它采用了可靠传输协议(RTP)。
  3. 这是一种单播消息。

5. 承认/认可

EIGRP确认包其实就相当于一个空的EIGRP“Hello”包而已。 EIGRP使用确认数据包来确保EIGRP数据包能够可靠地传输。 ACK消息总是被发送到单播地址,而不是EIGRP多播组的地址。EIGRP多播组的地址实际上是可靠数据包发送方的源地址。 确认包也总会包含一个非零的确认号。 因为ACK实际上只是一个不包含任何信息的“Hello”消息而已,所以它使用的OPCode与Hello数据包是相同的。 该物品的OP代码为5。

EIGRP数据包的格式及工作原理:

所有支持EIGRP的接口都会从EIGRP路由器那里接收“Hello”数据包。224.0.0.10是EIGRP的多播地址。只有同一自治系统内的其他路由器才能与EIGRP路由器建立邻居连接。

在局域网中,EIGRP的Hello数据包每5秒发送一次。此外,对于具有大于T1带宽的点对点连接以及多点电路,这些Hello数据包还会每60秒发送一次。而在低速接口或T1接口上,Hello数据包的发送间隔为60秒。Hello数据包的发送间隔可以通过接口子命令来配置。ip hello-interval eigrp {as-num} {sec}用于在网络接口上实现EIGRP路由过程。

“保持时间”指的是路由器认为某个邻居处于活动状态的时间长度,而此时路由器并未从该邻居那里收到任何Hello消息或EIGRP数据包。这个数值同样被记录在EIGRP邻居表中。IP持有时间:eigrp {以数字表示} {秒}“interface subcommand”用于配置EIGRP路由过程的保持时间。保持时间应至少是“Hello interval”的3倍。实际上,默认的保持时间就是“Hello interval”的3倍。当“Hello interval”发生变化时,保持时间并不会立即随之调整。因此,在更改“Hello interval”之后,必须手动调整保持时间,使其与新的“Hello interval”保持一致。

有一点需要我们注意:新指定的保持时间值影响的不仅仅是本地路由器,而是附近的各个路由器。在相邻路由器上,应该使用这个新的保持时间值。显示 IP EIGRP 邻居信息。EXEC 模式。这是一条用于验证新指定的保持时间间隔的命令。收到Hello数据包的邻居路由器会使用该保持时间值,因为该值是Hello数据包中的一项参数。

当在规定的保持时间结束后,仍然没有收到EIGRP数据包时,邻居关系就会终止。此时,从该邻居那里获得的拓扑表项会被清除,同时还会发送一个更新消息,表示这些路由无法被使用。如果某个目标网络对应的邻居是“ successor”,那么这些网络将会从路由表中被删除,然后会使用DUAL算法来重新计算替代路径。

当路由器没有对那条路由进行重新计算时,这种状态被称为“被动状态”;而当路由器在当前的 successor 失效后,会进行重新计算以找到新的 successor 时,这种状态则被视作“主动状态”。

EIGRP数据包格式

EIGRP数据包格式中的术语说明:

EIGRP报头的各个字段如下所示:

版本/型号EIGRP进程的版本是通过这个值来确定的。目前使用的是EIGRP的版本2。

操作码“更新”(0x01)、“查询”(0x03)、“回复”(0x04)以及“Hello”(0x05),这些都是EIGRP数据包的不同类型。EIGRP头部之后的TLV值是由该头部所决定的。而“Hello”数据包则是指那些具有非零ACK数值的数据包。Opcode则用于指定EIGRP数据包的类型。

update(1)
query(3)
reply(4)
hello/ack(5)
SIA query(10)
SIA reply(11)

校验和除了IP头部之外,完整的EIGRP数据包的校验和。

旗帜第一个LSB位(0x00000001)用于指示在建立新的邻居关系时,需要发送的初始路由更新信息。条件接收位(0x00000002)则被用于Cisco公司专有的可靠多播技术——可靠传输协议(RTP)中。其他组件则未被使用。

SEQ & ACKRTP利用这一机制来确保EIGRP消息能够可靠地交换。

AS号码r:该EIGRP数据包的自治系统被识别出来。只有位于同一EIGRP域内的EIGRP数据包才会被该EIGRP处理流程所处理(即具有相同的自治系统编号)。

类型/长度/值(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 

类型:在“Value”字段中,它用于指定信息的类型。

长度指定了总长度(这就是EIGRP中的整个TLV)。

价值它包含了原始的信息。

在EIGRP域内的目标网络属于内部路由;而在EIGRP域外的目标网络则属于外部路由,因为这些路由是从其他路由过程获取并重新分配到EIGRP域中的。EIGRP内部路由的Type字段值为0x0102。EIGRP的度量信息与IGRP类似,不过增加了两个新的字段:Next Hop和Prefix Length(用于支持VLSM)。

内部EIGRP路由是指从与接收路由器相同的EIGRP自治系统中产生的路由。

EIGRP IP内部路由数据包格式:

以下信息包含在 EIGRP IP 内部路由的 TLV 中:

EIGRP IP内部路由数据包格式
  • 下一跳下一跳的IP地址,即数据包应该被发送到该地址。
  • 延迟该路由指标的延迟参数。在通往目标网络的整个路径上,接口上所有延迟参数的总和,就构成了该延迟值。
  • 带宽:该路由指标的带宽参数。该接口提供了该接口的带宽信息,该带宽指的是从当前接口到目标网络路径上,该接口所拥有的最低带宽值。
  • MTU该路由度量指标的接口MTU参数
  • 霍普·库恩t:到达目标网络所需的跳数。
  • 可靠性在1到255的范围内,可以表示接口的可靠性。当可靠性为1时,意味着该接口的可信度仅为1/255;而当可靠性为255时,则意味着该接口完全可以信赖。
  • 负载/负荷在1到255的范围内,该接口的负载值可以表示。负载值为1时,表示接口上的负载相对较小;而负载值为255时,则表明接口已经处于完全饱和的状态。
  • 前缀长度目标网络的子网掩码。

EIGRP IP外部路由数据包格式:

外部EIGRP路由是指在EIGRP自治系统之间被重新分配的路由。除了EIGRP IP内部路由的TLV字段之外,EIGRP IP外部路由还包含一些额外的字段信息,具体如下:

EIGRP IP外部路由数据包格式
  • 源路由器这是发起外部EIGRP路由的路由器的路由器ID。
  • 原始自治系统编号:在被重新分配为这个EIGRP自治系统编号之前,该EIGRP自治系统编号所管理的路由仍然有效。
  • 外部协议指标在将其重新分配到EIGRP之前,该路由的度量值是多少。
  • 外部协议ID在EIGRP中,用于生成重新分配路由的路由协议类型有:RIP、IGRP、BGP以及OSPF等。

关于形成该外部路由的源路由器以及路由协议的信息,都记录在“Originating Router”、“Originating AS”、“External Protocol Metric”和“External Protocol ID”这些字段中。需要指出的是,在基于OSI的体系中,Inter-Domain Routing Protocol(IDRP)相当于TCP/IP环境中的Border Gateway Protocol(BGP)。不过,Cisco IOS软件并不支持IDRP。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料