当前位置: 首页 > news >正文

OSPF笔记

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

使用范围:IGP

协议算法特点:链路状态型路由协议,SPF算法

协议是否传递网络掩码:传递网络掩码

协议封装:基于ip协议封装,协议号为89

一,ospf特点

1.ospf是一种典型的链路状态型路由协议

2.传递信息称作LSA,LSA链路状态通告,包含路由信息和拓扑信息

        路由LSA:描述本路由器上接口的路由信息

        拓扑LSA:描述路由器之间的连接状态

3.更新方式:触发更新+30分钟的链路状态刷新

4.更新地址:组播和单播更新,组播地址:224.0.0.5(all spf router)  224.0.0.6(all dr router)

5.支持路由认证

6.支持手工汇总

7.支持区域划分

8.ospf比较消耗设备资源

二,ospf区域

区域划分的意义

        1.减少LSA的数量

        2.减少LSA的传播范围

区域的划分是基于接口的(链路的)

区域的标记:使用32个二进制,类似于ip地址

区域的分类

        骨干区域:区域标记为0或0.0.0.0

        非骨干区域:区域标记不等于0或0.0.0.0

区域设计原则:向日葵型网络结构

        1.ospf网络中必须存在并唯一的骨干区域(单区域除外)

        2.若存在非骨干区域,非骨干区域必须与骨干区域直接相连

        3.非骨干区域之间不允许直接相连相互发布区域间路由

ospf中路由器的角色

        骨干路由器(BR)

        非骨干路由器

        区域边界路由器(ABR):骨干和非骨干之间的路由器

        自治系统边界路由器(ASBR):能够产生5类或7类LSA的路由器,把非ospf路由引入ospf中

三,ospf消息数据包

1.hello数据包

        周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)

        目的:建立并维持ospf邻居关系

2.DBD:数据库描述数据包

        主从选举DBD:比较双方的router-id,router-id大的一方为主(master),小的一方为从(slave);主用于控制LSA的交互

3.LSR:链路状态请求,按照DBD报文的未知LSA头部进行请求

4.LSU:链路状态更新,携带LSA信息

5.LSACK:链路状态确认

四,ospf邻居状态机制

  1. Down(失效)状态:这是初始状态,表示尚未收到邻居的任何信息。
  2. Attempt(过渡)状态:特殊网络条件才有的状态,不支持广播网路
  3. Init(初始化)状态:本路由器已经从邻居收到了 Hello 报文,但报文中未列出本路由器的 Router ID。
  4. 2-Way(双向通信)状态:本路由器在收到的 Hello 报文中看到了自己的 Router ID,表明双方可以双向通信。如果是在广播型网络或 NBMA 网络中,此时还需要选举 DR(指定路由器)和 BDR(备份指定路由器)。
  5. ExStart(预启动)状态:路由器开始协商主从关系,并确定用于交换数据库描述(DBD)报文的初始序列号。
  6. Exchange(交换)状态:路由器使用 DBD 报文来描述自己的链路状态数据库,并向邻居请求缺失或更新的 LSA(链路状态通告)。
  7. Loading(加载)状态:路由器根据收到的 LSR(链路状态请求)报文,向邻居发送 LSU(链路状态更新)报文来提供所需的 LSA 信息。
  8. Full(完全邻接)状态:路由器的链路状态数据库已经与邻居同步,邻居关系建立完成,可以进行路由计算和数据转发。

邻居关系建立条件:

  1. router-id 必须不同每台 OSPF 路由器都需要有唯一的 Router-ID 来标识自己。如果两台路由器的 Router-ID 相同,会导致 OSPF 协议无法正常区分它们,从而无法建立邻居关系。
  2. area ID 相同OSPF 网络被划分为不同的区域,路由器要成为邻居,必须处于相同的区域,这样它们才能共享相同的链路状态信息,以计算准确的路由。
  3. 认证:认证类型(不认证=0 明文认证=1 MD5=2)认证数据:为了保证网络的安全性和数据的完整性,OSPF 支持不同的认证方式。邻居之间的认证类型和认证数据必须匹配,否则无法建立邻居关系。
  4. hello 时间,dead 时间必须一致:Hello 报文用于发现和维护邻居关系,Dead 时间用于判断邻居是否失效。如果这两个时间参数不一致,可能会导致邻居状态的错误判断和不稳定。
  5. 特殊区域标识一致(E(外部路由位)=1 ;N(NSSA 外部路由位)=0 P=0):特殊区域具有特定的属性和路由传播规则,邻居路由器在这些特殊区域标识上必须一致,以确保对路由信息的处理方式相同。
  6. MA 网络中,网络掩码必须一致:在多路访问(MA)网络中,如以太网,网络掩码一致是确保网络地址规划和路由计算的准确性的重要条件。
  7. 必须同时使用单播或组播更新:这确保了邻居之间的更新报文发送方式的一致性,避免因发送和接收方式不同而导致更新报文丢失或无法处理。
  8. 更新源检测(双方的 IP 地址必须在同一网段):只有当更新源(发送更新报文的接口 IP 地址)在同一网段,才能保证它们在逻辑上处于同一网络,从而能够正常通信和建立邻居关系。

 邻居状态下,MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)

