基于华为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已被成功接收并开始更新路由信息。