OSPF 开放式最短路径优先协议

news2024/11/15 20:56:29

目录

技术产生原因:因为RIP存在不足

OSPF优点:

RIPV2和OSPFV2比较:

相同点:

不同点:

OSPF的结构化部署 --- 区域划分

区域划分的主要目的:

区域边界路由器 --- ABR :

区域划分的要求:

OSPF的数据包(共5个)

RID:

RID的生成方式:

OSPF的状态机:

OSPF的工作过程

邻居表:

数据库表:

关系选举:

条件匹配

结构突变情况:

OSPF的基本配置

1,启动OSPF进程

2,创建区域

3,宣告

路由相关信息:

拓展配置


技术产生原因:因为RIP存在不足

OSPF存在3个版本 :

OSPFV1(实验室阶段就夭折了)

OSPFV2 --- 适用IPV4

OSPFV3 --- 适用IPV6

OSPF优点:

1,OSPF本身是链路状态型协议,所以,计算出的路径不会存在环路;并且使用带宽作为选

路依据,所以,在选路的角度上优于RIP;

2,OSPF的计时器时间也短于RIP,所以,收敛速度会快于RIP;

3,因为OSPF协议传递的是LSA信息,所以,单个数据包的资源占用远大于RIP;但是,因为

RIP存在30S一次的周期更新,而OSPF并没有如此高频率的周期更新,并且,OSPF协议存在

许多针对资源占用的优化措施,所以,从整体的角度看,OSPF资源占用上应该小优于RIP。

RIPV2和OSPFV2比较:

相同点:

1,OSPFV2和RIPV2一样,都是无类别的路由协议,都支持VLSM和CIDR;

2,OSPFV2和RIPV2一样,都是使用组播发送数据;

组播地址:

RIPV2 --- 224.0.0.9

OSPFV2 --- 224.0.0.5和224.0.0.6

3,OSPFV2和RIPV2都支持等开销负载均衡;

不同点:

RIP协议只能适用于小型网络环境中,而OSPF协议可以应用在中大型网络环境中,即

OSPF协议可以实现结构化部署(划分区域)。

OSPF的结构化部署 --- 区域划分

区域划分的主要目的:

区域内部传递拓扑信息---LSA,区域之间传递路由信息。( --- 链路状态型协议的距离矢量特征)

如果一个OSPF网络只存在一个区域,这个网络称为单区域OSPF网络

如果一个OSPF网络存在多个区域,这样的网络称为多区域OSPF网络

区域边界路由器 --- ABR

同时属于多个区域,一个接口对应一个区域,必须有一个接口在区域0中,将区域内的拓扑信息收集计算成路由信息,之后进行传递。

(总结:区域之间可以存在多个ABR设备,一个ABR设备可以处于多个区域。)

区域划分的要求:

1,区域之间必须存在ABR设备;

2,区域划分必须按照星型拓扑结构进行划分。(星型拓扑的中间区域就是骨干区域。)

为了方便区分和标识不同的区域,我们给每一个区域都定义一个区域ID---area id

        area id 由 32位二进制构成,有两种表示方法:

                1,直接使用十进制进行表示;

                2,使用点分十进制进行表示。(骨干区域的区域ID定义为区域0。)

OSPF的数据包(共5个)

(OSPF协议具有周期更新机制,每个30MIN发送一次。)

1.hello包 :包携带自己的router id(RID)周期性的发送,建立和保活邻居关系。

        发送hello的周期时间 = 10S(以太网)/ 30S

        死亡时间(dead time) = 4倍的hello时间

(当周期时间不同时无法建立联系)

2.DBD包 :数据库(链路状态数据库 (LSDB))描述报文,包携带LSA摘要 ---- “菜单”

        LSA:装载和传输链路状态信息。(有多种类型)

3.LSR包 : 链路状态请求报文,基于DBD包,请求未知的LSA信息。 --- “点菜”

        LSA三元组:链路状态类型、链路状态ID、通告路由器。

                (通过三个参数能够标识出一条唯一的LSA)

4.LSU包 : 链路状态更新报文 --- 真正携带LSA的数据包 --- “上菜”

5.LSACK包 : 链路状态确认报文 --- 确认包

RID:

区分和标识不同的路由器 ,本质由32位二进制构成

特点:1,格式统一;2,全网唯一

RID的生成方式:

1,手工配置

2,自动生成:

