您现在的位置是:首页 > 编程 > 

基于华为ESP的OSPF数据报文保姆级别详解()

2025-07-26 08:45:22
基于华为ESP的OSPF数据报文保姆级别详解() 本篇博文摘要 基于华为ensp之OSPF数据报文——头部信息、Hello包、DR/BDR选举、DBD包等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法1.OSPF数据报文——头部信息image- 如果验证类型字段为0--不认证。则认证数据部分使用全0填充,保证首部大小为24字节。区

基于华为ESP的OSPF数据报文保姆级别详解()

本篇博文摘要
  • 基于华为ensp之OSPF数据报文——头部信息、Hello包、DR/BDR选举、DBD包等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法
1.OSPF数据报文——头部信息
image-2022102010070576

  • 如果验证类型字段为0--不认证。则认证数据部分使用全0填充,保证首部大小为24字节。
  • 区域ID用于路由器双方进行验证,如果双方所属区域不同,则无法建立邻居关系
1. 版本(Version,8bit)

  • 含义:表示 OSPF 协议的版本号。不同版本的 OSPF 在功能和特性上可能会有所不同。目前常用的版本是 OSPFv2(用于 IPv4 网络)和 OSPFv(用于 IPv6 网络)。
  • 示例:如果该字段的值为 2,则表示此 OSPF 报文遵循 OSPFv2 协议。
image-2022102010070576
2. 类型(Type,8bit)

  • 含义:用于标识 OSPF 报文的类型。不同类型的报文在 OSPF 协议的运行过程中承担着不同的功能。常见的类型有:
    • Hello 报文(Type = 1):用于建立和维护邻居关系,周期性地在邻居之间交换,以确保邻居之间的可达性和参数一致性。
    • Database Description(DD)报文(Type = 2):用于描述本地链路状态数据库(LSDB)的摘要信息,在数据库同步过程中,主从路由器之间交换 DD 报文来协商同步的起始点和序列号。
    • Link State Request(LSR)报文(Type = ):当路由器发现自己的 LSDB 中缺少某些链路状态信息时,会向邻居发送 LSR 报文,请求对方发送相应的链路状态通告(LSA)。
    • Link State Update(LSU)报文(Type = 4):用于发送完整的 LSA,响应 LSR 报文,或者在链路状态发生变化时主动发送,以更新邻居的 LSDB。
    • Link State Acknowledgment(LSAck)报文(Type = 5):用于对收到的 LSU 报文进行确认,确保 LSA 的可靠传输。
  • 示例:如果该字段的值为 1,则此 OSPF 报文为 Hello 报文。
image-2022102010070576
. 报文长度(Packet Length,16bit)

  • 含义:表示整个 OSPF 报文(包括头部和数据部分)的长度,以字节为单位。
  • 示例:如果该字段的值为 100(十六进制为 0x0064),则表示整个 OSPF 报文的长度为 100 字节。
image-2022102010070576
4. 路由器 ID(Router ID,2bit)

  • 含义:在 OSPF 网络中,每个路由器都有一个唯一的标识符,即路由器 ID。路由器 ID 通常是路由器上某个接口的 IP 地址,用于在网络中标识该路由器。它在选举 DR(Designated Router,指定路由器)和 BDR(Backup Designated Router,备份指定路由器)以及标识 LSA 的来源等方面起着重要作用。
  • 示例:如果路由器 ID 为 192.168.1.1(转换为 2 位二进制表示),则该字段的值就是 192.168.1.1 对应的 2 位二进制数。
image-2022102010070576
5. 区域 ID(Area ID,2bit)

  • 含义:OSPF 网络可以划分为多个区域,区域 ID 用于标识 OSPF 报文所属的区域。同一区域内的路由器具有相同的区域 ID,它们共享相同的链路状态数据库,并执行相同的路由计算。区域的划分可以减少网络中链路状态信息的传播范围,降低路由计算的复杂度,提高网络的可扩展性。
  • 示例:如果区域 ID 为 0(表示骨干区域),则该字段的值为 0(2 位全 0)。
