当前位置: 首页 > news >正文

华为:Wireshark的OSPF抓包分析过程

 一、OSPF 的5包7状态

5个数据包

1.Hello:发现、建立邻居(邻接)关系、维持、周期保活;存在全网唯一的RID,使用IP地址表示

2.DBD:本地的数据库的目录(摘要),LSDB的目录(所有LSA的集合)

3.LSR:基于DBD包中的未知信息进行查询

4.LSU:携带了真正的LSA信息(链路状态通告),用于答复对端的LSR

5.LSack:对传递LSA信息进行确认,链路状态确认。

7个状态

Down:一旦启动后发出hello包,则立即进入下一状态

Init初始化:收到邻居Hello包,但未确认双方可达

2-Way双向通信:双向通信建立

ExStart预启动:主从关系协商

Exchange准交换:LSA摘要信息交换

Loading加载:请求完整LSA信息

Full转发:邻接关系完全建立

二、状态变化过程

三、状态过程分析

拓扑

分析

(1)Down:

邻居会话的初级阶段,表示没有收到hello报文

HELLO包:12.1.1.1以10秒为周期向其他链路以组播方式发送hello包,并携带自己的RID。

(2)init:

收到hello报文之后,变成此状态(此时只有一方知道了邻居的存在1-way),

之后发送的hello报文中会有对方的RID,如下图

(3)2-way:

另一方收到hello报文之后,如果从中看到自己的RID以及hello报文中的各项参数是对的,就进入此状态。此时网络类型是广播,则需要选举BDR和DB。如果不建立形成邻居关系,邻居状态就停止,否则直接进入Exstatr。

(4)Extart(预启动)和Exchange(准交换)

相互发送一个空的DD报文,AR1在第一次发送DBD时会将自己的master设置为YES,且两个的DD都是不一样的;

比较DD报文,RID大的则为master,如果是最后一个DD,标志位M置为0;

master收到使自己序列号的DD报文后。表示对方自己为master,状态变为Exchange,同时也会发送DD报文描述自己的LS信息,序列号+1。Slave收到master最后一个DD报文后,使用空的DD报文回复确认,此时状态变为Loading。

(5)Loading

确定主从关系之后,双方开始发送LSA请求LSA信息,对方收到请求恢复LSAck报文,直到LSA同步。

注意:双方不会对每个LSU发送LSAck进行确认,会采用LSA头部的序列号进行隐式确认,类似TCP的序列号,但是会对最后一个LSU发送LSAck进行确认。

(6)Full:LSR重传列表位空,LSA交互完毕。

到此,7个状态完成,路由与拓扑完成交换

四、总结

通过Wireshark分析可清晰观察OSPF状态机的动态过程,首先路由器之间发送Hello包建立邻居关系,然后比较RID选举master,选举完之后使用真正的DBD包进行数据共享,再去获取未知LSA信息,进行交换加入到LSDB中;建立完成邻居关系,就可以转发了。

http://www.lryc.cn/news/547890.html

相关文章:

  • Android项目优化同步速度
  • 在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05
  • STM32-GPIO详解
  • 【Framework系列之Client】UIManager和UIPanel模块介绍
  • 阿里云操作系统控制台——ECS操作与性能优化
  • 【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)
  • 第51天:Web开发-JavaEE应用SpringBoot栈身份验证JWT令牌Security鉴权安全绕过
  • 中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)
  • Java面试第八山!《Spring框架》
  • LangChain教程 - Agent - 支持 9 种 ReAct 交互
  • 蓝桥杯备赛日记【day1】(c++赛道)
  • 【大模型基础_毛玉仁】1.4 语言模型的采样方法
  • [内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希
  • 基于SNR估计的自适应码率LDPC编译码算法matlab性能仿真,对比固定码率LDPC的系统传输性能
  • opencv 模板匹配方法汇总
  • Embedding技术:DeepWalkNode2vec
  • 微信小程序注册组件
  • 【docker】安装mysql,修改端口号并重启,root改密
  • 自定义wordpress三级导航菜单代码
  • 洛谷 P1480 A/B Problem(高精度详解)c++
  • JAVA入门——网络编程简介
  • Ubuntu 合上屏幕 不待机 设置
  • 捣鼓180天,我写了一个相册小程序
  • 短分享-Flink图构建
  • 【监督学习】支持向量机步骤及matlab实现
  • 机器学习-随机森林解析
  • Javaweb后端spring事务管理 事务四大特性ACID
  • 在Spring Boot + MyBatis中优雅处理多表数据清洗:基于XML的配置化方案
  • 【无标题】四色拓扑模型与宇宙历史重构的猜想框架
  • [特殊字符] Django 常用命令