首先,设备将优先选择环回接口的IP地址作为RID,如果存在多个环回接口,则将选择所有环回接口中IP地址最大的作为RID;如果没有配置环回接口,则将使用设备的物理接口的IP地址作为RID,如果物理接口存在多个,则选择IP地址最大的作为RID;

LSA

(有十一种之多,这里只介绍6种)

OSPF的状态机:

FULL 状态:标志着邻接关系的建立。 ---- 主要目的是为了和之前的邻居关系进行区分,邻居只能通过hello包进行保活,而邻接之间,可以交换LSA信息。

down状态:启动ospf之后,发出hello包进入下一个状态

init(初始化)状态:收到对方的hello包中包含自己本地的RID,则进入到下一个状态

Two-way(双向通信):标志着邻居关系的建立

        条件匹配:匹配成功,则进入到下一个状态;失败则停留在邻居状态,仅使用hello包进行周

期保活

exstart(预启动)状态:通过发送没有携带数据的DBD包来进行主从关系选举,比较RID来进行选举,RID大的为主,为主可以优先进入后面的状态

exchange(准交换)状态:交换携带数据(摘要信息)的DBD包进行LSDB数据库目录共享

loading(加载)状态:基于对端发送的DBD包,使用LSR/LSU/LSACK交换未知的LSA信息

OSPF的工作过程

邻居表:

启动配置完成,ospf协议向本地所有运行协议的接口以组播的形式(224.0.0.5)发送hello包;hello包中携带自己本地RID,以及本地已知的邻居的RID。之后,将收集到的邻居关系记录在一张表中。

数据库表:

邻居关系建立完成后,进行条件匹配。失败则停留在邻居关系,仅hello包进行保活。匹配成功,则开始建立邻接关系。

首先,使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包共享目录信息,然后,基本DBD包,通过LSR/LSU/LSACK获取未知的LSA信息,将所有的LSA信息保存本地的LSDB数据库。最后,基于LSDB,使用SPF算法进行计算,得到未知网段的路由信息,将其加载到路由表。收敛完成后,周期性的发送hello包进行保活,每30min一次周期更新。

关系选举:

DR和BDR(DR和BDR是接口的概念)

DR (指定路由器):和广播域内其他设备建立邻接关系

BDR (备份指定路由器) : 和广播域内其他设备建立邻接关系,称为DR设备的备份。

(一个广播域内部,至少需要4台设备才能看到邻居关系。)

条件匹配

在一个广播域中,若所有设备均为邻接关系,将出现大量的重复更新;需要进行DR/BDR的选举,所有DRother之间,仅维持邻居关系即可。

DR/BDR的选举规则 --- 1,先比较优先级,优先级最大的为DR,次大的为BDR;

优先级默认为1 --- 主要目的让人为修改

INTEGER<0-255> Router priority value

注意:如果将一个接口的优先级设置为0,则代表这个接口将放弃DR/BDR的选举。如果优先级相同,则比较RID。RID大的路由器所对应的接口为DR,次大的为BDR。DR/BDR的选举是非抢占模式的 ---- 一旦角色选举出来,则将无法抢占。 ---- 选举时间:40s(等同于死亡时间)

<r1>reset ospf 1 process --- 重启OSPF进程

结构突变情况:

1,突然新增一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK

确认

2,突然断开一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK

确认

3,无法联系: dead time --- 40后断开

OSPF的基本配置

1,启动OSPF进程

[r1]ospf 1 router-id 1.1.1.1 --- 手工配置RID需要在进程启动时配置

2,创建区域

[r1-ospf-1]area 0

3,宣告

作用

1,激活接口:只有宣告的网段包含的接口会被激活,只有激活的接口可以收发OSPF

的数据。

2,发布路由:只有激活的接口所对应的直连网段的路由才能被发布

        命令:

                [r1-ospf-1-area-0.0.0.0]network 1.1.1.1  0.0.0.0 --- 使用反掩码

                反掩码由连续的0和连续的1组成,0对应位不可变,1对应位可变。

路由相关信息:

优先级:华为设备,OSPF协议的默认优先级为10

COST值 = 参考带宽 / 真实带宽 (华为设备默认的参考带宽为100Mbps)

        (如果计算出来是一个小于1的小数,则直接按照1来算。如果是一个大于1的小数,只取

整数部分。)

参考带宽:[r1-ospf-1]bandwidth-reference 1000 --- 修改参考带宽

拓展配置

1,OSPF的手工认证

