基于华为ENSP的OSPF数据报文保姆级别详解(3)
本篇博文摘要 🌟
- 基于华为ensp之OSPF数据报文——头部信息、Hello包、DR/BDR选举、DBD包等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法
引言 📘
- 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。
- 我是肾透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员,希望能够与各位在此共同成长。
📈个人成就和🌐社区贡献与影响力
👑《荣誉头衔》
- 华为云云享专家
- 阿里云专家博主
- 新华三高级网络工程师认证
- 华为云技术开发者HCCDA认证
- 华为HCDG成员
- 腾讯云开发者创作之星
- 腾讯云TDP成员
- AWS——AI从业者者认证
- 支付宝开发者社区优秀季度创作博主
- CSDN网络安全领域新星创作者
💻技术认证:
- 华为病毒查杀漏洞管理技术认证
- 华为Web暴力破解漏洞挖掘技术认证
- 华为HTTPS加密电商网站技术认证
- 华为博客网站SQL注入攻击以及防御技术认证
- 华为MySQL数据库迁移上云技术认证
- 华为企业上云网络规划设计技术认证
- 阿里云Apsara Clouder基于存储产品快速搭建网盘技术认证
- 阿里云Apsara Clouder容器应用与集群管理技术认证
- 阿里云Apsara ClouderECS基础运维管理技术认证
- 阿里云Apsara Clouder存储应用与数据管理技术认证
- 阿里云Apsara ClouderSOL基础开发与应用技术认证
- 阿里云Apsara Clouder基于容器搭建企业级应用技术认证
- 阿里云Apsara Clouder云原生数据库PolarDB 快速入门技术认证
- 阿里云Apsara Clouder云数据库RDS快速入门技术认证
- 阿里云Apsara Clouder大模型- 基于百炼平台构建智能体应用技术认证
- 阿里云Apsara Clouder企业级ECS集群构建技术认证
- 腾讯微服务平台TSF技术认证
- 腾讯EdgeOne网站加速与防护技术认证
🙆曾参与赛事以及荣誉奖项:
- 曾荣获江苏省新华三网络赛事江苏省一等奖、江苏省华为ICT大赛团队赛江苏省二等奖、江苏省网络安全精英赛事优秀奖、江苏省C4网络技术挑战赛赛事、江苏省红帽挑战赛、腾讯全国安全游戏竞赛、全国网络安全运维管理等CTF赛事
- 曾荣获南京市CSDN作者周榜第2名、原力月榜第1名;全国原力榜第11名、全国领军人物榜单第22名

欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]
➡️网络空间安全——全栈前沿技术持续深入学习
➡️ 24 Network Security -LJS
➡️ MYSQL REDIS Advance operation
➡️HCIP;H3C-SE;CCIP—LJS[华为、华三、思科高级网络]
➡️RHCE-LJS[Linux高端骚操作实战篇]
➡️数据结构与算法[考研+实际工作应用+C程序设计]
➡️RHCSA-LJS[Linux初级及进阶骚技能]
上节回顾
目录
编辑本篇博文摘要 🌟
引言 📘
📈个人成就和🌐社区贡献与影响力
👑《荣誉头衔》
💻技术认证:
🙆曾参与赛事以及荣誉奖项:
欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]
上节回顾
1.OSPF数据报文——头部信息
1. 版本(Version,8bit)
2. 类型(Type,8bit)
3. 报文长度(Packet Length,16bit)
4. 路由器 ID(Router ID,32bit)
5. 区域 ID(Area ID,32bit)
6. 校验和(Checksum,16bit)
7. 验证类型(Authentication Type,16bit)
8. 认证数据(Authentication Data,32bit)
2.OSPF数据报文——Hello包
网络掩码
注意:
Hello时间
路由器失效时间
可选项
2.2DR/BDR选举
DR/BDR作用
DR/BDR选举规则
邻居配置:
3.OSPF数据报文——DBD包
接口最大传输单元
标记位
DD序列号
LSAck报文的目的---显性确认机制
1. 确保LSA的可靠传输
2. 防止重复LSA的传播
3. 保证链路状态的同步性


1.OSPF数据报文——头部信息

- 如果验证类型字段为0--不认证。则认证数据部分使用全0填充,保证首部大小为24字节。
- 区域ID用于路由器双方进行验证,如果双方所属区域不同,则无法建立邻居关系
1. 版本(Version,8bit)
- 含义:表示 OSPF 协议的版本号。不同版本的 OSPF 在功能和特性上可能会有所不同。目前常用的版本是 OSPFv2(用于 IPv4 网络)和 OSPFv3(用于 IPv6 网络)。
- 示例:如果该字段的值为 2,则表示此 OSPF 报文遵循 OSPFv2 协议。

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

