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

目录

技术产生原因:因为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.mzph.cn/news/809694.shtml

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

相关文章

【静态分析】静态分析笔记03 - 数据流分析(应用)

参考&#xff1a; 【课程笔记】南大软件分析课程3——数据流分析应用&#xff08;课时3/4&#xff09; - 简书 ---------------------------------------------------------------------------- 1. 数据流分析总览 may analysis: 输出可能正确的信息&#xff08;需做 over-…

【感谢】心怀感恩,共赴知识之旅——致每一位陪伴我突破百万总访问量的您

小伙伴朋友们&#xff1a; 此刻&#xff0c;我怀着无比激动与深深感激的心情&#xff0c;写下这篇特别的博文。今天&#xff0c;我的CSDN总访问量成功突破了百万大关&#xff0c;这不仅是一个数字的跨越&#xff0c;更是你们对我的支持、信任与鼓励的有力见证。在此&#xff0…

C语言学习笔记之操作符篇

目录 算术运算符 移位操作符 整型在内存中的存储&#xff08;补充知识&#xff09; ​编辑左移操作符 右移操作符 位操作符 赋值操作符 复合赋值操作符 单目操作符 关系操作符 逻辑操作符 && 与 || 的计算特点 条件操作符 逗号表达式 下标引用操作符 函…

Canal 同步mysql 到es 日期格式报错解决

第一步&#xff1a;下载源码alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com) 第二步&#xff1a;编辑源码&#xff08;client-adapter下面的clinet-adapter.escore)&#xff1a; com.alibaba.otter.canal.client.adapter.es.core.support.ESSyncUt…

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗?

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗&#xff1f; 聚丙烯&#xff08;Polypropylene&#xff0c;简称PP&#xff09;是一种热塑性聚合物&#xff0c;属于聚烯烃类塑料之一。以下是聚丙烯的一些化学特性&#xff1a; 1. 分子结构&#xff1a; 聚丙烯是由丙烯…

【赛题】2024年MathorCup数学应用挑战赛C题赛题发布

2024年MathorCup数学应用挑战赛——正式开赛&#xff01;&#xff01;&#xff01; C题 物流网络分拣中心货量预测及人员排班 赛题已发布&#xff0c;后续无偿分享各题的解题思路、参考文献、完整论文可运行代码&#xff0c;帮助大家最快时间&#xff0c;选择最适合是自己的赛…

[CSS]布局

盒子就是把网站分割成一小块一小块的吧&#xff0c;然后方便移动或者管理 背景 属性名描述background-color设置元素的背景颜色。background-image设置元素的背景图片。背景图片与背景颜色同时设置时&#xff0c;则图片覆盖颜色。写法如下&#xff1a;background-image: url(&…

2024年mathorcup数学建模思路及论文助攻

题目B 题 甲骨文智能识别中原始拓片单字自动分割与识别 甲骨文是我国目前已知的最早成熟的文字系统&#xff0c;它是一种刻甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值&#xff0c;不仅对中国文明的起源具有重要意义&#xff0c;也对世界文明的研究有着深远影响。在我…

微信小程序-接入sse数据流并实现打字机效果( ChatGPT )

从流中获取的数据格式如下 小程序调用SSE接口 const requestTask wx.request({url: xxx, // 需要请求的接口地址enableChunked: true, // enableChunked必须为truemethod: "GET",timeout: 120000,success(res) {console.log(res.data)},fail: function (error) {//…

农场大乐斗游戏演示

功能介绍 农场系统 种菜操作&#xff1a;用户可以在农场中种植农作物&#xff0c;并进行浇水、杀虫、除草等维护操作。干旱、虫害、杂草都会影响农作物的生长速度和产量。农作物成熟后&#xff0c;用户需要及时收取&#xff0c;否则会在24小时后枯死&#xff0c;但可通过观看…

python通过url爬取视频资源到本地

很久之前我写过一篇通过url爬取图片地址的博文&#xff0c;说实在的&#xff0c;利用python实现自动化爬取资源确实很香。我本身是搞前端的。所以对py只是简单看了下&#xff0c;并不算多了解。因此之前写的那篇博文内容也很简单。简单到新手一看就会&#xff0c;一学就能用。方…

【C 数据结构】循环链表

文章目录 【 1. 基本原理 】【 2. 循环链表的创建 】2.1 循环链表结点设计2.2 循环单链表初始化 【 3. 循环链表的 插入 】【 4. 循环单链表的 删除操作 】【 5. 循环单链表的遍历 】【 6. 实例 - 循环链表的 增删查改 】【 7. 双向循环链表 】 【 1. 基本原理 】 对于单链表以…

刷代码随想录有感(29):用队列实现栈

不难理解&#xff0c;题干如下&#xff1a; 代码如下&#xff1a; class MyStack { public:queue<int> q;MyStack() {}void push(int x) {q.push(x);}int pop() {int size q.size();size--;while(size--){q.push(q.front());q.pop();}int res q.front();q.pop();retur…

kali桥接校园网实现上网

1.查看校园网信息 1. vim /etc/network/interfaces 添加下列信息&#xff0c;地址、网关、掩码和主机一样即可 3.vim /etc/resolv.conf 添加dns解析 4. /etc/init.d/networking restart 重启网络即可

探索AI工具导航网站

在现代科技发展迅猛的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了各行各业中不可或缺的一部分。了解和利用最新的AI工具对于工作、学习和娱乐都具有重大意义。在这篇博客中&#xff0c;我们将探索一些最新的人工智能工具导航网站&#xff0c;以及其中一款名…

【力扣】125.验证回文串

刷题&#xff0c;过了真的好有成就感&#xff01;&#xff01;&#xff01; 题解&#xff1a; 根据题目要求&#xff0c;我们需要处理一下几个问题&#xff1a; 将大写字母转变成小写对原来的字符串进行处理&#xff0c;只要字母和数字考虑只有一个和字符串为空的情况 1、将…

docker最简单教程(使用dockerfile构建环境)

一 手里有的东西 安装好的docker+dockerfile 二 操作 只需要在你的dockerfile文件下执行命令 docker build -t="xianhu/centos:gitdir" . 将用户名、操作系统和tag进行修改就可以了,这就相当于在你本地安装了一个docker环境,然后执行 docker run -it xianhu/ce…

第10天:基础入门-HTTP数据包Postman构造请求方法请求头修改状态码判断

第十天 一、HTTP/S 数据包请求与返回 数据-方法&头部&状态码 常规请求-Get——>访问网页获取资源用户登录-Post——>提交数据进行验证 head&#xff1a;与服务器索与 get 请求 一致的相应&#xff0c;响应体不会返回&#xff0c;获取包含在小消息头中的原信息&…

Spring Web MVC的入门学习(二)

本篇接着Spring Web MVC的入门学习&#xff08;一&#xff09;-CSDN博客来继续学习Spring MVC。 一、从请求中获取Header 1、传统获取 header 获取Header也是从 HttpServletRequest 中获取。 代码&#xff1a; import jakarta.servlet.http.HttpServletRequest; import jakar…

vue3+vite+typescript+pinia+element_plus构建web项目

1.vite搭建 yarn create vite 可能会提示node版本不支持&#xff0c;需要根据提示升级或降级node版本 使用nvm下载对应版本 nvm download 18.x.xnvm use 18.x.x// 需要安装yarn npm install -g yarn// 重新执行 yarn create vite 过程中会提供选择&#xff0c;分别选择vue、…