[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456

2,手工汇总 --- 区域汇总

在ABR设备上进行配置

[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0

3,沉默接口

配置了沉默接口的接口,将只接受不发送路由信息

[r2-ospf-1]silent-interface GigabitEthernet 0/0/2

4,加快收敛 --- 减少计时器的时间

[r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 修改hello时间的方法

[r2-GigabitEthernet0/0/0]ospf timer dead ?

INTEGER<1-235926000> Second(s)

注意:邻居双方的hello时间和死亡时间必须相同,否则将断开邻居关系

5,缺省路由

[r3-ospf-1]default-route-advertise

注意:这个命令要求边界设备自身得具有缺省路由才行

[r3-ospf-1]default-route-advertise always --- 在没有缺省的情况下,强制下发缺省

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

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

相关文章

【源码】2024全开源多语言多商户跨境商城源码|多语言跨境外贸电商系统App

ikTok SHOP跨境电商系统V8版是一套B2CB2B跨境电商商城系统源码&#xff0c;多商户多语言&#xff0c;全新百变DIY模板&#xff1b;该系统支持B-C自营、B-B-C第三方卖家系统、B2B批发电商模式&#xff1b;该源码是使用Laravel框架PHP开发的&#xff0c;前后端全开源可二开。 版…

护眼灯什么牌子好,几款专业的护眼灯品牌推荐

​随着近视在孩子中的普遍性日益增加&#xff0c;家长们开始认识到&#xff0c;除了学业成就外&#xff0c;孩子的视觉健康同样需要早期关注。毕竟&#xff0c;学业的挫折可以逐步克服&#xff0c;但一旦视力受损&#xff0c;眼镜就可能成为终生的伴侣。鉴于此&#xff0c;专业…

企业级网络安全:入侵防御实时阻止,守护您的业务安全

随着互联网技术的快速发展&#xff0c;企业级网络安全问题日益凸显。在这个数字化时代&#xff0c;企业的业务安全不仅关系到企业的形象和声誉&#xff0c;还直接影响到企业的生存和发展。因此&#xff0c;加强企业级网络安全&#xff0c;预防和抵御各种网络攻击已成为企业的重…

【ThinkBox_Deadline_3dmax使用教程】

ThinkBox Deadline 3dmax使用教程 2019-01-18 10:51 1.打开Thinkbox.Deadline 监控器&#xff0c;设置超级用户才能操作提交渲染和设置任务。 2.设置插件和软件的路径的操作&#xff1a; 3.默认安装C盘安装在其他盘符的需要按照路径找相应格式的文件加载&#xff08;标注的…

EPSON 的 RX8010SJ 为安防产品解决方案

EPSON作为实时时钟解决方案提供商中的佼佼者&#xff0c;为了适应市场需求&#xff0c;推出实时时钟模块RX8010SJ。该款实时时钟模块除了拥有超高性价比以外&#xff0c;还拥有不俗的整体性能&#xff0c;同时集成了日历功能可用于事件标记&#xff0c;非常适合应用在竞争日渐激…

【2024年认证杯】A题详细思路+数据(来源)+成品论文+模型代码(matlab+python)

2024年认证杯A题 解题思路 ⭐⭐第一问题分析第二问题分析第三问题分析 数据与数据来源&#x1f389;&#x1f389;指标解释数据来源 成品参考论文&#x1f60a;&#x1f60a;python/ matlab 代码&#x1f680;&#x1f680; 解题思路 ⭐⭐ 这个题目要求我们围绕人造保暖纤维的…

vue模版字符串解析成vue模版对象

模版字符串 this.code <template><div style"width:100% ; height: 100% ;">{{resultData[0].name}}</div> </template> <script> export default {data() {return {resultData: [{ name: 图幅, value: 20 },]}},mounted(){},method…

STM32移植嵌入式开源按键框架

目录 STM32移植嵌入式开源按键框架 MultiButton简介 multi_button.c文件 multi_button.h文件 按键事件 案例使用方法 学习剖析 STM32移植嵌入式开源按键框架 今天移植了一款嵌入式按键框架工程MultiButton&#xff0c;MultiButton是一个小巧简单易用的事件驱动型按键驱动…

15 Python进阶: random和pyecharts

Python random 模块主要用于生成随机数。 random 模块实现了各种分布的伪随机数生成器。 要使用 random 函数必须先导入&#xff1a; import randompython random 模块的一般用法 Python中的random模块提供了生成伪随机数的功能&#xff0c;可以用于模拟、游戏开发、密码学…

关于《CS创世 SD NAND》的技术学习分享

最近发现一个好玩的东西《CS创世 SD NAND》&#xff0c;带大家一起体验一下。 本文引用了部分厂家产品资料及图像&#xff0c;如有侵权&#xff0c;请及时联系我删除&#xff0c;谢谢。 《CS创世 SD NAND》官方网站&#xff1a;http://www.longsto.com/ 什么是CS创世 SD NAND呢…

电商API数据采集接口|跨境卖家在追求精细化运营过程中数字化选品商品采集和商品上架的多方面应用

现在跨境卖家都在追求精细化运营&#xff0c;在精细化运营过程中&#xff0c;数据分析少不了&#xff0c;下面为数据分析在选品、引流、转化率三个方面的应用。 电商商品详情数据采集API接口|数据化选品 全世界各个国家都有着自己的传统与文化&#xff0c;也有着自己的生活方式…

如何正确使用数字化仪前端信号调理?(二)

在上期文章如何正确使用数字化仪前端信号调理&#xff1f;&#xff08;一&#xff09;中&#xff0c;我们为大家介绍了数字化仪前端电路所需的特性以及使用过程中需要的输入抗阻和输入耦合&#xff0c;本期文章将为您介绍数字化仪前端信号调理的使用过程中所需的输入电压范围&a…

RabbitMQ实战教程(2)

十、RabbitMQ实战教程 在掌握了SpringCloudAlibaba的应用后&#xff0c;再来玩&#xff01;&#xff01; 为了更好的理解RabbitMQ在项目中的作用&#xff0c;来一套实战操作。 10.1 RabbitMQ实战场景 首先模拟一个场景&#xff0c;电商中对应的处理方案。 模拟一个用户在电…

WIFI详解及周边拓展

一、WiFi协议简介 WiFi协议&#xff0c;也称为无线保真技术&#xff0c;是一种允许电子设备通过无线方式在局域网&#xff08;WLAN&#xff09;和互联网上进行通信的技术标准。WiFi协议是基于IEEE 802标准的子系列标准协议&#xff0c;由电气和电子工程师协会制定。随着移动设备…

HTML的路径

路径的分类&#xff1a; 1.绝对路径 ~用于引用别处的图片&#xff08;非本地的&#xff09; 2.相对路径 ~用于引入自己项目内的图片 绝对路径&#xff1a; 绝对路径&#xff0c;即使从网上搜到的图片的位置&#xff08;我们以图床的方式为例&#xff09; 相对路径&#xff1a; …

TypeScript-官方基础模板创建的小程序,如何创建js文件

如何创建JS文件&#xff0c;不需要寻找“js”文件类型&#xff0c;只需要创建一个新的“文件”即可。 第一步:先删除 ts文件;如 index.ts 第二步:右键点击项目&#xff0c;选择“新建”&#xff0c;然后选择“文件”。 第三步:在弹出的界面中&#xff0c;在“文件名”中输入“…

使用SquareLine Studio创建LVGL项目到IMX6uLL平台

文章目录 前言一、SquareLine Studio是什么&#xff1f;二、下载安装三、工程配置四、交叉编译 前言 遇到的问题&#xff1a;#error LV_COLOR_DEPTH should be 16bit to match SquareLine Studios settings&#xff0c;解决方法见# 四、交叉编译 一、SquareLine Studio是什么…

Java多线程的线程状态和线程池参数

一、线程状态 当线程被创建并启动以后&#xff0c;它既不是一启动就进入了执行状态&#xff0c;也不是一直处于执行状态。线程对象在不同的时期有不同的状态。Java中的线程状态被定义在了java.lang.Thread.State枚举类中&#xff0c;State枚举类的源码如下&#xff1a; publi…

不再写满屏import导入

密密麻麻的import语句不仅仅是一种视觉上的冲击&#xff0c;更是对代码组织结构的一种考验。 我们是如何做到让import“占领满屏“的了&#xff0c;又该如何优雅地管理这些import语句呢&#xff1f; 本文将从产生大量import语句的原因、可能带来的问题以及如何优化和管理impo…

【C++软件调试技术】C++软件开发维护过程中典型调试问题的解答与总结

目录 1、引发C软件异常的常见原因有哪些&#xff1f; 2、排查C软件异常的常用方法有哪些&#xff1f; 3、为什么要熟悉常见的异常内存地址&#xff1f; 4、调试时遇到调用IsBadReadPtr或者IsBadWritePtr引发的异常&#xff0c;该如何处理&#xff1f; 5、如何排查GDI对象泄…