你搞懂OSPF协议了吗?

简介: 你搞懂OSPF协议了吗?

image.png前言:越往后学越发现网络基础的重要性!掌握好网络的底层原理至关重要!更新一个ospf协议的详解!


因为笔记我记在Onenote上了,所以有的是图片,原谅我偷个小懒 ^ - ^

Wireshark很好用,能更好的理解!汉化版的可以看我主页!


1.它是啥?:


image.png

ospf使用组播(224.0.0.5和224.0.0.6)
收敛较快
以开销作为度量值
使用SPF算法可以有效避免环路
触发式更新(30分钟发送定期更新,被称为链路泛洪)
区域设计使OSPF能支持更大规模的网络
通过LSA(链路状态)形式发布路由
不支持自动汇总,支持手动汇总
OSPF直接运行在IP协议之上,使用IP协议号89。


2.它是咋工作的?:



image.png

1、发现并建立邻居
2、传播LSA(区别于距离矢量的路由表更新)
  a、Link stat Advertisement,链路状态宣告(路况信息)
  b、链路:路由器接口
  c、状态:描述接口信息(地址、掩码、开销、网络类型、邻居关系等)
3、将LSA泛洪到区域中的所有OSPF路由器,而不仅是直连的路由器
4、收集LSA创建LSDB(链路状态数据库、地图)
5、使用SPF算法计算到每个目标网络的最短距离,并将其置于路由表中

记住三张表
ospf三张表:
邻居表          记录所有邻居关系
链路状态数据库          记录所有链路状态信息
路由表                             记录最佳路由

3. 一个小概念:


运行ospf之前必须选取一个RID
用来标识一台ospf路由器
RID可以手动配置,也可以自动生成
选取规则:
1、手动配置
2、活动回环接口上选取IP地址最高的
3、活动物理接口上选取IP地址最高的
PS:RID选举具有非抢占性,除非重启OSPF进程

4. 它的类型都有啥?:


Hello      建立并维护邻居关系
DBD(Database Description) LSDB摘要(仅含LSA头部)
LSR(Link State Request)请求LSA
LSU(Link State Update)发送LSA
LSACK(Link State Acknowledgment)对LSU确认

图文讲解5类数据包: 1、简单模拟ospf过程,用抓包工具进行分析!

image.png

image.png

image.png

image.png

image.png



5. 它的邻居状态?:


邻居和邻接关系建立的过程如下:Down:这是邻居的初始状态,表示没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系。2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA。Full:路由器的LSDB已经同步。


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png



6.怎么建立邻居关系呢?


image.png


7.老大和老二(DR和BDR)


image.png

image.png

image.png


image.png

image.png


image.png

image.png


image.png


image.png

image.png


image.png


8.来个综合


image.png

image.png

image.png


相关文章
|
4月前
|
人工智能 数据可视化 前端开发
前后端联调安排工具全景解析:让接口联调有序推进,项目节奏不再脱节
在开发节奏加快的今天,联调失控常导致项目延期。前后端联调安排工具通过接口管理、进度同步、角色权限配置等功能,提升协作效率,保障项目按时交付。
|
开发框架 .NET C#
C#/.NET/.NET Core优秀项目和框架精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
C#/.NET/.NET Core优秀项目和框架精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
393 1
什么是多态?面向对象中对多态的理解
本文介绍了面向对象编程中的多态概念,包括其定义、优点以及编译时多态和运行时多态的具体实现方式。通过实例展示了函数重载、运算符重载、虚函数、接口和抽象类的应用,帮助读者深入理解多态的灵活性和可扩展性。
889 7
|
10月前
|
前端开发 Java 编译器
阿里巴巴生态应用在Arm平台性能优化实践
本次方案的主题是阿里巴巴生态应用在 Arm 平台性能优化实践,分别从背景介绍、编译优化实践、总结和展望三个方面介绍了本主题。 1. 背景介绍 2. 编译优化实践 3. 总结和展望
209 3
|
存储 Java 程序员
昵称重复怎么办?一招教你轻松搞定!
本文介绍了如何使用布隆过滤器高效管理用户昵称重复问题。在互联网项目中,确保昵称唯一性至关重要,可避免混淆、增强安全性和保持数据一致性。布隆过滤器通过哈希函数和位数组实现快速查询,具有低内存占用和高速查询的优点。文中详细解释了其工作原理,并提供了Java代码示例,帮助读者理解和应用这一技术,提升项目性能。
331 17
昵称重复怎么办?一招教你轻松搞定!
MUMU:用文本、图像引导,多模态图像生成模型
【9月更文挑战第19天】随着人工智能技术的发展,多模态模型因其能处理文本、图像、音频等多种信息而备受关注。在图像生成领域,一种名为MUMU的新模型展现出巨大潜力。MUMU可接收文本和图像提示并生成相应图像,如根据“一个<图片:男人>男人和他的<图片:狗>狗在一个<图片:卡通>动画风格中”生成图像。通过训练包含文本-图像数据集的视觉-语言编码器及扩散解码器,MUMU能实现风格转换和角色一致性等任务,并在图像编辑和合成方面展示出潜力。然而,其仍受限于复杂场景处理能力和计算资源需求。论文详情见链接:https://arxiv.org/abs/2406.18790。
230 1
|
Linux 区块链 vr&ar
Linux:当极客灵魂遇上网络热梗,一场跨界“笑”果非凡的盛宴!🎉
在这个笑点遍地的网络时代,技术界的“老炮儿”Linux与时俱进,化身技术与娱乐的跨界“段子手”。从“万物皆可盘”到“万物皆可跑”,Linux让智能设备飞速运转;面对“内卷”,它倡导自由进化而非恶性竞争;教“打工人”成为自己的Boss;在“元宇宙”中,Linux打造了一个等待探索的“平行宇宙”。Linux不仅是技术基石,更是一位幽默风趣的伙伴。
228 6
|
Shell 网络安全 开发工具
gitee配置SSH公钥
gitee配置SSH公钥
455 0
|
Java Maven Kotlin
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
441 0
|
存储 前端开发 搜索推荐
【数据结构入门精讲 | 第六篇】队列知识点及考研408、企业面试练习
【数据结构入门精讲 | 第六篇】队列知识点及考研408、企业面试练习
655 0