3. 报文长度(Packet Length,16bit)
- 含义:表示整个 OSPF 报文(包括头部和数据部分)的长度,以字节为单位。
- 示例:如果该字段的值为 100(十六进制为 0x0064),则表示整个 OSPF 报文的长度为 100 字节。

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

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

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

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

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

2.OSPF数据报文——Hello包
- 发现、建立以及周期性保活邻居关系。进行DR和BDR的选举

网络掩码
该报文被路由器的那一个接口发送,该字段填充该接口的掩码信息。
两台OSPF路由器会检查该字段内容,如果该字段与收到该报文的接口的掩码信息不符,则会丢弃该hello报文。----网络掩码字段的检查仅在MA网络进行。
注意:
OSPF建立邻居关系需要对比网络掩码字段是华为厂商独有的手段。
Hello时间
两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。
路由器失效时间
两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。
可选项
8个标记位,每个标记位置为1,则代表该设备开启了某一种OSPF特性。
可选项中有部分标记位被称为特殊区域标记,该标记在邻居关系建立时会被检查,如果不同则会影响到邻居关系建立。
2.2DR/BDR选举

填充的是网络中DR/BDR所在接口的IP地址。
如果没有选举出,则填充0.0.0.0
所有224.0.0.X格式的组播IP地址被称为本地链路组播;目标IP地址是本地链路组播的数据包中的TTL值被设定为1;所有的本地链路组播都存在与之对应的组播MAC地址。01-00-5e-0+IP地址的后23位
DR/BDR作用

DR/BDR选举规则

邻居配置:
[r1-GigabitEthernet0/0/0]ospf timer hello 100 --修改hello时间
[r1-GigabitEthernet0/0/0]ospf timer dead 20 ---修改死亡时间

3.OSPF数据报文——DBD包
使用未携带数据的DBD报文进行主从关系选举
使用携带数据的DBD报文进行LSA摘要信息共享
使用未携带数据的DBD报文进行确认

接口最大传输单元
OSPF在exstart状态需要进行MTU数值协商,如果双方数值不同,则会影响后续OSPF工作。
该参数会影响OSPF邻接关系的建立,如果参数不同,则双方停留在exstart状态。
华为默认情况不开启MTU检测机制。
在华为体系下,无论接口的实际MTU数值为多少,该字段数值均为0。
[r1-GigabitEthernet0/0/0]ospf mtu-enable ---开启OSPF对MTU的检测机制,双方均需要开启。


标记位
I位
代表此时时候在进行主从关系选举。
当该标记位置为1时,则代表此时在进行主从关系选举,且该报文不会携带LSA头部信息。
M位
代表后续是否还存在别的DBD报文。
该标记位置为1,则代表此时后续还有其他DBD报文。
MS位
当该标记位置为1,则代表此时发送该报文的接口为主设备。
在主从关系选举完成之前,所有DBD报文的MS位均为1。
DD序列号
用于确保DD报文在传输过程中的有序性和可靠性。DD报文的序列号在DD报文交互过程中逐次加一。
只有主设备才可以规定DD序列号内容。
如果从设备发送完数据,而主设备没有发送完毕。从设备也需要回复一个空的DD报文进行确认。
如果主设备发送完毕,从设备没有发送完毕。主设备需要发送空的DD报文,目的是给从设备提供DD序列号使用。
隐性确认---从设备必须根据主设备发送报文中的序列号来发送自己的DD报文。

LSA三元组

- 可以通过这三个参数唯一的标识一条LSA信息
Router ID:标识发布该LSA的路由器。 Link ID:标识链路的目标(对端路由器或网络地址)。 Link Data:描述链路的详细属性,如带宽、MTU、成本等


LSAck报文的目的---显性确认机制
1. 确保LSA的可靠传输
当一个路由器发出LSA时,它并不知道该LSA是否成功到达目标路由器或者是否被目标路由器正确处理。为了确认LSA的可靠传输,接收方会对每个接收到的LSA发送一个LSAck报文。这种机制确保了发送方知道LSA是否被接收,防止因传输丢失或其他问题导致信息同步不一致。
- 显性确认是指接收方会显式地发送一个LSAck报文来确认已经接收到某个LSA。与此相对的是隐式确认机制(Implicit Acknowledgment),例如在某些协议中,确认可能是通过其他间接方式(如定时器到期)来完成的。

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

