OSPF协议

news2024/11/26 0:28:50

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

无类别IGP协议;链路状态型;基于LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署 --- 区域划分、ip地址规划

组播更新 --- 224.0.0.5 224.0.0.6 支持等开销负载均衡

支持触发更新 30min周期更新 跨层封装协议,协议号89;

数据包 --- 5种

Hello --- 邻居的发现,关系的建立,周期保活

DBD --- 数据库描述包

LSR --- 链路状态请求

LSU --- 链路状态更新 -- 携带各种LSA

LSack --- 链路状态确认

OSPF状态机

Down 一旦接收到hello包进入下一个状态机

Init 初始化 接收到的hello包中,若存在本地的RID,进入下一状态

2way 双向通讯 -- 邻居关系建立的标志

条件匹配:点到点网络直接进入下一个状态机 MA网络将进行DR/BDR选举(40S)

非DR/BDR之间不能进入下一个状态机

Exstart -- 预启动 使用不携带目录信息的DBD包进行主从关系选举,RID数值大为主,优先进入下一个状态机; 主从目的主要在于信息交互的有序性,避免同时收发造成网络拥塞

Exchange 准交换 -- 使用DBD携带目录信息,进行共享

Loading 加载 -- 查看完邻接的目录信息后,针对本地未知的LSA,使用LSR包进行查询,对端使用LSU进行应答, 本地接收到LSA后使用ack进行确认 --- 获取未知的LSA信息

Full --转发 邻接关系建立的标志

OSPF的工作过程

启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表

邻居关系建立后,将进行条件的匹配,匹配失败将维持邻居关系,仅hello包周期保活即可;

匹配成功可以建立邻接(毗邻)关系;邻接关系间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;获取完成后,邻接关系间数据库同步一致;--- 数据库表

之后本地基于本地的数据库所有内容整理出有向图--->最短路径树结构--->将本地到达所有未知网段的最短路径加载于本地的路由表中;

收敛完成后,邻居间仅hello包周期保活即可;每30min邻接关系间周期比对数据库目录,

若不一致将马上使用LSU和LSACK进行不一致部分收敛;

拓扑突变 :

1)新增网段:直连新增网段设备,用LSU直接进行触发更新

2)断开网段:直连断开网段设备,用LSU直接进行触发更新

3)无法沟通:dead time 为hello time4倍;在dead time到时时将断开邻接、邻居关系,删除路由;

OSPF的基础配置

[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]

启动时可以定义进程号,进程号仅具有本地意义;

每一个OSPF进程均需要RID,全网唯一;生成顺序:手写--环回接口最大数值的ip地址 -- 物理接口上数值最大的ip地址

[r1-ospf-1]area 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

宣告:1)区域划分 2)激活接口--可以收发ospf的信息 3)传递接口信息--该接口信息将被共享给其他邻接

区域划分规则:

  1. 星型拓扑 --- 区域0为骨干,大于0为非骨干,所有非骨干必须连接到骨干区域方可正常共享路由

  1. 区域间必须存在ABR -- 区域边界路由器

[r2]display ospf peer 查看邻居信息
[r2]display ospf peer brief 查看邻居表

启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表;

hello包:

周期收发 hello time 10s 或30s dead time为hello time 4倍

邻居间hello包中必须完全一致的参数:否则无法建立邻居关系

1)hello 、dead time 2)区域ID --区域划分规则--ABR 3)认证字段

4)末梢区域标记 -- 特殊区域 5)华为系还要求邻居间直连接口ip的子网掩码必须一致;

[r2]display ospf lsdb 查看数据库表

LSDB-链路状态数据库--所有LSA的集合

邻居关系建立后,关注条件,条件不匹配设备间维持邻居关系,仅hello包周期保活即可;

条件匹配的设备间,将使用DBD/LSR/LSU/LSack来获取所有本地未知的LSA信息,完成数据库同步 --- 数据库表

关于DBD包的扩展知识点:

1)Ospf的DBD包中将携带接口的MTU值,要求邻接间的MTU必须一致,否则将卡在exstart或exchange状态机;

华为默认未开启MTU检测

[r1-GigabitEthernet0/0/1]ospf mtu-enable 在直连邻接的接口上开启,必须两端均开启

2)DBD包中的标记位

I M MS I为1标识该DBD包为本地发出的第一个DBD M为1标识该DBD包不是本地发出的最后一个DBD包 MS 为1标识本地为主,为0代表

3)隐性确认

主从被选举后,从将使用主的序列号为确认接收到了主的DBD包,即使从设备已经不需要发送DBD,依然要使用未携带信息的DBD来进行隐性确认;