image-2022102010070576
6. 校验和(Checksum,16bit)

  • 含义:用于检测 OSPF 报文在传输过程中是否发生错误。发送方在发送报文前计算报文(除校验和字段本身外)的校验和,并将其填入校验和字段。接收方收到报文后,重新计算校验和并与报文中的校验和进行比较,如果两者不相等,则说明报文在传输过程中出现了错误,接收方将丢弃该报文。
  • 示例:接收方计算得到的校验和为 0x124,而报文中的校验和为 0x5678,两者不匹配,说明报文有误。
image-2022102010070576
7. 验证类型(Authentication Type,16bit)

  • 含义:用于指定 OSPF 报文的验证方式。OSPF 支持多种验证方式,如简单密码验证、MD5(Message Digest 5)验证等。不同的验证类型对应不同的验证机制和参数。
  • 示例:如果验证类型为 1,则表示采用简单密码验证方式;如果为 2,则表示采用 MD5 验证方式。
image-2022102010070576
8. 认证数据(Authentication Data,2bit)

  • 含义:根据验证类型的不同,该字段用于存储相应的验证信息。例如,在简单密码验证方式下,该字段存储的是密码(经过一定的处理);在 MD5 验证方式下,该字段存储的是 MD5 摘要等信息。
  • 示例:如果采用简单密码验证,密码为 "password",经过处理后(如哈希运算等)的值存储在该字段中。
2.OSPF数据报文——Hello包

  • 发现、建立以及周期性保活邻居关系。进行DR和BDR的选举
image-202210201012764
网络掩码

  • 该报文被路由器的那一个接口发送,该字段填充该接口的掩码信息。
  • 两台OSPF路由器会检查该字段内容,如果该字段与收到该报文的接口的掩码信息不符,则会丢弃该hello报文。----网络掩码字段的检查仅在MA网络进行

注意:

  • OSPF建立邻居关系需要对比网络掩码字段是华为厂商独有的手段

Hello时间

  • 两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。

路由器失效时间

  • 两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。

可选项

  • 8个标记位,每个标记位置为1,则代表该设备开启了某一种OSPF特性。
  • 可选项中有部分标记位被称为特殊区域标记,该标记在邻居关系建立时会被检查,如果不同则会影响到邻居关系建立。

2.2DR/BDR选举

  • 填充的是网络中DR/BDR所在接口的IP地址。
  • 如果没有选举出,则填充0.0.0.0
代码语言:javascript代码运行次数:0运行复制
所有224.0.0.X格式的组播IP地址被称为本地链路组播;
	目标IP地址是本地链路组播的数据包中的TTL值被设定为1;所有的本地链路组播都存在与之对应的组播MAC地址。
	01-00-5e-0+IP地址的后2位
DR/BDR作用
DR/BDR选举规则
邻居配置:
代码语言:javascript代码运行次数:0运行复制
[r1-GigabitEthernet0/0/0]ospf timer hello 100  --修改hello时间
[r1-GigabitEthernet0/0/0]ospf timer dead 20  ---修改死亡时间
.OSPF数据报文——DBD包

  • 使用未携带数据的DBD报文进行主从关系选举
  • 使用携带数据的DBD报文进行LSA摘要信息共享
  • 使用未携带数据的DBD报文进行确认
image-20221020101821499
接口最大传输单元

OSPF在exstart状态需要进行MTU数值协商,如果双方数值不同,则会影响后续OSPF工作。

该参数会影响OSPF邻接关系的建立,如果参数不同,则双方停留在exstart状态。

华为默认情况不开启MTU检测机制。

在华为体系下,无论接口的实际MTU数值为多少,该字段数值均为0。