3. 保证链路状态的同步性
- 显性确认机制确保了在OSPF网络中的每个路由器都有一致的链路状态数据库。通过LSAck报文,OSPF协议能够保证每条链路状态信息都会在网络中的所有路由器之间得到传播并得到确认。
- 只有在LSAck确认之后,发送方才可以认为LSA已被成功接收并开始更新路由信息。



相关文章:
基于华为ENSP的OSPF数据报文保姆级别详解(3)
本篇博文摘要 🌟 基于华为ensp之OSPF数据报文——头部信息、Hello包、DR/BDR选举、DBD包等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 📘 在这个快速发展的技术时代,与时俱进是每个IT人的…...
【Java】-- 利用 jar 命令将配置文件添加到 jar 中
目录 1、准备 2、目标 3、步骤 3.1、安装 jdk 3.2、添加配置文件 3.3、校验 1、准备 java 环境hadoop-core-1.2.1.jar 和 core-site.xml 2、目标 将 core-site.xml 添加到 hadoop-core-1.2.1.jar 中。 3、步骤 3.1、安装 jdk 3.2、添加配置文件 jar -cvf hadoop-core-…...
【HarmonyOS NEXT】鸿蒙应用点9图的处理(draw9patch)
【HarmonyOS NEXT】鸿蒙应用点9图的处理(draw9patch) 一、前言: 首先在鸿蒙中是不支持安卓 .9图的图片直接使用。只有类似拉伸的处理方案,鸿蒙提供的Image组件有与点九图相同功能的API设置。 可以通过设置resizable属性来设置R…...
0050.ssm+小程序高校订餐系统+论文
一、系统说明 基于springMvcvueelementui小程序 开发的高校订餐系统,系统功能齐全, 代码简洁易懂,适合小白学编程。 二、系统架构 前端:vue| elementui | 小程序 后端:springMvc | mybatis 环境:jdk1.8 | mysql8.0 | maven 三…...
【Apache Paimon】-- 14 -- Spark 集成 Paimon 之 Filesystem Catalog 与 Hive Catalog 实践
目录 1. 背景介绍 2. 环境准备 2.1、技术栈说明 2.2、环境依赖 2.3、硬件与软件环境 2.4、主要工具清单 2.5、Maven 项目结构 2.6、maven pom.xml 依赖 3. Spark 与 Paimon Filesystem Catalog 集成 3.1、HDFS FileSystem catalog 3.1.1、代码内容 3.1.2、运行输出…...
renben-openstack-使用操作
管理员操作 (1)上传一个qcow2格式的centos7镜像 (2)管理员------>云主机类型------>创建云主机类型 名称:Centos7 VCPU数量:1 内存: 1024 根磁盘: 10G 其他的默认 点击创建云主机类型即可 界面会显示如下 创建公网络 (1)创建…...
开源CMS建站系统的安全优势有哪些?
近年来,用户们用开源CMS系统搭建网站的比例也越来越高,它为用户提供了便捷的网站建设解决方案。其中,亿坊CMS建站系统更因安全方面备受用户欢迎,下面带大家一起全面地了解一下。 一、什么是开源CMS? 开源CMS指的是那…...
基于mybatis-plus历史背景下的多租户平台改造
前言 别误会,本篇【并不是】 要用mybatis-plus自身的多租户方案:在表中加一个tenant_id字段来区分不同的租户数据。并不是的! 而是在假设业务系统已经使用mybatis-plus多数据源的前提下,如何实现业务数据库隔开的多租户系统。 这…...
后台管理系统用户退出登录方案实现
退出登录一直是一个通用的前端实现方案,对于退出登录而言,它的触发时机一般有两种: 1. 用户主动退出,即用户点击登录按钮之后退出; 2. 用户被动退出,Token过期或被 其他人"顶下来" 时退出&…...
C# 对象和类型(结构)
❝ 类和结构的区别 字段、属性和方法 按值和引用传送参数 方法重载 构造函数和静态构造函数 只读字段 Object类,其他类型都从该类派生而来 结构 如何将类保持在堆中,通过这种方式可以在数据的生存期上获得很大的灵活性,但性能会有一定的损失。…...
利用AI优化SEO关键词提升网站排名的策略与技巧
内容概要 随着数字化时代的发展,网站的可见性和流量成为了各个行业品牌获取客户的关键。特别是在竞争激烈的市场中,如何有效地提升网站排名成为了站长和营销人员的关注重点。利用AI技术优化SEO关键词无疑是一种行之有效的方法,通过分析和处理…...
“多维像素”多模态雷视融合技术构建自动驾驶超级感知能力|上海昱感微电子创始人蒋宏GADS演讲预告
2025年1月14日,第四届全球自动驾驶峰会将在北京中关村国家自主创新示范区展示交易中心-会议中心举行。经过三年的发展,全球自动驾驶峰会已经成长为国内自动驾驶领域最具影响力、规模最大的产业峰会之一。在主会场下午的城市NOA专题论坛上,上海…...
基于机器学习的故障诊断(入门向)
一、原始信号的特征提取 1.EMD经验模态分解的作用 信号分析:EMD可以将信号分解为多个IMFs,每个IMF代表信号中的一个特定频率和幅度调制的成分。这使得EMD能够提供对信号的时频特征进行分析的能力(特征提取用到的)。信号去噪&…...
【延伸学习】智能软开关优化配置对比算例【sop】
目录 1 主要内容 算例模型 目标函数 2 部分程序 3 程序结果 3.1 sop选址定容优化模型 3.2 对比算例(不含sop) 3.3 对比算例(含光伏选址) 4 下载链接 1 主要内容 之前分享了《基于改进灵敏度分析的有源配电网智能软开关优…...
pytest 参数介绍
命令行参数描述常见使用案例-v / --verbose显示每个测试用例的详细信息,包括测试名称和状态pytest -v-s / --captureno禁用输出捕获,允许 print() 输出显示pytest -s-q / --quiet安静模式,减少输出,仅显示每个测试的通过/失败结果…...
源代码编译安装X11及相关库、vim,配置vim(1)
一、目录结构 如下。 所有X11及相关库装到mybuild,源代码下载到src下,解压,进入,编译安装。编译时指定--prefix到相同的目录,即上图中mybuild。 ./configure --prefixpwd/../../mybuild [CFLAGS"-I/path/to/X11…...
Node.js JXcore 打包教程
Node.js JXcore 打包教程 介绍 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许开发者使用 JavaScript 编写服务器端和网络应用程序。JXcore 是一个流行的 Node.js 发行版,它支持将 Node.js 应用程序打包成单一的可执行文件,使得部署和分发变得更加容易…...
windows 下基于docker 部署 guacamole
背景 Apache Guacamole 是一种无客户端或插件的远程桌面网关。它支持多个标准协议,如 VNC、RDP 和 SSH等。记录下部署过程。 步骤 1, 安装docker desktop choco install docker-desktop -y 注: 若windows 11还未安装wsl,则需要…...
『SQLite』子查询可以这样用
摘要:本节主要讲子查询的使用,可以在查询、更新、修改、删除等操作中使用。 什么是子查询? 子查询是一种在 SELECT-SQL 语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询(Sub Query&#…...
夯实前端基础之HTML篇
知识点概览 HTML部分 1. DOM和BOM有什么区别? DOM(Document Object Model) 当网页被加载时,浏览器会创建页面的对象文档模型,HTML DOM 模型被结构化为对象树 用途: 主要用于网页内容的动态修改和交互&…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...
rk3506上移植lvgl应用
本文档介绍如何在开发板上运行以及移植LVGL。 1. 移植准备 硬件环境:开发板及其配套屏幕 开发板镜像 主机环境:Ubuntu 22.04.5 2. LVGL启动 出厂系统默认配置了 LVGL,并且上电之后默认会启动 一个LVGL应用 。 LVGL 的启动脚本为/etc/init.d/pre_init/S00-lv_demo,…...
Python 解释器安装全攻略(适用于 Linux / Windows / macOS)
目录 一、Windows安装Python解释器1.1 下载并安装Python解释1.2 测试安装是否成功1.3 设置pip的国内镜像------永久配置 二、macOS安装Python解释器三、Linux下安装Python解释器3.1 Rocky8.10/Rocky9.5安装Python解释器3.2 Ubuntu2204/Ubuntu2404安装Python解释器3.3 设置pip的…...
NoSQL——Redis配置与优化
目录 关系型&非关系型数据库 一、核心原理对比 二、核心特性对比 三、关键区别剖析 四、典型产品示例 总结 Redis Redis核心原理 核心特性 技术意义 配置文件解析 1. 基础配置 2. 持久化配置 3. 内存管理 4. 高可用配置 5. 性能调优 6.…...
如何安装并使用RustDesk
参考: 搭建 RustDesk Server:打造属于自己的远程控制系统,替代 TeamViewer 和 ToDesk! 向日葵、ToDesk再见!自己动手,自建RustDesk远程服务器真香! 通俗易懂:RustDesk Server的搭…...

