OSPF复习
OSPF
OSPF---开放最短路径优先协议
动态路由判定依据:选路,收敛速度,占用资源
OSPFV2和RIPV2的相同点:
1.都是无类别的路由协议;
2.都是通过组播来传播信息的;(RIP:224.0.0.9;OSPF:224.0.0.5/224.0.0.6)224.0.0.X---本地链路组播
3.都支持等开销负载均衡;
224.0.0.5 用途:所有运行 OSPF 的路由器默认监听的组播地址。
功能:
-
OSPF 路由器通过此地址发送 Hello 报文,用于发现邻居路由器并维护邻接关系。
-
泛洪(Flooding)链路状态更新(LSU)时,非指定路由器(DR/BDR)通过此地址向其他路由器发送信息。
-
所有 OSPF 路由器都会监听此地址的组播流量。
224.0.0.6 用途:仅由 OSPF 的 指定路由器(DR, Designated Router) 和 备份指定路由器(BDR, Backup Designated Router) 监听。
功能:
-
其他路由器通过此地址向 DR/BDR 发送链路状态更新(LSU)。
-
DR/BDR 负责将更新信息转发到整个网络(通过 224.0.0.5),确保高效的路由信息同步。
-
避免多路访问网络(如以太网)中因广播风暴导致的冗余流量。
不同点:RIP只能在小型网络中使用,而OSPF可以应用在大型网络中,OSPF可以支持结构化部署(区域划分)
区域划分目的---区域内部传递拓扑信息,区域间传递路由信息---链路状态型协议的距离矢量特征
区域边界路由器(ABR)---同时属于多个区域,一个接口对应一个区域,该设备可以将一个区域内的拓扑信息收集进行计算,生成路由信息之后传递到其他区域
区域划分要求:
1.区域之间必须存在ABR设备;
2.区域划分必须按照星型拓扑结构划分;
OSPF的数据包
1.Hello报文---周期型的发现,建立以及保活邻居关系
hello时间(10S) Dead time(4倍hello时间)
route-id---32位二进制构成---手工配置/自动生成(首先在环回地址的IP地址选择,如果有多个环回则选择数值最大的)
(1)全网唯一;(2)格式统一
2.DBD报文---数据库描述报文,在邻接关系建立时交换LSDB(链路状态数据库)摘要
3.LSR报文---链路状态请求报文,基于DBD包请求未知的LSA信息
4.LSU报文---链路状态更新报文,真正携带LSA信息数据包
5.LSAck报文---链路状态确认报文
OSPF协议存在30min一次的周期更新
OSPF报文头部
类型---OSPF的数据包类型
hello包(1);DBD包(2);LSR包(3);LSU包(4);LSACK包(5)
验证类型---1.null;2.明文;3.MD5
Hello包---进行周期性的保活和建邻;DR/BDR的选举
网络掩码---发出接口的IP地址对应的掩码信息,如果邻居双方的掩码信息不同,则无法建邻
hello时间/死亡时间---如果邻居的这两个时间不同,也无法正常建邻
8位可选项---包含OSPF特殊区域的标记;如果邻居双方特殊区域标记不同,则无法建立邻居关系
限制邻居关系的因素
1.hello时间/死亡时间
2.特殊区域标记
3.网络掩码
4.认证
DBD包---进行主从关系选举;共享摘要信息;确认(从设备最后会发送一个不包含数据的DBD包进行对主信息的确认)
I---init---如果I位置1,则代表是进行主从关系选举的数据包,不携带摘要信息
M---More---如果M位置1,则代表后面还有更多的DBD包,如果置0,则代表这个是最后一个DBD包
MS---master---如果MS位置1,则代表该设备是主
DBD序号---在DBD报文交互的过程中,会逐次加1,用于确保DBD包报文传输的有序性和可靠性
LSR---链路状态请求报文
链路状态类型,链路状态ID,通告路由器---LSA三元组,通过这三个参数可以确定唯一标定的一条LSA
LSU---链路更新报文
LSACK---链路状态确认报文
OSPF状态机
状态 | 描述 |
---|---|
Down | 初始状态,未检测到邻居活动 |
Init | 收到邻居的Hello包,但对方尚未确认本端存在 |
2-Way | 双向通信确认,邻居关系建立(广播网络中可能停留在此状态,非DR/BDR时) |
ExStart | 主从路由器选举,准备交换DBD包 |
Exchange | 交换DBD包摘要,同步链路状态数据库(LSDB)的目录 |
Loading | 请求并接收缺失的LSA(通过LSR/LSU) |
Full | 邻接关系完成,LSDB完全同步,可执行SPF计算 |
2-way标志着邻居关系的建立
指定路由器(DR)---和MA网络中剩余所有设备建立邻接关系
备份指定路由器(BDR)---和MA网络中剩余所有设备建立邻接关系
MA网络中其余所有的设备称为DRother
条件匹配
若本端或邻居是DR/BDR,继续推进到ExStart
。
若双方均为DROther,则停留在2-Way
状态(无需建立邻接)
DR/BDR选举
1.先比较优先级,优先级大的为DR设备,优先级次大的为BDR设备,默认优先级为1。如果将一个接口的优先级改为0,则这个接口不参与DR/BDR的选举
2.优先级相同,比较route-id
DR/BDR的选举是非抢占模式的,选举时间等同于死亡时间
ExStart---通过未携带数据的DBD包来比较RID来进行主从关系的选举,为主的可以优先选择LSA信息
Attempt---只有在NBMA网络环境中出现,尝试状态,等待对方指定单播邻居,收到对方的hello包之后,将进入到下一个状态
常见故障与状态卡顿
卡顿状态 | 可能原因 | 排查方法 |
---|---|---|
Init | 单向Hello包(ACL过滤、单向链路) | 检查双向Hello包是否包含对方Router ID |
ExStart | MTU不匹配、主从选举失败 | 验证接口MTU一致,抓包查看DBD标志位 |
Loading | LSA请求超时或丢失 | 检查LSU/LSAck是否被丢弃(认证、QoS) |
2-Way | 非DR/BDR的DROther间关系 | 确认是否需要邻接(如无需则正常) |
OSPF工作过程
启动OSPF配置后,OSPF会向本地所有激活OSPF的接口发送hello包,以组播224.0.0.5的形式发送。hello包中将携带本地的RID及本地已知邻居的RID,将收集到的邻居关系记录在邻居表中
邻居关系建立完成后,将进行条件匹配,失败则停留在邻居关系,仅使用hello包活,匹配成功则开始建立邻接关系。首先使用未携带数据包的DBD包进行主从关系选举,然后使用携带数据的DBD包共享数据库摘要信息,之后使用LSR/LSU/LSACK获取未知LSA信息,完成本地的LSDB链路状态数据库建立
最后,将基于本地收集到的LSA信息,生成有向图和最短路径树,计算到达未知网段的路由信息,将计算的路由信息收集到本地的路由表中。
收敛完成后,OSPF依然需要每隔10s进行周期保活
条件匹配
指定路由器(DR)---和MA网络中剩余所有设备建立邻接关系
备份指定路由器(BDR)---和MA网络中剩余所有设备建立邻接关系
MA网络中其余所有的设备称为DRother
OSPF的接口网络类型
网络类型 | 接口网络类型 |
---|---|
BMA | Broadcast(广播),需要进行DR/BDR选举 |
P2P(PPP,HDLC, MGRE,GRE) | P2P,只建立一个邻居,不需要进行DR/BDR选举 |
环回接口 | 只是写作P2P,环回接口的开销值被定义为0,实际没有数据发送 ,学习到环回网段的路由位32位主机路由,可以通过将网络接口类型修改为Broadcast来还原 |
P2MP,可以建立多个邻居,不进行DR/BDR选举,hello时间30,dead时间120,会学习邻居接口的主机路由 | |
NBMA(帧中继网络) | NBMA,可以建立多个邻居,需要进行DR/BDR选举,hello时间30,需要手工建邻 |
相关文章:
OSPF复习
OSPF OSPF---开放最短路径优先协议 动态路由判定依据:选路,收敛速度,占用资源 OSPFV2和RIPV2的相同点: 1.都是无类别的路由协议; 2.都是通过组播来传播信息的;(RIP:224.0.0.9&am…...
AWS S3深度剖析:云存储的瑞士军刀
1. 引言 在当今数据驱动的世界中,高效、可靠、安全的数据存储解决方案至关重要。Amazon Simple Storage Service (S3)作为AWS生态系统中的核心服务之一,为企业和开发者提供了一个强大而灵活的对象存储平台。本文将全面解析S3的核心特性,帮助读者深入理解如何充分利用这一&q…...
pyTorch中 tensorboard的使用
目录 01.导包、 transforms数据转化、torchvision数据集、创建dataloaders、展示图片的封装函数 02定义模型 03定义损失函数与优化器 1.tensorboard的安装 2.tensorboard的使用 2.1添加图片 2.2 添加模型结构图 2.3 添加损失的变化 #pyTorch中的tensorboard 与 tens…...
Android audio(2)-audioservice
AudioService是Android的系统服务(systemservice),由SystemServer负责启动。提供Android APK 所需的非数据通路(playback/capture)相关的audio 功能实现,是binder通信中的server端,与之对应的 C…...
星城幻境:科技与千年文脉的交响诗-长沙
故事背景 故事发生在中国湖南长沙,通过六个充满未来感的城市景观,展现人工智能修复古建筑、生态摩天楼、全息水幕许愿等场景,描绘科技赋能下历史文脉与未来城市的共生图景。 故事内容 从岳麓书院清晨的智能修复到湘江夜空的数字烟花ÿ…...
记录学习的第二十三天
老样子,每日一题开胃。 我一开始还想着暴力解一下试试呢,结果不太行😂 接着两道动态规划。 这道题我本来是想用最长递增子序列来做的,不过实在是太麻烦了,实在做不下去了。 然后看了题解,发现可以倒着数。 …...
sql-labs靶场 less-1
文章目录 sqli-labs靶场less 1 联合注入 sqli-labs靶场 每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。 sql注入的基本步骤 注入点注入类型 字符型:判断闭合方式 (‘、"、’、“”…...
AI-人工智能-基于LC-MS/MS分子网络深度分析的天然产物成分解析的新策略
Anal Chem∣张卫东教授团队开发基于LC-MS/MS分子网络深度分析的天然产物成分解析的新策略 2024年9月23日,海军军医大学张卫东教授团队在Analytical Chemistry(IF6.7)上发表了题为“In-Depth Analysis of Molecular Network Based on Liquid …...
IntelliJ IDEA使用技巧(json字符串格式化)
文章目录 一、IDEA自动格式化json字符串二、配置/查找格式化快捷键 本文主要讲述idea中怎么将json字符串转换为JSON格式的内容并且有层级结构。 效果: 转换前: 转换后: 一、IDEA自动格式化json字符串 步骤一:首先创建一个临…...
【Java设计模式】第8章 单列模式讲解
8-1 单例模式讲解 定义与类型 定义:保证一个类仅有一个实例,并提供一个全局访问点。类型:创建型模式。适用场景 需要确保任何情况下绝对只有一个实例。实际应用: 网站计数器(单服务)。应用配置、线程池、数据库连接池。优点 减少内存开销(仅一个实例)。避免资源多重占…...
【Java设计模式】第4章 简单工厂讲解
4. 简单工厂模式 4.1 简单工厂讲解 定义:由一个工厂对象决定创建哪种产品类的实例,属于创建型模式,但不属于GoF 23种设计模式。适用场景: 工厂类负责创建的对象较少。客户端仅需传入参数,无需关心对象创建逻辑。优点: 客户端只需传入参数即可获取对象,无需知道创建细节…...
Spring Boot 常用依赖介绍
依赖总括 1. 核心依赖:Spring Web、Spring Data JPA、MySQL Driver。 2. 开发工具:Lombok、Spring Boot DevTools。 3. 安全与权限:Spring Security。 4. 测试与文档:Spring Boot Starter Test、Swagger。 5. 性能优化&#…...
判断矩阵A是否可以相似对角化
【例题1】 【例题2】...
第三方软件测试公司进行安全性测试有哪些好处?
在信息技术飞速发展的今天,软件已成为各行业运作的核心组成部分。然而,伴随而来的软件安全问题也愈发显著,因此软件产品安全性测试不容忽视。随着软件市场的激烈竞争,企业为了更好的专心产品开发,会将安全性测试服务交…...
下一代楼宇自控的中枢神经:ARM终端的生态
某跨国半导体工厂的洁净车间突然触发气体泄漏报警。此时,ARM应急广播终端在200毫秒内完成全楼宇语音播报,同步联动门禁系统解锁逃生通道,指挥中心大屏自动弹出事故区域监控画面——这套价值27万元的预警系统,在投产首年就避免了可…...
R语言进行判别分析
Fisher判别法、距离判别法、Bayes判别法基本理论、方法: Fisher判别法 理论基础: Fisher判别法旨在通过选择合适的投影方向,最大化不同类别之间的类间差异性,同时最小化类内差异性。这种投影方向使得在低维空间中样本点的类别可…...
Nacos 服务发现的流程是怎样的?客户端如何获取最新的服务实例列表?
服务发现是微服务架构的核心组件,它允许一个服务(消费者)动态地找到它需要调用的另一个服务(提供者)的网络地址(IP 和端口),而无需硬编码这些地址。 整体流程概览: 服务提供者 (Pr…...
Java全栈项目--校园快递管理与配送系统(5)
源代码续 <template><div class"app-container"><el-card class"box-card"><div slot"header" class"clearfix"><span>通知统计</span><div class"header-operations"><el-d…...
UE5 本地化
文章目录 打开本地化面板设置本地化翻译设置文本收集路径添加语言收集需要翻译的文本手动翻译导入导出编译 使用本地化启动代码修改语言 打开本地化面板 UE4: UE5: 设置本地化翻译 设置文本收集路径 UE5可以自动帮我们收集需要显示的文本ÿ…...
用c语言写一个linux进程之间通信(聊天)的简单程序
使用talk 用户在同一台机器上talk指令格式如下: talk 用户名ip地址 [用户终端号] 如果用户只登录了一个终端,那么可以不写用户终端号,如: talk userlocalhost可以使用who指令来查看当前有哪些用户登录,他的终端号…...
同时支持Vue2/Vue3的图片懒加载组件(支持懒加载 v-html 指令梆定的 html 内容)
🚀 vue-lazyload-imgs(LazyLoadImgs) 组件简介 详情见:https://npmjs.com/package/vue-lazyload-imgs 安装方法: npm i vue-lazyload-imgs(不要安装为开发依赖,应为产品依赖) 适用环…...
Qt容器类在元对象系统中使用
解释 “QVector没有被注册到Qt的元对象系统中”这句话的意思是:QVector<double>这种数据类型没有被Qt的元对象系统(Meta-Object System)识别和管理。Qt的元对象系统是Qt框架的核心部分,它提供了信号与槽机制、动态属性系统…...
Qt中的信号与槽及其自定义
信号源:哪个控件发的信号 信号的类型:用户进行不同的操作就会触发不同的信号 如点击按钮,在输入框移动光标,勾选一个复选框,选 择一个下拉框 信号的处理方式:槽(slot)----也就是函数,Qt中用con…...
【已完结STM32】--自学江协科技笔记汇总
以下学习笔记代码均来自b站江协科技视频 笔记汇总完结 文章笔记对应江科大视频新建工程【2-2】新建工程江科大STM32-GPIO输出 点亮LED,LED闪烁,LED流水灯,蜂鸣器(学习笔记)_unit32-t rcc-apb2periph-CSDN博客 【3-1】…...
科技快讯 | 索诺瓦携手清华大学共筑听力无障碍未来;中国探月工程总设计师:未来月球上能打电话;Shopify要求员工证明AI无法取代其工作
索诺瓦携手清华大学共筑听力无障碍未来 2024年末,60岁以上人口超3.1亿,听力损失比例高达11%。清华大学无障碍发展研究院与索诺瓦集团深化合作,共同推动听力无障碍环境建设。2023年9月,《无障碍环境建设法》实施,2024年…...
[实战] 天线阵列波束成形原理详解与仿真实战(完整代码)
天线阵列波束成形原理详解与仿真实战 1. 引言 在无线通信、雷达和声学系统中,波束成形(Beamforming)是一种通过调整天线阵列中各个阵元的信号相位和幅度,将电磁波能量集中在特定方向的技术。其核心目标是通过空间滤波增强目标方…...
北京自在科技:让万物接入苹果Find My网络的″钥匙匠″
在AirTag掀起全球防丢热潮的今天,越来越多的第三方产品开始接入苹果Find My网络——从充电宝到电动车,从行李箱到保温杯,用户只需打开iPhone的「查找」App,就能实时定位这些物品。 北京自在科技有限责任公司早在苹果推出Find My开…...
区块链是怎么存储块怎么找到前一个块
前言:学习区块链的过程中在想怎么管理区块链呢 📌 推荐项目回顾: 👉 Jeiwan 的 blockchain_go 项目 GitHub 地址:https://github.com/Jeiwan/blockchain_go ❓它是怎么存储区块 & 找前一个区块的? 项…...
聚类算法 ap 聚类 谱聚类
AP聚类(Affinity Propagation Clustering)是一种基于消息传递的聚类算法,由Brendan J. Frey和Delbert Dueck于2007年提出。与传统的聚类算法(如K-Means)不同,AP聚类不需要预先指定聚类数量,而是…...
习题与正则表达式
思路: 二分查找: left 1(最小可能距离),right L(最大可能距离)。 每次取 mid (left right) / 2,判断是否可以通过增设 ≤ K 个路标使得所有相邻路标的距离 ≤ mid。 贪心验证…...
数据库管理工具实战:IDEA 与 DBeaver 连接 TDengine(一)
一、引言 在当今数字化时代,数据如同企业的生命线,而数据库则是承载这些宝贵数据的关键基础设施。TDengine 作为一款高性能的时序数据库,在物联网、工业互联网、车联网、IT 运维等众多领域中发挥着举足轻重的作用。它以其卓越的性能、高效的…...
聚类Clustering和分类Classification的区别
目的: 聚类:旨在将数据集中的样本分成若干组(簇),使得同一组内的样本在某种意义上更相似,而不同组的样本差异更大。聚类是一种探索性分析,用于发现数据中的自然结构。分类:旨在根据已…...
对比 redis keys 命令 ,下次面试说用 scan
Redis SCAN 命令使用指南 SCAN 是 Redis 提供的一种非阻塞迭代器命令,用于逐步遍历 Redis 数据库中的键。相比于 KEYS 命令,SCAN 不会一次性加载所有键,因此对性能的影响较小,适合在生产环境中使用。 以下是关于 SCAN 的详细用法…...
【Java设计模式】第6章 抽象工厂模式讲解
6. 抽象工厂模式 6.1 抽象工厂讲解 定义:提供一个接口创建一系列相关或依赖对象,无需指定具体类。核心概念: 产品等级结构:同一类型的不同产品(如Java视频、Python视频)。产品族:同一工厂生产的多个产品(如Java视频 + Java手记)。适用场景: 需要创建多个相关联的产品…...
设计模式 - 代理模式
代理模式 代理模式是一种结构型设计模式,它允许你提供一个代理对象来控制对另一个对象的访问。代理模式可以在不改变原始对象的情况下,增强或控制对原始对象的访问。代理模式通常用于延迟加载、访问控制、日志记录、性能监控等场景。 1.静态代理 静态…...
Unity-Xlua热更和AssetBundle详解
从今天开始我们深入Unity的组件,最近的一系列事让我明白学习技术不能只有广度,如走马观花,虽然你可能确实学到了皮毛,但是没有足够深厚的理解,是无法融入自己的东西的,那么你就只是在用别人的工具而不是自己…...
【企业级数据安全】掌握高性能Log4j2敏感信息脱敏方案
前言 在数据安全合规日益严格的今天,日志中的敏感信息保护已成为企业IT建设的必备环节。本文带您深入了解如何打造一套高性能、可实时配置的Log4j2日志脱敏插件,轻松应对各类敏感数据保护需求,让您的系统既满足合规要求,又不牺牲…...
力扣刷题——606.根据二叉树创建字符串
给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映…...
图像处理中的 Gaussina Blur 和 SIFT 算法
Gaussina Blur 高斯模糊 高斯模糊的数学定义 高斯模糊是通过 高斯核(Gaussian Kernel) 对图像进行卷积操作实现的. 二维高斯函数定义为 G ( x , y , σ ) 1 2 π σ 2 e − x 2 y 2 2 σ 2 G(x, y, \sigma) \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 y^2}{2\sigma^2}} G(x…...
AWS区块链游戏场景技术解决方案:全球节点与去中心化架构实践
一、区块链游戏的技术挑战与架构需求 区块链游戏作为Web3领域的重要应用场景,其技术架构需要满足以下核心需求: 分布式账本的高效同步与共识验证 智能合约的安全执行环境 全球玩家的低延迟交互体验 动态扩展的节点网络支持 海量NFT资产的可靠存储 …...
AWS VPC深度解析:构建安全可靠的云网络基础设施
1. 引言 在云计算时代,网络基础设施的重要性不言而喻。Amazon Web Services (AWS) 的Virtual Private Cloud (VPC)为用户提供了一个强大而灵活的网络环境,使他们能够在AWS云中构建安全、可扩展的应用程序。本文将全面剖析AWS VPC的核心特性,帮助读者深入理解如何利用VPC构建高…...
青少年编程与数学 02-016 Python数据结构与算法 08课题、图
青少年编程与数学 02-016 Python数据结构与算法 08课题、图 一、图1. 图的基本概念1.1 定义1.2 顶点和边1.3 图的分类1.4 特殊术语 2. 图的表示方法1. 邻接矩阵(Adjacency Matrix)2. 邻接表(Adjacency List)3. 边列表(…...
微信小程序:动态表格实现,表头单元格数据完全从data中获取,宽度自定义,自定义文本框,行勾选,样式效果,横向滚动表格(解决背景色不足的问题)等
一、样式效果 二、代码 1、wxml <view class"line flex flex-center"><view class"none" wx:if"{{info.length 0}}">暂无料号</view><view wx:else class"table-container"><!-- 动态生成表头 -->&…...
MySQL学习笔记集--游标
游标 在MySQL中,游标(Cursor)是一种数据库对象,它允许您逐行处理查询结果集。游标通常与存储过程一起使用,因为它们需要在存储过程或函数中声明和操作。游标的使用涉及几个步骤:声明游标、打开游标、从游标…...
Microsoft Defender Antivirus Service服务占用CPU过高
下载火绒安全,用它替代 Microsoft Defender,并关闭 Microsoft Defender 两步禁用Windows Defender Antivirus Service_microsoft defender antivirus service-CSDN博客 Windows10/11家庭版 关闭方法 按 ‘Win键R’,输入 “regedit”&#…...
Ansible(7)——管理机密与事实
目录 一、管理机密: 1、Ansible Vault : 2、ansible-vault 命令行工具: (1)创建加密文件: (2)查看加密文件: (3)编辑现有加密文件…...
consul服务注册与发现(go)-学习笔记
参考博客 1、服务实例接口与默认实现 type ServiceInstance interface {// 获取服务实例的唯一IDGetInstanceId() string// 获取服务IDGetServiceId() string// 获取服务实例的主机名或IP地址GetHost() string// 获取服务实例的端口号GetPort() int// 判断服务实例是否使用HT…...
golang-defer延迟机制
defer延迟机制 defer是什么 defer是go中一种延迟调用机制。 执行时机 defer后面的函数只有在当前函数执行完毕后才能执行。 执行顺序 将延迟的语句按defer的逆序进行执行,也就是说先被defer的语句最后被执行,最后被defer的语句,最先被执…...
字符串哈希算法详解:原理、实现与应用
字符串哈希是一种高效处理字符串匹配和比较的技术,它通过将字符串映射为一个唯一的数值(哈希值),从而在O(1)时间内完成子串的比较。本文将结合代码实现,详细讲解前缀哈希法的工作原理,并通过流程图逐步解析…...
python-Leetcode 65.搜索旋转排序数组
题目: 整数数组nums按升序排列,数组中的值互不相同 在传递给函数之前,nums在预先未知的某个小标K上进行了旋转,使数组变为[nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]],小标从0开始计数。…...