HCIP的学习(8)

OSPF数据报文

OSPF头部信息(公共固定)

  • 版本:OSPF版本,在IPv4网络中版本字段恒定为数值2(v1属于实验室版本,v3属于IPv6)
  • 类型:代表具体是哪一种报文,按照1~5排序(Hello报文或其他四种之一)
  • 报文长度:OSPF数据报文的完整长度(OSPF头部信息(24字节)+数据部分大小(可变))
  • 路由器ID:就是发送方的router id
  • 区域 ID:发送的接口属于的区域(例如属于区域0,就是0.0.0.0)(与接收方入接口区域ID如果不相同,两者不会建立邻居关系)
  • 校验和:用来验证数据的完整性,有无被串改
  • 验证类型:(3种)
    • 不认证
    • 明文认证
    • 密文认证

如果验证类型字段为0--不认证。则认证数据部分使用全0填充,保证首部大小为24字节

区域ID用于路由器双方进行验证,如果双方所属区域不同,则无法建立邻居关系

Hello包

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

  • 蓝色字体表示会影响到OSPF邻居关系的建立
  • 首部中:区域ID、认证类型、路由器ID(router id 相同会影响)
  • 网络掩码
    • 该报文被路由器的那一个接口发送,该字段填充该接口的掩码信息。
    • 两台OSPF路由器会检查该字段内容,如果该字段与收到该报文的接口的掩码信息不符,则会丢弃该hello报文。----网络掩码字段的检查仅在MA网络进行
    • 注意:OSPF建立邻居关系需要对比网络掩码字段是华为厂商独有的手段。
  • Hello时间间隔
    • 两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。
  • 路由器失效时间(即死亡时间)
    • 两台直连路由器如果要建立邻居关系,则需要保证该参数取值一致,否则无法正常建立邻居。
    • 默认情况下,路由器失效时间是Hello时间的四倍,会随着Hello时间变化而变化(但不绝对,可以单独更改死亡时间)
  • 可选项
    • 8个标记位,每个标记位置为1,则代表该设备开启了某一种OSPF特性。
    • 可选项中有部分标记位被称为特殊区域标记,该标记在邻居关系建立时会被检查,如果不同则会影响到邻居关系建立。
  • 路由器优先级
    • 就是接口优先级,默认为1
  • 指定路由器/备份指定路由器(DR/BDR)
    • 填充的是网络中DR/BDR所在接口的IP地址。
    • 如果没有选举出,则填充0.0.0.0
  • 邻居
    • 填的是邻居的router id,每有一个,都用一行来填充(32bit),没有可以为空

扩展

复制代码
	所有224.0.0.X格式的组播IP地址被称为本地链路组播;
	目标IP地址是本地链路组播的数据包中的TTL值被设定为1;所有的本地链路组播都存在与之对应的组播MAC地址。
	01-00-5e-0+IP地址的后23位。

[r1-GigabitEthernet0/0/0]ospf timer hello 100  --修改hello时间
[r1-GigabitEthernet0/0/0]ospf timer dead 20  ---修改死亡时间

DBD包

功能

  • 使用未携带数据的DBD报文进行主从关系选举

  • 使用携带数据的DBD报文进行LSA摘要信息共享

  • 使用携带数据的DBD报文进行确认

  • 接口最大传输单元(MTU)

    • 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的头部

    • 本地所有LSDB中的LSA的摘要信息

LSR包

链路状态类型、链路状态ID、通告路由器表示一组,后面每多一条LSA信息,就多一组

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

LSU包

LSA个数:告知对方,我发送的LSA个数,让对方对比是否发全

LSAck包

LSAck报文的目的---显性确认机制 。(告知对方消息以收到)
LSAck报文大小计算:24 + 20*n (24:报文头部的大小 20:一个LSA头部的大小 n:LSA头部的数量)

相关推荐
寂寞恋上夜16 分钟前
异步任务怎么设计:轮询/WebSocket/回调(附PRD写法)
网络·人工智能·websocket·网络协议·markdown转xmind·deepseek思维导图
Tao____19 分钟前
基于Ruoyi开发的IOT物联网平台
java·网络·物联网·mqtt·网络协议
旖旎夜光41 分钟前
Linux(9)
linux·学习
浩瀚地学1 小时前
【Java】常用API(二)
java·开发语言·经验分享·笔记·学习
chao_6666662 小时前
解决 PowerShell 中文乱码问题
网络·学习·powershell
喵了meme2 小时前
Linux学习日记24:Linux网络编程基础
linux·网络·学习
BullSmall2 小时前
《庄子》导读
学习
HL_风神2 小时前
设计原则之迪米特
c++·学习·设计模式
HL_风神2 小时前
设计原则之合成复用
c++·学习·设计模式
上海云盾商务经理杨杨2 小时前
2026年等保测评终极指南:新规解读、策略选择与一站式服务深度剖析
网络安全