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中,然后邻接关系建立完成,可以开始转发。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后分离文件上传案例,前端HTML,后端Net6开发的webapi(完整源代码)下载

文件上传功能在项目开发中非常实用,本案例前端用HTML页面的form表单实现,后端用Net6实现。 前后分离文件上传案例,前端HTML,后端Net6(完整源代码) 下载链接https://download.csdn.net/download/luckyext/9…

Linux之命令记录【一】

文章目录 前言几个重要的热键1.[Tab]按键2.[Ctrl]-c 按键3.[Ctrl]-d 按键4.[shift]{[PageUP]|[Page Down]}按键 线上求助(查看帮助信息)1. --help2.man page3.info page 用户身份1.su 基础指令1.date2.cal3.bc 系统字符集相关1.locale 文本编辑器1.nano …

Unity HDR颜色、基础颜色、强度强度、HDR面板Intensity之间的相互转换

目录 前言: 一、UnityHDR面板的规律 二、HDR与基础颜色转换,HDR强度获取,输入设置强度获取 1.基础色->HDR颜色 2.HDR颜色->基础色 3.获取HDR颜色在面板中的强度 4.获取HDR颜色在面板设置输入时的强度 前言: HDR&#…

T41LQ专为人工智能物联网(AIoT)应用设计,适用于智能安防、智能家居、机器视觉等领域 软硬件资料+样品测试

君正(Ingenic)T系列芯片涵盖多个型号,每个型号根据不同应用需求提供了多个版本。以下是各型号及其主要版本: 1. T23系列: T23N:标准版,适用于移动摄像机、安全监控、视频通话和视频分析等应用…

高频 SQL 50 题(基础版)| 高级字符串函数 / 正则表达式 / 子句:1667. 修复表中的名字、1527. 患某种疾病的患者、196. 删除重复的电子邮箱、176. 第二高的薪水、...

高级字符串函数 / 正则表达式 / 子句 1667. 修复表中的名字 题目链接:1667. 修复表中的名字 状态:学会了 思路: 要求修复名字(首字母大写,其他字母小写),按顺序返回。 想法就是取出名字这一列&…

《异步江湖:XHR、Promise 与 Event Loop 的恩怨情仇》

XMLHttpRequest XMLHttpRequest(简称 XHR)是浏览器提供的一个 JavaScript 对象,用于在客户端和服务器之间发送 HTTP 请求。它是实现 AJAX(Asynchronous JavaScript and XML) 技术的核心工具,允许网页在不…

C++课程设计【宿舍管理查询软件】

宿舍管理查询软件 一、题目描述二、源码以及说明宿舍管理查询软件设计与实现1. 系统设计思路1.1 功能需求1.2 数据结构2. 系统实现3. 代码说明3.1 数据结构3.2 功能实现3.3 文件存储4. 示例运行输入输出5. 总结其他QT文章推荐一、题目描述 (一)问题描述 为宿舍管理人员编写一…

MWC 2025 | 移远通信推出AI智能无人零售解决方案,以“动态视觉+边缘计算”引领智能零售新潮流

在无人零售市场蓬勃发展的浪潮中,自动售货机正经历着从传统机械式操作向AI视觉技术的重大跨越。 移远通信作为全球领先的物联网整体解决方案供应商,精准把握行业趋势,在2025世界移动通信大会(MWC)上宣布推出全新AI智能…

C语言常用的头文件,include文件

常用头文件功能速览 1 ,通用常用头文件 01. stdio.h——标准输入输出 02. stdlib.h——内存管理与分配、随机数、字符串转换 03. string.h——字符串处理 04. math.h——数学 05. time.h——时间和日期 06. ctype…

[MySQL初阶]MySQL(4)基本查询

标题:[MySQL初阶]MySQL(4)基本查询 水墨不写bug 文章目录 一. 数据表设计二、对数据表的操作1. Create 操作(插入数据)查看最近受影响的行数: 2. Retrieve 操作(读取数据)&#xff0…

小米智能音箱Pro搭载“超级小爱”,支持远程控车

大家好,今天我要给大家好好唠唠小米智能音箱Pro,尤其是它搭载的“超级小爱”,那功能可太强大了,还支持远程控车,真的是给我们的生活带来了超多便利和惊喜。 先来说说这小米智能音箱Pro的外观。它的设计非常简约时尚,整体造型方方正正,线条流畅,放在家里任何一个角落都…

react中的useContext--为什么使用(一)

React 的数据传递流程 在 React 中,数据传递通常是自上而下的,也就是父组件把数据通过 props 传递给子组件,子组件无法直接修改父组件的数据。 例子:父组件向子组件传递数据 const Parent () > {const user { name: &quo…

如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能

作者:来自 Elastic Michael Supangkat 了解如何在 Elastic Cloud 中,通过使用 LLM 生成的词汇,为搜索应用增强自动补全功能,实现更智能、更动态的搜索建议。 自动补全是搜索应用中的一项关键功能,它通过在用户输入时实…

MAVEN手动配置(阿里云)全教程

介于网上各种各样的MAVEN配置过程中方法大致相同却细节参差不齐,我总结了我遇见的一些问题,来完全的解决MAVEN手动配置的全过程,以及分享解决小毛病的经验。 所需材料: MAVEN3.9.9(下载适合自己的版本即可&#xff09…

DeepSeek 3FS:端到端无缓存的存储新范式

在 2025 年 2 月 28 日,DeepSeek 正式开源了其高性能分布式文件系统 3FS【1】,作为其开源周的压轴项目,3FS 一经发布便引发了技术圈的热烈讨论。它不仅继承了分布式存储的经典设计,还通过极简却高效的架构,展现了存储技…

HarmonyOS:如何将图片转为PixelMap并进行图片缓存策略

前言:在HarmonyOS项目开发中,我们使用Ark-Ts语言开发项目。我们有个功能是拍照,除了正常显示出来,并且上传服务器。我在开发过程中,遇到的问题是,如果离开这个页面再回到当前页面仍要显示图片,那…

2025.3.9机器学习笔记:文献阅读

2025.3.9周报 一、文献阅读题目信息摘要Abstract创新点网络架构实验结论不足以及展望 一、文献阅读 题目信息 题目: Time-series generative adversarial networks for flood forecasting期刊: Journal of Hydrology作者: Peiyao Weng, Yu …

linux固定IP并解决虚拟机无法ping其他电脑问题

linux固定IP并解决虚拟机无法ping其他电脑问题 1.找到网卡文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 2.编辑文件信息 BOOTPROTO 这个dhcp改为static#添加以下内容IPADDR<你的IP地址>NETMASK<子网掩码>&#xff0c;例如255.255.255.0。GATEWAY<网…

Spring实战spring-ai运行

目录 1. 配置 2 .搭建项目 3. 查看对应依赖 3.1 OpenAI 依赖 3.2 配置 OpenAI API 密钥 application.properties application.yml 4. openai实战 5. 运行和测试 6. 高级配置 示例&#xff1a;配置模型和参数 解释&#xff1a; 7. 处理异常和错误 示例&#xff1a;…

docker:配置 Docker 镜像加速器

1 镜像加速器介绍 默认情况下&#xff0c;将来从docker hub&#xff08;https://hub.docker.com/&#xff09;上下载docker镜像&#xff0c;太慢。一般都会配置镜像加速器&#xff1a; USTC&#xff1a;中科大镜像加速器&#xff08;https://docker.mirrors.ustc.edu.cn&…