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

Wireshark的OSPF报文抓包和分析(单区域ospf实验)

一、OSPF的5种数据包和7种状态机制

数据包

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

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

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

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

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

状态机制

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

Init(初始化):若收到了携带了自己的RID的hello包,则和对方一起进入下一状态

Two-way(双向通信):邻居关系建立(DR/BDR选举),此时进行条件匹配,若成功,RID大的优先进入下一状态;若失败,则保持邻居关系,hello包10s周期保活即可

Exstart(预启动):使用类hello的DBD进行主从选举,RID大的优先进入下一状态

Exchange(准交换):使用真正的DBD包进行数据库目录交换共享

Loading(加载):使用LSR/LSU/LSack来获取未知的LSA信息

Full(转发):邻接关系建立的标志

拓扑:

        

二、实验配置

R1
配置IP
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24    
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 24
配置ospf    
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.1.1.2 24
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.1.1.2 24
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 24
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
R3
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.1.1.3 24
[R3]int LoopBack  0
[R3-LoopBack0]ip add 3.3.3.3 24    
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.0 0.0.0.255

 三、数据抓包

(1)Hello包:12.1.1.1以组播的方式周期为10s向相邻的链路发送Hello包

224.0.0.5是组播地址

224.0.0.5:这是OSPF协议中用于多点广播通信的重要组播地址。它允许OSPF路由器之间通过该地址进行信息交换和路由更新。每当一个路由器在网络中发生状态改变时(例如链路故障或恢复),该路由器会将这一信息打包成LSA(链路状态通告)广播给网络中的其他路由器。因此,所有运行OSPF的路由器都会监听224.0.0.5地址。

(2)Exstart预启动和Exchange准交换

R1要进入下一个状态,要与R2比较RID,R1在第一次发送DBD时会将自己的master设置为YES,且DD-seq为48(DD报文中包含的DD-seq用于标识报文的版本和顺序,确保双方能够正确地同步数据库信息。

R2的RID比R1的大,就会给R1发送DBD时将自己的master设置为YES,且DD-seq为46

R1再发送一次DBD,因为R1的RID比R2的小,R1会将自己的master设置成NO,且会将DD-seq改成46(为了确认上一步R2发来的DD-seq,所以DD-seq是46)

R2会再发一次DBD,将M置位0,告诉R1没有DD要发送了。且DD-seq会在原基础上+1,因为是新的DD-seq,所以R1会在发来一个用于确认的报文

R1第三次发来DBD,也是将M置位0,表示R1也没有DBD要发送了。且DD-seq是47是为了确认R2发来的DD-seq

过程总结

(3)Loading::使用LSR/LSU/LSACK获取未知的LSA信息 (共享拓扑图)  

R1和R2之间相互发送LSR LSU

R2向R1以单播方式发送LSR请求

R1给R2回复LSU的确认包含了LSA、路由信息或拓扑信息

R2要给R1发送LSACK确认

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

四、总结

路由器之间先发送Hello包建立邻居关系,然后比较RID去完成DR和BDR的选举,选举完会使用真正的DBD包进行数据库的共享,再去获取未知LSA信息,进行交换加入到LSDB中,然后邻接关系建立完成,可以开始转发。

相关文章:

  • 写一写idea中使用tomcat启动activiti过程
  • docker目录挂载与卷映射的区别
  • C语言学习笔记(week2)2-24 3-2
  • 【音视频】ffplay播放控制
  • LangChain教程 - Agent - 支持 9 种 ReAct 交互
  • 数字逻辑与FPGA实现基础
  • k-Shape:高效准确的聚类方法
  • VPC2-多域攻击-tomcat渗透-通达oa-域控提权-密码喷射-委派攻击-数据库提权
  • 人工智能 模型中D*算法的逻辑
  • 云存储的安全性之代理IP如何确保文件不被未授权访问
  • 杨校老师课堂之零基础入门C++备战信息学奥赛-基础篇
  • C++入门——命名空间
  • django中视图作用和视图功能 以及用法
  • mysql新手常见问题解决方法总结
  • 【OMCI实践】wireshark解析脚本omci.lua文件(独家分享)
  • Unity Shader 学习15:可交互式雪地流程
  • vulnhub靶场之【digitalworld.local系列】的torment靶机
  • HarmonyOS:如何将图片转为PixelMap并进行图片缓存策略
  • linux0.11内核源码修仙传第四章——操作系统的框架代码
  • 删除已加入 .gitignore却仍被git追踪的文件
  • 网站开发 电话/seo优化收费
  • 坂田网站建设/镇江抖音seo
  • 公司网站设计思路/视频优化是什么意思
  • 天津做网站的企业/四川整站优化关键词排名
  • wordpress 摘要/衡阳seo外包
  • 开发者导航/百度seo通科