基于华为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数据报文——头部信息

image-20221020100703576

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

1. 版本(Version,8bit)

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

image-20221020100703576

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 报文。

image-20221020100703576

3. 报文长度(Packet Length,16bit)

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

image-20221020100703576

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 位二进制数。

image-20221020100703576

5. 区域 ID(Area ID,32bit)

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

image-20221020100703576

6. 校验和(Checksum,16bit)

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

image-20221020100703576

7. 验证类型(Authentication Type,16bit)

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

image-20221020100703576

8. 认证数据(Authentication Data,32bit)

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

2.OSPF数据报文——Hello包

  • 发现、建立以及周期性保活邻居关系。进行DR和BDR的选举

image-20221020101237364

网络掩码

  • 该报文被路由器的那一个接口发送,该字段填充该接口的掩码信息。

  • 两台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报文进行确认

image-20221020101821499

 

接口最大传输单元

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

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

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

    • 在华为体系下,无论接口的实际MTU数值为多少,该字段数值均为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-20221020102249305

  • 可以通过这三个参数唯一的标识一条LSA信息 
    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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何用SQL语句来查询表或索引的行存/列存存储方式|OceanBase 用户问题集锦

一、问题背景 自OceanBase 4.3.0版本起,支持了列存引擎,允许表和索引以行存、纯列存或行列冗余的形式创建,且这些存储方式可以自由组合。除了使用 show create table命令来查看表和索引的存储类型外,也有用户询问如何通过SQL语句…

重生之我在异世界学编程之算法与数据结构:深入堆篇

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 正文一、堆的基本概念二、堆的存储表示三…

【网络】深入了解HTTPS协议

HTTPS协议: HTTPS 也是⼀个应用层协议 HTTPS本质上就是在HTTP的基础上加了一个加密层,抛开加密之后,剩下的内容跟HTTP一样; HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况. 例如 &…

RabbitMQ基本介绍及简单上手

(一)什么是MQ MQ(message queue)本质上是队列,满足先入先出,只不过队列中存放的内容是消息而已,那什么是消息呢? 消息可以是字符串,json也可以是一些复杂对象 我们应用场…

sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息(客户端ip)

文章目录 引言I 基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表see also: 监视SQL Server 内存使用量资源信号灯 DMV sys.dm_exec_query_resource_semaphores( 确定查询执行内存的等待)引言 查询历史数据库客户端ip应用场景: 安全分析缺乏…

vscode如何离线安装插件

在没有网络的时候,如果要安装插件,就会麻烦一些,需要通过离线安装的方式进行。下面记录如何在vscode离线安装插件。 一、下载离线插件 在一台能联网的电脑中,下载好离线插件,拷贝到无法联网的电脑上。等待安装。 vscode插件商店地址:https://marketplace.visualstudio.co…

基于ADAS 与关键点特征金字塔网络融合的3D LiDAR目标检测原理与算法实现

一、概述 3D LiDAR目标检测是一种在三维空间中识别和定位感兴趣目标的技术。在自动驾驶系统和先进的空间分析中,目标检测方法的不断演进至关重要。3D LiDAR目标检测作为一种变革性的技术,在环境感知方面提供了前所未有的准确性和深度信息. 在这里&…

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…

基于Android的疫苗预约系统

博主介绍:java高级开发,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息,帮助分析连接池的状态和性能瓶颈: import org.apache.commons.pool2.impl.GenericO…

矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM

在短视频创作与传播领域,矩阵碰一碰发视频结合视频剪辑功能,为用户带来了高效且富有创意的内容产出方式。这一功能允许用户通过碰一碰 NFC 设备触发视频分享,并在分享前对视频进行个性化剪辑。以下将详细阐述该功能的源码搭建过程。 一、技术…

CClinkIEfield Basic转Modbus TCP网关模块连接三菱FX5U PLC

捷米特JM-CCLKIE-TCP是自主研发的一款CCLINK IE FB从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 CCLINK IE FB网络中。 捷米特JM-CCLKIE-TCP网关连接到CCLINK IE FB总线中做为从站使用,连接到 MODBUS-TCP 总线中做为主站或从站使用。 为了打破…

农产品智慧物流系统

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…

设计模式-结构型-桥接模式

1. 什么是桥接模式? 桥接模式(Bridge Pattern) 是一种结构型设计模式,它旨在将抽象部分与实现部分分离,使它们可以独立变化。通过这种方式,系统可以在抽象和实现两方面进行扩展,而无需相互影响…

后台管理系统引导功能的实现

引导是软件中经常见到的一个功能,无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言,它是如何实现的呢?通常情况下引导页是通过 聚焦 的方式,高亮一块视图,然后通过文字解释的形式来告知用户该功能的作…

现场展示deepseek VS openAI o1模型大对比

DeepSeek-V3 模型的发布在 AI 领域引起了广泛关注。作为一款拥有 6850 亿参数的混合专家(MoE)语言模型,DeepSeek-V3 在多个基准测试中表现出色,甚至超越了一些闭源模型。其在 Aider 代码能力排行榜上的正确率达到 48.4%&#xff0…

Golang的并发编程框架比较

# Golang的并发编程框架比较 中的并发编程 在现代软件开发中,处理高并发的能力愈发重要。Golang作为一门支持并发编程的编程语言,提供了丰富的并发编程框架和工具,使得开发者能够更轻松地处理并发任务。本文将介绍Golang中几种常用的并发编程…

SSL,TLS协议分析

写在前面 工作中总是会接触到https协议,也知道其使用了ssl,tls协议。但对其细节并不是十分的清楚。所以,就希望通过这篇文章让自己和读者朋友们都能对这方面知识有更清晰的理解。 1:tls/ssl协议的工作原理 1.1:设计的…

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击: xSS 全称(Cross site Scripting )跨站脚本攻击,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013/2017年度分别为第三名和第七名,XSS是指攻…

SpringBoot之核心配置

学习目标: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件属性值注入 3.熟悉Spring Boot自定义配置 4.掌握Profile多环境配置 5.了解随机值设置以及参数间引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…