DR选举:

        1.比较优先级(范围:0-255,默认优先级为1,越大越优)

        2.比较各自的router-id,越大越优

注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参加选举  4.先选BDR,再升级为DR

主从选举:发生在exstart状态,通过双方router-id进行比较,router-id大的一方为主。发送的主从选举DBD,DBD总包含了MTU值(若双方的MTU值不同,则卡在exstart状态)

router-id选举规则:

        1.手工指定最优先

        2.选举所有逻辑中ip地址最大的

        3.选举所有物理接口ip地址最大的

五,ospf基本配置

开启 OSPF 进程并配置 Router ID:

    ospf 1 router-id 1.1.1.1

其中,“1”是进程号,缺省为 1;“1.1.1.1”是手动配置的 Router ID

配置区域:

    area 0/0.0.0.0

    network 192.168.0.0 0.0.0.255

上述命令将 192.168.0.0/24 网段宣告到区域 0 中,使用反掩码(255.255.255.255 - 掩码)来匹配网段。

常用的 OSPF 配置命令

        修改 Hello 包发送间隔:ospf timer hello 10 ,其中“10”为间隔时间(单位为秒)。

        修改 Hello 包超时间隔:ospf timer dead 40 。

        显示 OSPF 接口信息:display ospf interface g0/0/0 。

        修改 OSPF 接口优先级:ospf dr-priority 100 。

        修改开销(cost):ospf cost 10 ,取值范围为 1 至 65535,缺省为 1。

        调整带宽参考值:bandwidth-reference 100 ,默认为 100Mbps,需在整个 OSPF 网络中统一调整。

        重启 OSPF 进程:reset ospf process 。

ospf三张表:

  1. 邻居表(Neighbor Table):也称为邻居关系表。该表记录了与本地路由器建立了邻居关系的其他路由器的信息,包括邻居路由器的 Router ID、接口地址、状态、Hello 间隔、失效时间等。通过查看邻居表,可以了解到哪些路由器与本地路由器成功建立了邻居关系,以及它们的相关参数和状态。display ospf peer brief可查看

  2. 链路状态数据库(Link State Database,LSDB):存储了本区域内所有路由器的链路状态通告(LSA)。LSDB 中的 LSA 描述了网络的拓扑结构和链路状态信息。每个路由器通过与邻居交换 LSA 来同步 LSDB,确保所有路由器对网络拓扑有一致的认识。display ospf lsdb可查看

  3. 路由表(Routing Table):根据 LSDB 计算得出的最优路由信息表。OSPF 路由器使用 Dijkstra 算法根据 LSDB 中的链路状态信息计算出到达各个目标网络的最短路径,并将这些路由信息放入路由表中,用于数据的转发决策。display ip routing-table protocol ospf 可查看

相关文章:

OSPF笔记

OSPF:开放式最短路径优先协议 使用范围:IGP 协议算法特点:链路状态型路由协议,SPF算法 协议是否传递网络掩码:传递网络掩码 协议封装:基于ip协议封装,协议号为89 一,ospf特点 1…...

IOC容器初始化流程

IOC容器初始化流程 一、概要1.准备上下文prepareRefresh()2. 获取beanFactory:obtainFreshBeanFactory()3. 准备beanFactory:prepareBeanFactory(beanFactory)4. 后置处理:postProcessBeanFactory()5. 调用bean工厂后置处理器:invokeBeanFactoryPostProcessors()6. 注册bea…...

第二季度云计算市场份额榜单:微软下滑,谷歌上升,AWS仍保持领先

2024 年第二季度,随着企业云支出达到 790 亿美元的新高,三大云计算巨头微软、谷歌云和 AWS的全球云市场份额发生了变化。 根据新的市场数据,以下是 2024 年第二季度全球云市场份额结果和六大世界领先者,其中包括 AWS、阿里巴巴、…...

三点确定圆心算法推导

已知a,b,c三点求过这三点的圆心坐标 a ( x 1 , y 1 ) a(x_1, y_1) a(x1​,y1​) 、 b ( x 2 , y 2 ) b(x_2, y_2) b(x2​,y2​) 、 c ( x 3 , y 3 ) c(x_3, y_3) c(x3​,y3​) 确认三点是否共线 叉积计算方式 v → ( X 1 , Y 1 ) u → ( X 2 , Y 2 ) X 1 Y 2 − X 2 Y 1 \…...

神经网络 (NN) TensorFlow Playground在线应用程序

神经网络 (NN) 历史上最重要的发现之一是神经网络 (NN) 的强大功能。 在神经网络中,称为神经元的许多数据层被添加在一起或相互堆叠以计算新的数据级别。 常用的简称: DNN 深度神经网络CNN 卷积神经网络RNN 循环神经网络 神经元 科学家一致认为&am…...

腾讯课堂 离线m3u8.sqlite转成视频

为了广大腾讯课堂用户对于购买的课程不能正常离线播放,构成知识付费损失,故出此文档。 重点:完全免费!!!完全免费!!!完全免费!!! 怎么…...

Linux多路转接

