OSPF协议知识点

news2024/11/25 22:37:44
OSPF 七种状态机
down--- 关闭状态 ---- 一旦启动了 OSPF 协议,则发出 hello 包,并进入下一状态
init---- 初始化状态 ---- 收到的 hello 包中,存在自己的 RID 值,则进入下一状态
2-way---- 双向通讯状态 ----- 邻居关系建立的标志
条件匹配:匹配成功则进入下一阶段,不成功则停留在 2-way
exstart---- 预启动状态 ---- 使用未携带信息的 DBD 包进行主从关系选举, RID 大的为主
exchange----- 准交换状态 ---- 使用携带目录信息的 DBD 报文进行目录共享
loading------ 加载状态 ----- 邻居间使用 LSR/LSU/LSAck 三种报文来获取完整的 TOPO 信息
full---- 转发状态 ---- 修成正果 ------ 标志邻接关系的建
条件匹配
     设备接口名称
     DR--- 指定路由器
     BDR--- 备份指定路由器
    DRother---- 其他路由器
    OSPF 称为邻接关系的条件
   点到点 ---- 不用选举 DR BDR---- 直接开始建立邻接关系(加快收敛的方法)
   MA 网络 ---- 在一个网络中,不限制节点数(会选举 DR BDR
选举规则
    接口优先级 ----->0-255----> 优先级越大,为 DR ,次一级为 BDR (华为默认为 1
    RID---- 越大越优先
   选举范围---- 一个广播进行一次条件匹配 角色之间的关系

在一个广播域中,所有的设备保持邻接关系,将会出现大量的重复更新,所以需要进行DR/BDR的选举,所有非DR/BDR的设备之间仅需保持邻居关系即可

   DR DRother----> 邻接关系
   DR BDR----> 邻接关系
   BDR DRother----> 邻接关系
   DRother DRother----> 邻居关系

1.一个广播域中,在 DR和BDR具备情况下,至少需要四台路由器才能看到邻居关系

2.指定路由器是针对一个广播域中选取的,所以其实是一个接口概念

   非抢占性选举模式
选举过程
1. DR BDR 的选举是通过 Hello 报文来实现的,选举过程发生在 2-way 状态之后
2. 路由器将自己的接口的 DR 优先级填写 hello 报文中的 “DR 优先级 字段
3. 在接口视图下可以修改 DR 优先级(若 DR 优先级修改为 0 ,则代表不具备 DR BDR 的选举资格)
4. 当路由器接口激活 OSPF 后,首先检查网络上是否已经存在 DR 设备,如果存在则接收 DR 角色。      若不
存在,则拥有最高 DR 优先级的设备称为 DR RID
5. BDR 的选举过程和 DR 选举过程相同,但是是在 DR 选举成功之后。
DR 设备使用组播 224.0.0.5 想该 MA 网络发送消息。
DR BDR 使用 224.0.0.6 监听该 MA 网络的消息。
DROther 使用 224.0.06 发送自己的 LSU 报文
 

NBMA 网络类型中存在。
NBMA 网络类型下,如果需要启动 OSPF 协议,需要手工指定邻居,否则不会发送 hello 报文。
若不发送 hello 报文,则邻居状态处于 attempt 状态

  1.启动OSFP 配置完成后, OSPF 将向本地所有运行 OSPF 协议的接口组播 224.0.0.5 发送 hello 报文; hello报文中携带有本地的 RID 以及本地已知的邻居 RID ;之后生成 邻居表。
2.邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系;仅hello报文保活
  3.匹配成功的邻居将开始建立邻接关系。  
4.首先使用未携带数据的DBD 报文来进行主从关系选举;之后使用携带数据的 DBD 报文来共享数据库 目录;之后本地使用LSR/LSU/LSACK 报文来获取未知的 LSA信息;
5.完成本地数据库的建立--- 生成 数据库表。
6.之后本地基于数据库生成有向图和最短路径树,之后计算本地到达拓扑中所有未知网段的最短路
  7.径,并将其添加到路由表中。
收敛完成,hello报文周期保活。每30min进行一次周期更新   
结构突变
1. 新增网段 ---- 直接在邻接关系的接口使用 LSU 进行更新,将内容告诉于邻居。并需要邻居的 ACK 确 认。
2. 断开网段 ---- 直接在邻接关系的接口使用 LSU 进行更新,将内容告诉于邻居。并需要邻居的 ACK 确 认。
3. 无法沟通 ----dead time---- 四倍的 hello 时间。
1. 启动 OSPF 进程 [r1]ospf 1 router-id 1.1.1.1 // 进程号仅具备本地意义,手工配置 RID 方法
2. 创建区域 [r1-ospf-1]area 0
3. 宣告
      [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.0.0.0 0.0.0.255 // 宣告网段
      宣告使用反掩码形式
      OSPF宣告时用反掩码,达到精准宣告的目的,就是宣告具体的接口IP地址 激活指定的接口,也可宣告直连的网段,激活接口
  32位二进制,使用点分十进制表示。连续的0+ 连续的 1 ;并且 0 代表不可变; 1 代表可变

 

 

 

华为体系中,优先级为 10
OSPF COST==== 参考带宽( 100Mbps / 实际带宽
[r1-ospf-1]bandwidth-reference 1000 // 修改参考带宽 ----- 所有设备均需修改
一条 OSPF 路径的 Cost 等于从目的地到本地路由器沿途的所有设备的 入接口 Cost 值的总和。
OSPF 报文格式
OSPF 报文头

版本( Version
对于 OSPFv2 而言,该字段值恒为 2
类型( Type
     描述 OSPF 数据包的类型
     Hello------1
     DBD-------2
     LSR--------3
     LSU--------4
     LSACK----5
报文长度( Packet Length
       整个 OSPF 报文的长度 ----- 单位字节
路由器 ID
        发出该报文的路由器的 RID
区域 ID
       发出该报文的接口所属于的区域的 ID
校验和
        验证 OSPF 整体数据报文的有效性
验证类型
        指示该报文使用的认证类型
        不认证 ---0 ;简单认证 ----1 MD5 认证 ----2
认证数据
      用于报文认证所对比的内容
      若认证类型为不认证,则该字段全部用 0 填充
OSPF 的认证功能在存在于所有的数据交互过程中,对于任何一种数据报文,都需要进行认证。
在认证的过程中,需要对比两个字段,首先对比认证类型字段。
     若相同,才会对比认证数据字段。

网络掩码(Network Mask)
     该字段填充的是发送该报文的网络掩码
     两台 OSPF 路由器如果通过 以太网接口 直连,那么双方的直连接口必须配置相同的网络掩码。
  (点到点网络不需要对比该参数)
     注意: OSPF 建立邻居关系需要对比子网掩码信息是华为独有,别的厂商没有这个要求
Hello间隔
      两台直连路由器需要确保直连接口的 Hello 时间间隔相同,否则邻居关系无法建立
      缺省情况下, P2P BMA 类型的下,为 10S P2MP NBMA 30S
可选项(Options)
        该字段一共 8bit ,每个比特位都用于指示该路由器的某个特定的 OSPF 特性。
        而 OSPF 邻居关系建立过程中,该字段中的某些比特位将会被检查,可能影响 OSPF 邻居关系          建 立。(特殊区域的标记)
路由器优先级
     [r2-GigabitEthernet0/0/0]ospf dr-priority ? // 修改 OSPF 接口的 DR 优先级
    INTEGER<0-255> Router priority value
路由器失效时间
         两台直连路由器要建立 OSPF 邻居关系,需要保证双方接口的 dead time 时间相同,否则邻居
         关系无法正常建立。
         缺省时间为 hello 4 倍。
指定路由器
        网络中 DR 设备的接口 IP 地址。
        若没有 DR DR 没有选举出来,则填充 0.0.0.0
备份指定路
            网络 BDR 设备的接口 IP 地址
           若没有 BDR 或未选举结束,则填充 0.0.0.0
邻居
        在直连链路上发现的有效邻居,此处填充的是邻居的 RID 值,如果发现多个邻居,则包含多个
        邻居字段。
所有 224.0.0.X 格式的组播地址称为本地链路组播,目的 IP 地址是本地链路组播的数据包中的 TTL 值被 设定为 1 。所有的本地链路组播都会存在对应的组播 MAC 地址, 01-00-5e- 24 位(组播 IP 地址的后 24 位)

 子网掩码

        

        

          

R2 上修改网络掩码后,
R2 会将与 R3 的状态立即修改为 Down 状态。而 R3 会在 40S 死亡时间之后进行状态切换。
原因在于, R2 在修改 IP 地址的掩码后,会认为之前的连接中断,需要重新建立连接,所以重置状态机。
           而 R3 则认为是无法沟通。故会等待死亡时间超时后才切换状态。
并且,该情况,在 R3 等待 40S 周期内,还是可以向 R2 转发数据, R2 可以接收到该数据包,但无法回复

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

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

相关文章

Linux kernel调试 SPI NORFLASH--W25Q128

W25Q128介绍 W25Q128 是华邦公司推出的一款 SPI 接口的 NOR Flash 芯片&#xff0c;其存储空间为 128Mbit&#xff0c;相当于 16M 字节。W25Q128 可以支持 SPI 的模式 0 和模式 3&#xff0c;也就是 CPOL0/CPHA0 和CPOL1/CPHA1 这两种模式。      Flash 写入数据时和 EEPR…

【Linux初阶】基础IO - 文件操作(使用系统接口实现) | vim批量注释代码

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;重新理解文件和文件操作&#xff0c;C语言实现的简单文件操作&#xff0c;文本初始权限&#xff0c;系统接口介…

【spring源码系列-01】spring底层源码整体概述

JVM系列整体栏目 内容链接地址【一】spring源码整体概述https://blog.csdn.net/zhenghuishengq/article/details/130940885 初识虚拟机与java虚拟机 一&#xff0c;spring源码整体概述1&#xff0c;初步概述2&#xff0c;扩展点机制3&#xff0c;核心方法refresh4&#xff0c;B…

【wpf】xaml 中的参数复用

背景 xaml中有几种复用的方式&#xff1a; 有时在xaml中&#xff0c;我们需要复用一些参数&#xff0c;比如 固定的一个值。 有时是固定的一个样式。 资源&#xff0c;sys的引入 有时多个控件都要设置一个高度&#xff0c;我可以引入sys 声明 我就使用这个吧&#xff1a…

扬帆出海正当时,企业应该做好哪些准备?

在跨境出海的时代大潮中&#xff0c;想要拓展海外市场的中国企业&#xff0c;应该事先做好哪些准备&#xff1f; 中国企业出海的新格局 首先来看一组令人振奋的数据。来自中国信通院的数据显示&#xff0c;在2020年的时候&#xff0c;中国数字经济的规模就达到了39.2万亿元人民…

本地Linux搭建web服务并发布公网访问

文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访问 4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子域名 转载自cpolar极点云的文章&#xff1a;在Ubunt…

玩转华为云Astro低代码体验季

目录 Astro轻应用应用场景 零代码应用构建 轻应用构建 行业应用构建 业务大屏构建 使用体验 功能建议 总体评价 Astro轻应用&#xff08;Astro Zero&#xff0c;简称AstroZero&#xff09;是华为云为行业客户、合作伙伴、开发者量身打造的低代码/零代码应用开发平台&#xff0c…

C++ A lambda function

lambda 函数是 C 中的匿名函数&#xff0c;可以内联定义并用作函数对象。 下面是定义 lambda 函数的一般语法&#xff1a; [capture list] (parameter list) -> return type { function body }lambda 语法的每个部分&#xff1a; - capture list&#xff1a;这是一个可选的…

R实践——【rgplates】功能函数解析

【rgplates】功能函数解析 1. 板块和特征重建2. 构造模型表示2.1 用法2.2 参数2.3 值2.4 示例 3. 实用工具3.1 用法3.2 参数3.3. 值3.4 示例 1. 板块和特征重建 一切与几何形状重建到过去状态有关的东西 reconstruct()&#xff1a;重建地理特征 详见R语言实践——古今地理坐…

4. WebGPU 存储缓冲区 (WebGPU Storage Buffers)

这篇文章是关于存储缓冲区的&#xff0c;我们从上一篇文章暂停的地方继续。 存储缓冲区在许多方面类似于统一缓冲区。如果我们所做的只是将 JavaScript 中的 UNIFORM 更改为 STORAGE 并将 WGSL 中的 var 更改为 var<storage, read> &#xff0c;那么上一页中的示例就可以…

Zabbix“专家坐诊”第193期问答汇总

问题一 Q&#xff1a;大佬们&#xff0c;怎么才能将zabbix-server接收到的数据全部展示出来呢&#xff1f;目前我的显示数据无法全部显示。 A&#xff1a;这个是用zabbix_sender发送过来的&#xff1f;确认下数据中是否包含空格等&#xff0c;如果有空格使用反斜杠转义或者单…

uniapp内置组件

目录 3.1、视图容器 view scroll-view swiper match-media 3.2、表单组件 form input App平台iOS端软键盘上方横条去除方案 关于软键盘弹出的逻辑说明 关于软键盘收起的逻辑说明 picker 3.3、 路由与页面跳转 navigator组件 3.4、 地图 map 3.1、视图容器 所有…

2.5. 重载与覆盖

在 Java 中&#xff0c;方法的重载&#xff08;Overloading&#xff09;和覆盖&#xff08;Overriding&#xff09;是两个重要的概念。它们都涉及到方法的定义与使用&#xff0c;但作用和规则有所不同。 重载&#xff08;Overloading&#xff09; 重载是指在同一个类中定义多…

2023年6月18日DAMA-CDGA/CDGP数据治理认证报名到这里

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

在家远程使用公司用友ERP财务软件 【远程办公】

文章目录 前言1.本地访问简介2. cpolar内网穿透3. 公网远程访问4. 固定公网地址 转发自cpolar极点云的文章&#xff1a;外网远程访问公司内网用友畅捷通T财务软件 – 远程办公 前言 用友畅捷通T适用于异地多组织、多机构对企业财务汇总的管理需求&#xff1b;全面支持企业对远…

webpack简单的搭建和使用(1)

随便创建一个空的文件夹&#xff0c;例如说&#xff1a;explore 然后我们测试一下我们的node是否存在 可以正确打印出版本 我们再次输入&#xff1a;npm init -y 创建一个package.json文件 出现这样的情况就成功了 然后我们要安装webpack在终端上输入命令&#xff1a; npm i …

数据结构图的基础概念

1、图的概念 图(Graph)&#xff1a;是由顶点的有穷非空集合和顶点之间边的集合组成。顶点(Vertex)&#xff1a;图中的数据元素。边(Edge)&#xff1a;顶点之间的逻辑关系,边可以是有向的或无向的&#xff0c;也可以带有权重&#xff08;可以表示距离&#xff0c;花费等&#xf…

GaussDB云数据库SQL应用系列-视图管理

一、前言 GaussDB是一款基于云计算技术的高性能关系型数据库&#xff0c;支持多种数据模型和分布式架构。在GaussDB中&#xff0c;视图管理是非常重要的一项功能&#xff0c;它可以帮助用户更方便地管理和查询数据。 数据库视图管理是指对数据库中的视图进行创建、修改、删除…

美债危机现曙光,比特币再破2万8

* * * 原创&#xff1a;刘教链 * * * 号外&#xff1a;今天在小号“刘教链Pro”发表了一篇《常常自律&#xff0c;偶尔放纵》&#xff0c;谈了一下关于意志力和自制力的非同寻常的科学研究结论&#xff0c;及其对投资方法的启迪&#xff0c;欢迎关注“刘教链Pro”并阅读。 * *…

AI专业教您保姆级在暗影精灵8Windows11上本地部署实现AI绘画:Stable Diffusion(万字教程,多图预警)

目录 一、Stable Diffusion介绍 二、Stable Diffusion环境搭建 1.Anaconda下载与安装 2.Pycharm&#xff08;IDE&#xff09;下载与安装 3.CUDA、CuDNN下载与安装 三、Stable Diffusion的本地部署 1.克隆项目到本地 2.初始化打开项目 3.安装环境所需库 4.运行代码…