OSPF协议
基础知识
OSPF:开放式最短路径优先协议 (无类别链路状态IGP动态协议)
OSPF的特点:
1.OSPF将自治系统划分为逻辑上的区域,使用LSA来发布路由信息,并通过OSPF报文在区域内路由器之间交互建立链路状态数据库和路由表
2.支持等开销的负载均衡:如果存在多条到达同一目的地的路径,并且这些路径的开销(Cost)值相同,OSPF可以在这些路径之间分配流量,从而是实现负载均衡
3.基于组播进行更新 224.0.0.5 224.0.0.6
4.支持触发更新:每30min进行一次周期更新
5.需要结构化的部署:区域划分 地址规划
区域划分的规则:
1.星型结构 骨干区域为0区 大于0为非骨干区域 所有非骨干区域必须接在骨干区域上
2. ABR(域间路由器) 两个区域互联时 必须存在ABR(同时工作在两个区域)
Router ID
1.Router ID 路由器标识符 用于在一个OSPF域中唯一的标识一台运行OSPF协议的路由器。
2.Router ID 的设定可以通过手工配置的方式进行,或使用系统配置的方式生成。
3.定义rid值时,建议使用IP地址,全网需要唯一,手工配置,要是不适用手工配置使用系统自动生成则会自动配置环回的最大数值,如果没有环回存在,则选择物理接口的最大数值。
OSPF协议5中报文
Hello报文:用于邻居间的发现 关系建立 和 周期保活
DD报文:数据库表述包 用于携带本地数据库目录
LSR报文:链路状态请求包 在查看完对端邻居的DD包后基于本地的LSDB进行查询随后发出
LSU报文:链路状态更新包 用于携带各种LSA信息
LSAck报文:链路状态确认包 用于确定收到对端的信息
距离矢量协议:
运行距离矢量协议的路由器周期性的泛洪自己的路由表,通过路由的交汇,每台路由器都从相邻的路由器学习到路由条目,并且加载到自己的路由表
对于网络中所有路由器而言,路由器并不清楚网络的拓扑,只是简单的要知道去往某个目的地方在哪儿,距离多远,这就是距离矢量算法的本质。
链路状态协议:
与距离矢量协议不同,链路状态协议通告的是链路状态信息而不是路由表,运行链路状态协议的路由器之间首先会建立一个协议的邻居关系。
然后彼此之间开始交互LSA(链路状态通告)。每台路由器都会产生LSA,路由器将收到的LSA信息放入自己的LSDB(链路状态数据库)中。路由器通过LSDB,掌握全网的拓扑信息。最后,路由器将使用SPF算法,后将最优路径加载于本地路由表中。
邻居和DR/BDR选举
邻居关系:OSPF路由器通过发送Hello报文来发送和维护邻居关系。
DR和BDR选举:在多路访问网络中,为了减少链路状态更新的数量,OSPF会选举指定路由器(DR)和 备份指定路由器(BDR)
度量值和路由计算
OSPF度量值:主要基于链路宽带计算,宽带越高,cost值越低。
cost=开销值=参考带宽/接口带宽;默认的参考带宽为100M;整段路径cost值之合最小为最佳。
若接口带宽大于参考带宽,则度量值为1,将会导致选路不佳,故在接口带宽大于参考带宽的网络中,可以进行认为修改参考带宽。
SPF算法:OSPF使用迪杰斯特拉来计算最短路径树
流程图总结
OSPF状态机
Down状态 :未被激活的状态,一旦本地发出hello包则进入下一个状态机。
Init状态: 标识处于初始化状态。
Tow-Way状态: 双向通讯的建立,表示建立了邻居关系 。
匹配条件
Exstart状态:预启动 使用不携带数据库目录的DD包进行主从选举,RID大者为主,优先进入下一个状态机。
Exchange状态:准交换 携带具体的数据库目录的DD包进行目录交换 需要ack确认
Loading状态:加载,在查看完对端的DD包后,根据本地的LSDB查询,随后使用LSR包区索要,对端则使用LSU包进行回复,最后LSack包进行确认。
Full状态:转发 邻接关系的建立
OSPF的工作过程
1.启动配置已完成后,本地组播224.0.0.5发送hello包;
2.Hello包将携带本地rid值,及本地已知的所有邻居的rid值;若接收到来自对端的hello包中,存在本端的rid,那么视为双方认识,邻居关系建立;生成邻居表。
3.邻居关系建立之后,开始条件匹配,若匹配失败则永远停留于邻居关系,仅hello包保活即可。
4.若匹配成功,则表明可以建立邻接关系
5.先使用不携带数据库目录的DD包进行主从选举,rid大者为主,优先共享数据库目录;
6.基于对端的DD包中的数据库目录,查询本地的链路状态数据库,筛选出需要补充的LSA信息。
7.之后使用LSR包 LSU包以及LSack包进行交互来获取未知的LSA信息。最终生成数据库表(链路状态数据库表)
8.之后启用SPF算法,基于本地的LSDB生成有向图。在计算出最短路径,基于树形结构找到本地为起点到达目标网段的最短路径,加载于路由表中;
9.收敛完成后,hello包周期保活即可
10.每30min邻接关系之间,在进行DD的比对,若一致则继续保活,若不一致,则重新收敛。
结构突变:
1.新增一个网段:增加直接新增网段的设备,直接使用更新包告知邻接关系,需要ack确认。
2.断开一个网段:直接断开网段,直接使用更新包告知邻接关系,需要ack确认。
3.无法连接:hello time 10s, dead time 40s ,时间到了就删除邻居信息。
OSPF的基础配置
[R1]ospf 1 router-id 1.1.1.1 定义进程为 1 rid为1.1.1.1
[R1-ospf-1]area 0 进入0区
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
反掩码: 掩码反过来
<R1>display ospf peer 查看详细邻居关系
<R1>display ospf peer brief 查询邻居表
<R1>display ospf lsdb 查询链路状态数据库目录
<R1>display ospf lsdb ruoter 2.2.2.2 打开目录中的 router 2.2.2.2
[R1]display ip routing-table protocal ospf 查询由ospf协议生成的路由表
[R1]display ospf routing 查询由OSPF生成的路由
[R1-ospf-1]bandwidth-reference 1000 修改参考带宽为1000M/s
(注意:一旦修改,全网所有设备都必须修改一致)
OSPF的扩展配置
从邻居关系建立成为邻接关系的条件 (网络类型----两个类型)
1.点到点:在一个网段内仅支持存在两个节点
2.MA:多路访问---在一个网段内,存在的节点不限制
在MA网络中,若所有的设备均称为邻接关系,将可能出现大量的重复更新;故进行DR/BDR的选举,所有非DR/BDR的设备间仅维持邻居关系即可。非DR/BDR的设备统称为DRother
选举规则:
1.先比较参选接口的优先级,默认为1; 0-255 大为优
2.若参选接口优先级相同,则比较参选接口的RID,大为优
[R1-GigabiEtherent0/0/0]ospf dr-priority 2 调整参选接口DR设备的优先级为2
注意:DR/BDR的选举非抢占性质,故所需要网段内部重新选举,需要重启所有参选的OSPF进程;若参选接口的优先级为0,则将视为放弃选举。一个网段至少存在一台DR。
<R1>reset ospf process 重启OSPF进程
手工认证: 从邻居间的接口上定义安全密钥
[R1-GigabitEtherent 0/0/0]ospf authentication-mode md5 1 cipher 123456
手工汇总---区域汇总:在ABR上将A区域的路由共享到B区域时,方可进行手工汇总
[R2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.255.255.0在0区中 汇总一条 1.1.0.0 255.255.255.0 的路由条目
被动接口(沉默接口):仅接受不发送路由信息的接口,不能在路由器之间使用
[R1-ospf-1]silent-interface g0/0/1 定义该接口为沉默接口
使用情景:
1.控制路由传播:在网络设计中,可能需要限制某些接口上的路由信息传播,以避免不必要的路由更新或者维护网络的逻辑分区。例如,可以在连接到终端设备的接口上配置沉默接口,以防止路由信息泄露到用户网络中。
2.优化网络性能:通过使接口成为沉默接口,可以减少网络中的路由协议消息数量,从而降低网络负载并提高性能。这对于高流量或关键业务网络尤为重要。
3.防止路由环路:在某些情况下,为了防止路由环路的发生,可能需要禁止接口参与路由协议的邻居关系建立。沉默接口可以实现这一点,因为它们不会发送或接收Hello报文,从而无法与其他设备建立邻居关系。
4.网络安全:在安全敏感的环境中,沉默接口可以作为一种安全措施,防止外部设备获取内部网络的路由信息,增加网络的安全性。
5.简化路由表:在某些网络拓扑中,可能不希望某个接口的路由信息被广泛传播。通过配置沉默接口,可以保持路由表的简洁,避免不必要的路由条目。
6.网络测试和故障排除:在进行网络测试或故障排除时,有时需要暂时禁用接口上的路由协议,以便集中测试或隔离问题。沉默接口可以快速实现这一需求。
加快收敛---改计时器
Hello time 10s
dead time 40s
修改一台路由器某个接口的hello time 时,该接口的dead time 将自动关闭匹配
[R1-GigabitEtherent0/0/0]ospf timer hello 修改 hellotime
[R1-GigabitEthernet0/0/0]ospf timer dead 修改deadtime
缺省路由
在边界路由器上进行配置,配置一条缺省路由后,将自动向内部设备进行发送,生成缺省路由,并指向边界路由器方向。
[R3-ospf-1]default-route-advertise always 缺省路由
相关文章:

OSPF协议
基础知识 OSPF:开放式最短路径优先协议 (无类别链路状态IGP动态协议) OSPF的特点: 1.OSPF将自治系统划分为逻辑上的区域,使用LSA来发布路由信息,并通过OSPF报文在区域内路由器之间交互建立链路状态数据库和路由表 2.支持等开销的负载均衡…...

行为设计模式 -观察者模式- JAVA
观察者模式 一.简介二. 案例2.1 抽象主题(Subject)2.2 具体主题(Concrete Subject)2.3 抽象观察者(Observer)2.4 具体观察者(Concrete Observer)2.5 测试 三. 结论3.1 优缺点3.2 使用…...

在阿里工作是一种什么体验?
很多人都对在阿里工作感到好奇,今天就来给大家分享一下在阿里工作是一种什么体验~ 首先,先来介绍一下阿里的职位等级划分标准。 简单来讲,阿里的职位等级可以认为是 P 序列和 M 序列,但目前 M 序列已经不太对中下层员工开放了&…...

828华为云征文|华为云Flexus云服务器X实例——uniapp功能开发、搭建股票系统选择用什么服务器比较好?
在二次开发、安装搭建股票系统时,选择华为云Flexus X服务器是一个值得考虑的优质选项。以下是一些具体的建议: 测试环境:Linux系统CentOS7.6、宝塔、PHP7.3、MySQL5.7,根目录public,伪静态thinkphp,开启ssl…...

电子电路元件器介绍与选型——晶振
一、晶振 在我们使用嘉立创的时候,经常会看到晶振接到两个电容,这两个电容毫无疑问是滤波的,整个晶振其实就是一个振荡器,但这个振荡器会将其他频率给过滤掉,只保留一个频率也就是晶振的标称频率。当然上面讲的很明显是…...

【IEEE PDF eXpress】格式不对
目录 一、问题二、解决方法 一、问题 word的文档,用IEEE PDF eXpress网站生成pdf后,提交论文出现错误: Document validation failed due to the following errors: Content exceeds IEEE template margins for its format (Page 1:Bottom).…...

OpenAI全新多模态内容审核模型上线:基于 GPT-4o,可检测文本和图像
在数字时代,内容安全问题愈发受到重视。9月26日,OpenAI 正式推出了一款全新的多模态内容审核模型,名为 “omni-moderation-latest”。 该模型基于最新的 GPT-4o 技术,能够准确地识别检测有害文本图像。这一更新将为开发者提供强大…...

Visual Studio 字体与主题推荐
个人推荐,仅供参考: 主题:One Monokai VS Theme 链接:One Monokai VS Theme - Visual Studio Marketplacehttps://marketplace.visualstudio.com/items?itemNameazemoh.onemonokai 效果: 字体:JetBrain…...

信息学奥赛一本通 1416:【17NOIP普及组】棋盘 | 洛谷 P3956 [NOIP2017 普及组] 棋盘
【题目链接】 洛谷 P3956 [NOIP2017 普及组] 棋盘 ybt 1416:【17NOIP普及组】棋盘 【题目考点】 1. 深搜:深搜回溯 2. 深搜剪枝:最优化剪枝 【解题思路】 搜索从左上角到右下角的所有走法中花费金币最少的走法。 需要使用深搜回溯&…...

UE4完整教程 UE4简介 UE4学习攻略及文件格式
开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费!全文干货。 UE4简介学习攻略UE4Demo代码面试内容资源-CSDN文库https://download.csdn.net/download/m0_72216164/89825102 工作招聘无领导小组面试全攻略最常见面试题(第一部分)共有17章+可…...

JVM内存回收机制
目录 1.JVM运行时数据区 2.JVM类加载过程 3.双清委派模型 4.垃圾回收机制(GC) 找出谁是垃圾方案一:引用计数 找出谁是垃圾:方案二,可达性分析 释放垃圾的内存空间 判断垃圾:jvm依据对象的年龄对 对象…...

中国身份证号码校验
题目描述 第二届河南省最美教师评选开始了,每一位同学都可以投票选出你支持的人选,但是为了防止刷票,必须通过身份验证才可投票。负责投票平台后台的老大爷希望你能帮他验证身份证号的合法性,防止那些熊孩子随意刷票,…...

【Kubernetes】常见面试题汇总(五十四)
目录 120.创建 init C 容器后,其状态不正常? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kubernetes】的生产…...

不懂外语也能无障碍交流?探索4款超好用中英翻译工具
嘿,各位外贸流程的小伙伴们,今儿咱们来聊聊那些翻译神器,看看它们在中英文互译这条路上,是怎么给我们这些天天跟洋文打交道的哥们儿姐们儿减轻负担的。我亲身体验了福昕翻译在线、福昕翻译大师、海鲸AI翻译还有腾讯翻译君…...

C++ WebDriver扩展
概述 WebDriver协议基于HTTP,使用JSON进行数据传输,定义了client与driver之间的通信标准。无论client的实现语言(如Java或C#),都能通过协议中的endpoints准确指示driver执行各种操作,覆盖了Selenium的所有功…...

WeChat_DevTools 断点调试方法总结
新建工程,以小程序 login 调试为例,代码如下: // 登录wx.login({success: res > {// 发送 res.code 到后台换取 openId, sessionKey, unionIddebugger;resThis this;wx.showModal({title: 登录成功,content: res.code res.code,comple…...

水波荡漾效果+渲染顺序+简单UI绘制
创建场景及布置 创建新场景Main,在Main场景中创建一个plane物体,命名为WaterWavePla,具体数值及层级面板排布如下: 编写脚本 创建一个文件夹,用于存放脚本,命名Scripts,创建一个子文件夹Effect,存放特效相关脚本,创建…...

深度学习中的结构化概率模型 - 使用图来描述模型结构篇
序言 在深度学习的探索之路上,结构化概率模型以其独特的视角和强大的表达能力,成为了研究复杂数据关系的重要工具。这一模型的核心在于其巧妙地利用图来描述模型结构,将随机变量间的复杂交互关系可视化、结构化。图的引入,不仅为…...

C语言中的栈帧
------------------------ | 局部变量区 | | (根据变量声明而变化) | ------------------------ | 参数区 | | (根据函数原型而变化) | ------------------------ | (可选) 保存寄存器区 | | (编译器/架构特定) | -…...

vue数组根据某些条件进行二次切割
原本的一个一维数组首先 1.根据depnm和bed的不同会分成不同的数组 2.在条件1的基础上分割出来的数组如果存在里面有isBgn1的会进行二次分割 比如原数组是[{depnm:1,bed:2,isBgn:0},{}……] 根据条件一会组成一个二维数组得到 [ [①depnm值一致的一个一维数组], [②bed值一…...

Yolov8改进轻量级网络Ghostnetv2
1,理论部分 轻量级卷积神经网络 (CNN) 专为移动设备上的应用程序而设计,具有更快的推理速度。卷积运算只能捕获窗口区域中的局部信息,这会阻止性能进一步提高。将自我注意引入卷积可以很好地捕获全局信息,但会在很大程度上阻碍实际速度。在本文中,我们提出了一种硬件友好…...

【Spring】@RequestMapping、@RestController和Postman
文章目录 1.RequestMapping 注解介绍2. RequestMapping 使用3. RequestMapping 是 GET 还是 POST 请求?GET 请求POST 请求指定 GET/POST 方法类型 2. Postman 介绍1. 创建请求2. 传参介绍1. 普通传参2. form-data3. x-www-form-urlencoded form 表单,对应…...

【深度学习基础模型】回声状态网络(Echo State Networks, ESN)详细理解并附实现代码。
【深度学习基础模型】回声状态网络(Echo State Networks, ESN)详细理解并附实现代码。 【深度学习基础模型】回声状态网络(Echo State Networks, ESN)详细理解并附实现代码。 文章目录 【深度学习基础模型】回声状态网络…...

Redis的基础认识与在ubuntu上的安装教程
来自Redis的自我介绍 我是Redis,一个中间件,职责是把数据存储在内存上,因此可以作为数据库、缓存、消息队列等场景使用。由于可以把数据存储在内存上,因此江湖人称快枪手 1.redis的功能特性 (1)数据在内存…...

鸿蒙harmonyos next flutter混合开发之ohos工程引用 har 文件
创建鸿蒙原生工程MyApplication。创建flutter module,生成har文件,并且将flutter module中.ohos文件entryability/EntryAbility.ets、pages/Index.ets分别替换MyApplication中的。 # 1. 创建 flutter子模块工程 flutter create -t module my_flutter_…...

react-问卷星项目(5)
实战 路由 路由设计,网址和页面的关系,就是从业务上分析需要哪些页面哪些页面内容可以抽离,业务流程要有入有出增加页面和Layout模版,模版就是抽离页面公共部分,比如都有顶部或者左侧导航,直接上代码&…...

08.useInterval
在 React 应用中,实现定时器功能通常需要使用 setInterval() 和 clearInterval(),这可能会导致代码复杂和难以维护。useInterval 钩子提供了一种声明式的方法来实现定时器功能,使得定时器的管理更加简单和直观。这个自定义钩子不仅简化了定时器的使用,还解决了一些常见的定…...

【Android 源码分析】Activity生命周期之onDestroy
忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。 – 服装…...

增强现实中的物体识别与跟踪
增强现实(AR)中的物体识别与跟踪是实现虚拟内容与现实世界无缝融合的关键技术。以下是该领域的主要技术和方法概述: 1. 物体识别 1.1 特征提取 SIFT、SURF、ORB:传统的特征提取算法用于识别图像中的关键点并生成描述符…...

移动端实现下拉刷新和上拉加载(内含案例)
在前端开发中,上拉加载和下拉刷新常用于实现内容的动态加载,尤其在移动端的应用中。下面我将提供一个简单的示例和逻辑说明。 1. 逻辑说明: 下拉刷新: 用户向下拖动页面顶部,触发一个事件,刷新当前内容。需…...