文章目录 IO模型多路转接select 和 pollepoll IO模型 在还在学习语言的阶段,C里使用cin,或者是C使用scanf的时候,总是要等着我们输入数据才执行,这种IO是阻塞IO。下面是比较正式的说法。 阻塞IO: 在内核将数据准备好之前&#xf…...

IDEA导入Maven项目的流程配置以常见问题解决

1. 前言 本文主要围绕着在IDEA中导入新Maven项目后的配置及常见问题解决来展开说说。相关的部分软件如下: IntelliJ IDEA 2021.1JDK 1.8Window 2. 导入Maven项目及配置 2.1 导入Maven项目 下面介绍了直接打开本地项目和导入git上的项目两种导入Maven方式。 1…...

【数据分析---- Pandas进阶指南:核心计算方法、缺失值处理及数据类型管理】

前言: 💞💞大家好,我是书生♡,本阶段和大家一起分享和探索数据分析,本篇文章主要讲述了:Pandas进阶指南:核心计算方法、缺失值处理及数据类型管理等等。欢迎大家一起探索讨论&#x…...

2024世界机器人大会将于8月21日至25日在京举行

2024年的世界机器人大会预定于8月21日至25日,在北京经济技术开发区的北人亦创国际会展中心隆重举办。 本届大会以“共育新质生产力 共享智能新未来”为核心主题,将汇聚来自全球超过300位的机器人行业专家、国际组织代表、杰出科学家以及企业家&#xff0…...

【Linux】lvm被删除或者lvm丢失了怎么办

模拟案例 接下来模拟lvm误删除如何恢复的案例: 模拟删除: 查看vg名: vgdisplayvgcfgrestore --list uniontechos #查看之前的操作 例如我删除的,现场没有删除就用最近的操作文件: 还原: vgcfgrestore…...

疫情防控管理系统

摘 要 由于当前疫情防控形势复杂,为做好学校疫情防控管理措施,根据上级防疫部门要求,为了学生的生命安全,要求学校加强疫情防控的管理。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生&#x…...

永久删除的Android 文件去哪了?在Android上恢复误删除的消息和照片方法?

丢失重要消息和照片可能是一种令人沮丧的经历,尤其是在您没有备份的情况下。但别担心,在本教程中,我们将指导您完成在Android设备上恢复已删除消息和照片的步骤。无论您是不小心删除了它们还是由于软件问题而消失了,这些步骤都可以…...

宠物服务小程序多生态转化

宠物服务如美容造型、医疗、看护寄养等有着不少需求,尤其是年轻人从宠物生活到饮食起居等面面俱到,往往不惜金钱给到较好的环境,如定时除虫、优质食物、玩具、检查身体、服饰; 近些年宠物服务店新开数量也较多,同行竞…...

今天细说一下工业制造行业MES系统

文章目录 前言什么是MES? 前言 最近几个月在做制造行业的MES系统开发,这类面向制造业的系统是今年做的第三个系统了,也算是了解较深的了,和一个之前转行做这一块的朋友聊了聊,他们集团要扩大规模,准备招ME…...

C++ 知识点(长期更新)

C++ 知识点 C/C++1. `cin`, `cin.get()`, `getchar()`, `getline()`, 和 `cin.getline()`的区别。2. 有关 cin >>3. 定义和声明的区别4. `union`、`struct`和`class`的区别5. 深拷贝 vs 浅拷贝6. new 和 malloc 的区别7. 被free回收的内存是立即返还给操作系统吗?为什么…...

Spring AI + 通义千问 入门学习

Spring AI 通义千问 入门学习 文章目录 Spring AI 通义千问 入门学习一,开发环境配置二,项目搭建2.1 pom文件2.2 配置文件 三,AI使用3.1 对话问答3.1.1 普通方式3.1.2 流方式 3.2 文字生成图片 最近AI很火,而Spring也出了Spring…...

38.【C语言】指针(重难点)(C)

目录: 8.const 修饰指针 *修饰普通变量 *修饰指针变量 9.指针运算 *指针或-整数 *指针-指针 *指针关系运算 往期推荐 承接上篇37.【C语言】指针(重难点)(B) 8.const 修饰指针 const 全称 constant adj.不变的 *修饰普通变量 #…...

Vue-05.指令-v-for

v-for 列表渲染&#xff0c;遍历容器的元素或者对象的属性 v-for“列表元素名 in 列表名” <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…...

自动驾驶的一些大白话讲解

无人驾驶牛逼吗&#xff1f;我来帮你祛魅【原理缺陷解析】_哔哩哔哩_bilibili 5分钟讲明白自动驾驶端到端&#xff0c;解释为什么华为智驾并不是遥遥领先 到底什么是端到端自动驾驶系统&#xff1f;为何我会说这是智能驾驶的弯道超车机会&#xff1f;我希望今天用5分钟的时间&…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

32位寻址与64位寻址

32位寻址与64位寻址 32位寻址是什么&#xff1f; 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元&#xff08;地址&#xff09;&#xff0c;其核心含义与能力如下&#xff1a; 1. 核心定义 地址位宽&#xff1a;CPU或内存控制器用32位…...