邻接关系间数据库同步完成后,本地基于数据库生成---有向图 ---> 最短路径树--->将本地到达所有未知网段的最短路径加载于本地的路由表中;

默认优先级为10 ,度量为cost值;

Cost=开销=参考带宽/接口带宽 默认参考为100M 当接口带宽大于参考带宽时,cost值为1;OSPF优选整段路径cost值之和最小为最短路径

故当接口带宽大于参考带宽的网络可能导致选路不佳,建议修改参考带宽

[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000 切记:全网设备参考带宽需要修改一致

[r1]display ospf routing 查看所有本地学习以及共享出去的OSPF路由

邻居关系成为邻接关系的条件 --- 和网络类型有关

点到点 --- 所有邻居直接建立为邻接关系

MA---由于OSPF协议需要邻接关系间进行数据库对比,故不支持接口水分割;若两两间均为邻接关系,将可能出现大量的重复更新;因此,在MA网络中ospf协议将进行DR/BDR选举,所有非DR/BDR设备间维持邻居关系,不进行数据库共享;

选举规则:1)先比较参选接口的优先级 0-255 默认为1,大优

2)若优先级相同,比较参选的RID,数值大优

若需要干涉选举,可以修改参选接口的优先级

[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 3

切记:选举是非抢占的,故修改后该网段依然维持原有角色,若希望重新选举,需要重启该网段所有设备的OSPF进程;

<r1>reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y

建议直接将DR优先级修改最大,BDR次大,其他设备优先级修改为0,0标识不参选,可以不同重启任何设备的ospf进程;

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

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

相关文章

shell变量的使用 rhce(25)

目录 1.总结变量的类型及含义&#xff1f; 2.实现课堂案例计算长方形面积&#xff1f;&#xff08;6种方式&#xff09; 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815&#xff08;通过多种方法实现&#xff09; &#xff08;1&#xff0…

Redis的数据过期策略

数据淘汰策略-使用建议 1.优先使用allkeys-lru策略。充分利用LRU算法的优势&#xff0c;把最近最常访问的数据留在缓存中。如果业务有明显的冷热数据区分&#xff0c;建议使用。 2.如果业务中数据访问频率差别不大&#xff0c;没有明显冷热数据区分&#xff0c;建议使用allkeys…

【AUTOSAR】 AUTOSAR整体开发流程(六)---- ISOLAR与Simuink

ISOLAR与Simuink交互 8.1 AutoSar的几种开发流程 8.2 Simulink 到ISOLAR Simulink生成SWC arxml SWC arxml放到ISOLAR文件夹 F5即可显示 8.3 ISOLAR到Simulink 1、Matlab的几个命令 1&#xff09;importer Call the constructor arxml.importer to create an importer obj…

Nomad 会替代 Kubernetes 吗?对比一下,两者如何选择?

概 述 根据市场状况&#xff0c;Kubernetes&#xff08;又称“K8s”&#xff09;已经成为容器编排之王&#xff0c;超越了Docker Swarm和Mesos等竞争对手。但是&#xff0c;在K8s&#xff08;2014&#xff09;出现的同时&#xff0c;还有另一个编排项目HashiCorp的Nomad&…

同城跑腿系统源码,点对点配送,帮你省时省力

随着互联网的发展&#xff0c;越来越多的人开始依赖网络来解决生活中的各种问题。而同城跑腿系统就是其中一个受欢迎的解决方案。 ​同城跑腿系统是指一种基于互联网的服务&#xff0c;通过在线平台将用户和服务提供者连接起来&#xff0c;以便用户可以轻松地安排他们的日常任务…

Selenium Grid- 让自动化分布式执行变得可能

什么是 Selenium Grid&#xff1f; Selenium Grid 是 Selenium 的三大组件之一&#xff0c;允许用户同时在不同的机器和系统上测试不同浏览器。 也就是说 Selenium Grid 支持分布式的测试执行。它可以让你的测试用例在一个分布式的执行环境中运行。 由上图可见&#xff0c;测试…

Python之并发编程二多进程理论

一、什么是进程 进程&#xff1a;正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二、进程与程序的区别 程序仅仅只是一堆代码而已&#xff0c;而进程指的是程序的运行过程。 三、并发与并行 无论是并行还是并发&#xff0c;在用户看来都是’同时’运行的&am…

从实际案例聊聊Java应用的GC优化

概 述 当Java程序的性能无法达到预期目标时&#xff0c;开发人员通常需要借助GC优化来进一步提高性能。然而&#xff0c;GC算法复杂&#xff0c;影响GC性能的参数众多&#xff0c;且参数调整又依赖于应用各自的特点&#xff0c;这些因素大大增加了GC优化的难度。不过&#xf…

GitLab 目录遍历漏洞复现(CVE-2023-2825)

0x01 产品简介 Gitlab是目前被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理&#xff0c;同时可以搭建Web服务。 0x02 漏洞概述 GitLab 存在目录遍历漏洞&#xff0c;当嵌套在至少五个组中的公共项目中存在附…

demlia机器人建模与装配

1 可以用catia中的模型或其他三维建模软件中的模型转化为step格式即可 2 在demlia中打开 3 打开单个零件保存为cgr格式 对机械臂所有零件都做同样的转化 4 新建装配设计&#xff0c;并导入带有坐标的零件 将转化后的零件都选中导入即是装配好的 5 将模式修改为device buildin…

mysql超全语法大全

mysql安装教程 一、登录&#xff08;使用可视化工具&#xff0c;可忽略&#xff09; 打开命令行工具&#xff0c;输入以下命令&#xff0c;根据提示输入 root 用户的密码。 mysql -u root -p mysql -u root -p -D 数据库名二、创建数据库 显示数据库&#xff1a;SHOW DATAB…

Shell脚本攻略:条件语句if、case

目录 一、理论 1.条件测试 2.if语句 3.case语句 二、实验 1.实验一 2.实验二 3.实验三 4.实验四 5.实验五 6.实验六 7.实验七 一、理论 1.条件测试 &#xff08;1&#xff09;三种测试方法 ① test命令测试 ② [ ]测试&#xff08;注意前后需要有空格&…

Java多线程编程

Java多线程编程 前言 Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流&#xff0c;一个进程中可以并发多个线程&#xff0c;每条线程并行执行不同的任务。多线程是多任务的一种特别的形式&#xff0c;但多线程使用了更小的资源开销。这里定义…

新快报:十年聚焦,巨杉数据库打造中国基础软件的“原创力”

广东省级主流媒体新快报策划“非凡十年&#xff0c;广州答卷”专题&#xff0c;关注十年来广州的“原创力量”&#xff0c;作为土生土长的广州基础软件创新企业&#xff0c;巨杉数据库十年聚焦&#xff0c;从零打造原生分布式数据库&#xff0c;获得逾百家金融银行客户认可&…

STM32——SDIO的学习(驱动SD卡)(实战篇)

目录 一、SDIO寄存器 1.1 SDIO电源控制寄存器(SDIO_POWER) 1.2 SDIO时钟控制寄存器(SDIO_CLKCR) 1.3 SDIO参数寄存器(SDIO_ARG) 1.4 SDIO命令寄存器(SDIO_CMD) 1.5 SDIO命令响应寄存器(SDIO_RESPCMD) 1.6 SDIO响应 1..4 寄存器(SDIO_RESPx) 1.7 SDIO数据定时器寄存器(S…

C语言程序设计题/C语言计算机二级考前押题版

C语言程序设计题/C语言计算机二级考试押题版 与 数位 和 数 有关 求max与min 任意四个数 运算符和表达式版本 #include <stdio.h> int main( ) {int a,b,c,d;int max,min;printf("please input 4 integers:");scanf("%d%d%d%d", &a, &b, …

ESP32通过 WiFi 传输视频

概述 这是ESP32 WiFi视频流的入门教程。ESP32-CAM 是一款带有ESP32-S 芯片的小型摄像头模块,除了OV2640 相机和多个用于连接外围设备的 GPIO 外,它还具有一个microSD 卡插槽,可用于存储相机拍摄的图像。 ESP32-CAM 简介 ESP32-CAM 是一款采用ESP32-S 芯片的超小型相机模组…

HP EliteBook 840 G6电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板HP Elitebook 840 G6 处理器Intel(R) Core(TM) i7-8565U CPU 1.80GHz (max 4.60Ghz) Kaby Lake R已驱动 内存SK Hynix 32 GB (2x16) 2…

QT 设计ROS GUI界面订阅和发布话题

QT 设计ROS GUI界面订阅和发布话题 主要参考下面的博客 ROS项目开发实战&#xff08;三&#xff09;——使用QT进行ROS的GUI界面设计&#xff08;详细教程附代码&#xff01;&#xff01;&#xff01;&#xff09; Qt ROS 相关配置请看上一篇博客 首先建立工作空间和功能包&a…

深度学习训练营之船类识别

深度学习训练营之船类识别 原文链接环境介绍前言收获前置工作设置GPU导入图片数据预处理 数据可视化配置数据集数据显示 构建模型模型训练编译训练模型 结果可视化(模型评估)损失值可视化混淆矩阵各项指标评估 原文链接 &#x1f368; 本文为&#x1f517;365天深度学习训练营 …