代码语言:javascript代码运行次数:0运行复制
[r1-GigabitEthernet0/0/0]ospf mtu-enable ---开启OSPF对MTU的检测机制,双方均需要开启。
image-20221020101821499
标记位

  • I位
    • 代表此时时候在进行主从关系选举。
    • 当该标记位置为1时,则代表此时在进行主从关系选举,且该报文不会携带LSA头部信息。
  • M位
    • 代表后续是否还存在别的DBD报文。
    • 该标记位置为1,则代表此时后续还有其他DBD报文。
  • MS位
    • 当该标记位置为1,则代表此时发送该报文的接口为主设备。
    • 在主从关系选举完成之前,所有DBD报文的MS位均为1。
DD序列号

  • 用于确保DD报文在传输过程中的有序性和可靠性。DD报文的序列号在DD报文交互过程中逐次加一。
  • 只有主设备才可以规定DD序列号内容。
    • 如果从设备发送完数据,而主设备没有发送完毕。从设备也需要回复一个空的DD报文进行确认。
    • 如果主设备发送完毕,从设备没有发送完毕。主设备需要发送空的DD报文,目的是给从设备提供DD序列号使用。
  • 隐性确认---从设备必须根据主设备发送报文中的序列号来发送自己的DD报文

LSA三元组

image-2022102010224905

可以通过这三个参数唯一的标识一条LSA信息

代码语言:javascript代码运行次数:0运行复制
Router ID:标识发布该LSA的路由器。
Link ID:标识链路的目标(对端路由器或网络地址)。
Link Data:描述链路的详细属性,如带宽、MTU、成本等
image-20221020102442624
LSAck报文的目的---显性确认机制
1. 确保LSA的可靠传输

当一个路由器发出LSA时,它并不知道该LSA是否成功到达目标路由器或者是否被目标路由器正确处理。为了确认LSA的可靠传输,接收方会对每个接收到的LSA发送一个LSAck报文。这种机制确保了发送方知道LSA是否被接收,防止因传输丢失或其他问题导致信息同步不一致。

  • 显性确认是指接收方会显式地发送一个LSAck报文来确认已经接收到某个LSA。与此相对的是隐式确认机制(Implicit Acknowledgment),例如在某些协议中,确认可能是通过其他间接方式(如定时器到期)来完成的。
image-20221020102442624
2. 防止重复LSA的传播

  • 在网络拓扑发生变化时,路由器会生成新的LSA并通过OSPF广播到网络中。
  • 为了避免路由器重新发送那些已经被确认接收的LSA,OSPF协议采用显性确认机制,接收方通过LSAck报文确认其接收了LSA,从而通知发送方不需要再重复发送。这不仅减少了网络带宽的消耗,还避免了不必要的计算和存储开销。
image-20221020102442624
. 保证链路状态的同步性

  • 显性确认机制确保了在OSPF网络中的每个路由器都有一致的链路状态数据库。通过LSAck报文,OSPF协议能够保证每条链路状态信息都会在网络中的所有路由器之间得到传播并得到确认。
  • 只有在LSAck确认之后,发送方才可以认为LSA已被成功接收并开始更新路由信息。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent 删除路由器数据网络华为接口

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1164780.html

相关标签:无
上传时间: 2025-07-21 01:14:50
留言与评论(共有 10 条评论)
本站网友 倪净
8分钟前 发表
确认可能是通过其他间接方式(如定时器到期)来完成的
本站网友 上海九洲医院
22分钟前 发表
周期性地在邻居之间交换
本站网友 中国同性恋调查
1分钟前 发表
示例:接收方计算得到的校验和为 0x124
本站网友 缔景城
29分钟前 发表
则该字段的值就是 192.168.1.1 对应的 2 位二进制数
本站网友 中国家庭金融调查报告
4分钟前 发表
示例:如果采用简单密码验证
本站网友 建设信用卡中心
8分钟前 发表
示例:如果采用简单密码验证
本站网友 猫扑两
2分钟前 发表
示例:接收方计算得到的校验和为 0x124
本站网友 合佳酒店
30分钟前 发表
则认证数据部分使用全0填充
本站网友 人体一丝不挂
8分钟前 发表
当该标记位置为1时