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

hcip----ospf

一:动态路由协议
IGP 协议---RIP OSPF ISIS EIGRP
EGP--EGP ---BGP
三个角度的评判一款动态路由协议的优劣
RIP --request response
1.选路--选路依据不好,可能出现环路
2.收敛速度--计时器
3.占用资源--
RIPV1 RIPV2 RIPNG--ipv6
OSPFV1 OSPFV2 OSPV3
RIP V2和OSPFV2
相同点
RIP V2和OSPFV2都是无类别的动态路由协议---子网划分/子网汇总
RIPV2和OSPFV2都使用组播发送数据----RIP --224.0.0.9
OSPF---224.0.0.5 224.0.0.6
OSPF和RIPV2都支持负载均衡
OSPF 之所以能够适应中大型网络环境----结构化部署
ABR --区域边界路由器
ABR --必须同时属于多个区域,一个接口对应一个区域
AREA id--32位二进制构成的
OSPF
AREA id--32位二进制构成的
单区域 OSPF area 0---骨干区域
多区域 OSPF 网络--
区域划分----区域之间必须存在ABR
区域划分必须遵循星形拓扑结构
二:OSPF的数据包

1、OSPF的数据包类型

hello包 --- 周期性发现,建立,保活邻居关系。

hello时间 --- 默认10S(30S)

Deadtime --- 4倍的hello时间

2、RID --- 1,全网唯一;2,格式统一 --- IP地址----区分标识不同的OSPF设备

1)手工配置

2)自动生成 --- 首先先看自己环回接口的IP地址,选择其中数值最大的作为RID;如果没有环回接口,则取物理接口中IP地址最大的作为RID。

  DBD包 --- 数据库描述报文 --- LSDB ---- 链路状态数据库(存放LSA信息的数据库)

  LSR包 --- 链路状态请求报文 --- 基于DBD包请求本地未知的LSA信息

  LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据报

  LSACK包 --- 链路状态确认报文 --- 确认包

  LSA --- 链路状态通告

  OSPF存在每30min一次的周期更新

三:OSPF的状态机
Two-Way --- 标志着邻居关系的建立
想要到达2-way状态的条件是收到 hello包中携带的邻居参数包含自身的RID

(条件匹配)--- 条件匹配成功,则进入下一个状态,匹配失败,则仅停留在邻居关

系,使用hello包进行周期保活。

隐性确认

FULL ---- 标志着邻接关系的建立。只有邻接关系,才可以交换LSA信息,而邻居关系仅

使用hello包进行保活。

Down状态 --- 启动OSPF,发出hello包之后进入下一个状态

Init(初始化)状态 --- 收到hello包中存在本地RID,进入到下一个状态

2-way(双向通信)--- 标志着邻居关系的建立(条件匹配)条件匹配成功,则进入下一个状态,匹配失败,则仅停留在邻居关系,使用hello包进行周期保活。

exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,RID大的为主,为主可以优先获取LSA信息。

Exchange(准交换)状态 --- 使用携带数据的DBD包交换目录信息

Loading(加载)状态 --- 使用LSR包基于DBD包请求未知的LSA信息,对方发送LSU包携带LSA信

息,需要LSACK进行确认

FULL状态 --- 标志着邻接关系的建立

四:OSPF的工作过程总结
1. 建立邻居 :启动配置之后, ospf 将向本地所有的运行了 ospf 协议 的端口发送hello包224.0.0.5,
hello包中携带自己的RID用来区分不同路由器的身份(不携带路由信息),同时携带自己已知的 邻
居RID,之后会将这些RID存储在自己的邻居表中。
2. 条件匹配 :邻居表建立完成之后,会进行条件匹配,如匹配成功 则开始进入下一个状态,如果匹
配失败则会停留在邻居关系。--- 之后仅hello 包进行保活。
3. 如果匹配成功 ,则开始建立邻接关系 - 之后会使用未携带数据 DBD 包(并没有携带LSDB 的摘要
信息)进行主从关系的选举。主路由器 会优先进入下一个状态,会优先发送摘要进行比对,比对
之后,会 请求自己本地没有的lsa 信息。对端会发送真正携带 lsa 信息的 LSU 请求自己本地没有的lsa
信息。对端会发送真正携带 lsa 信息的 LSU 包,会利用LSACK 进行确认。本地的链路状态数据库建
立完成,生 成本地链路数据库表。---FUll
4. 完成收敛 ---- 基于本地的链路状态数据库收集的 lsa ,根据自己 的spf 算法计算得出最短路径树。生
成路由表。
5. 收敛完成后 ,会使用 hello 包每 10s 发送一次,用来保活邻居关 系。ospf 会每 30min 进行一次周期
更新。
五:OSPF的配置

1、启动OSPF进程

[r1]ospf 1 router-id 1.1.1.1

2、创建区域

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]

3、宣告

宣告的目的 --- 1,激活接口;2,发布路由

  [r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 --- 反掩码 --- 由连续的0和连续的1组成,0代表不

可变,1代表可变

  [r1]display ospf peer --- 查看邻居表

  [r1]display ospf peer brief --- 查看邻居关系简表

  [r1]display ospf lsdb --- 查看链路状态数据库

  [r1]display ospf lsdb router 2.2.2.2 --- 查看具体LSA信息

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

 [r1-ospf-1]bandwidth-reference 1000 --- 注意:如果一台设备的参考带宽修改了,则所有设备的参

考带宽必须改成相同的。

开销值计算,如果出现小数,如果是小于1的小数,则直接按照1来看;如果是大于1的

小数,则直接取整数部分。

4、条件匹配

指定路由器 --- DR --- 和MA网络中其他设备建立邻接关系。

备份指定路由 --- BDR --- 和MA网络中其他设备建立邻接关系。

六:OSPF的结构突变

1,突然新增一个网段 --- 触发更新,直接发送LSU包,需要ACK确认

2,突然断开一个网段 --- 触发更新,直接发送LSU包,需要ACK确认

3,无法沟通 ---- 死亡时间

相关文章:

hcip----ospf

一:动态路由协议 IGP 协议---RIP OSPF ISIS EIGRP EGP--EGP ---BGP 三个角度的评判一款动态路由协议的优劣 RIP --request response 1.选路--选路依据不好,可能出现环路 2.收敛速度--计时器 3.占用资源-- RIPV1 RIPV2 RIPNG--ipv6 OSPFV1 OSPFV…...

vue中如何写过滤器

全局注册 (可以在main.js中进行全局注册 vue.fifler(test’&#xff0c;function(v){return v0? ‘终止’&#xff1a;v1?进行中:异常 })在组件页面使用 <view>{{state|test}}</view> <script> export default {data(){return {state: 1// state 1 进行中…...

c语言-文件的读写操作(下)

文章目录 前言一、文件的随机读写1.1 fseek()1.2 ftell()1.3 rewind() 总结 前言 本篇文章介绍c语言中文件的随机读写 一、文件的随机读写 1.1 fseek() fseek()函数的作用是根据文件指针的位置和偏移量定位文件指针 int fseek ( FILE * stream, long int offset, int origi…...

android学习笔记----SQLite数据库

用SQLite语句执行&#xff1a; 首先看到界面&#xff1a; 代码如下&#xff1a; MainActivity.java import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.EditTe…...

开发知识点-Flutter移动应用开发

支持 安卓 IOS Android 鸿蒙 第一章dart基础章节介绍 移动电商——Flutter-广告Banner组件制作 移动电商——Flutter实战课程介绍 Flutter实例——路由跳转的动画效果...

视频尺寸魔方:分层遮掩3D扩散模型在视频尺寸延展的应用

▐ 摘要 视频延展(Video Outpainting)是对视频的边界进行扩展的任务。与图像延展不同&#xff0c;视频延展需要考虑到填充区域的时序一致性&#xff0c;这使得问题更具挑战性。在本文中&#xff0c;我们介绍了一个新颖的基于扩散模型的视频尺寸延展方法——分层遮掩3D扩散模型(…...

openssl3.2/test/certs - 061 - other@good.org not permitted by CA1

文章目录 openssl3.2/test/certs - 061 - othergood.org not permitted by CA1概述笔记END openssl3.2/test/certs - 061 - othergood.org not permitted by CA1 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_git_prj\study\openSS…...

如何实现无公网ip远程访问本地websocket服务端【内网穿透】

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…...

pip清华源怎么换回来

怎么临时使用清华源 pip install scrapy -i https://pypi.Python.org/simple/怎么永久换源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple修改清华源后怎么换回来 删掉/home/XXX/.config/pip/pip.conf...

[Go]认识Beego框架

对比Gin的简洁&#xff0c;自己之前基于Gin撸了一个架子&#xff0c;确实比beego目录看着舒服多了&#xff0c;不过最近接触到beego的项目&#xff0c;beego的bee工具使用还是很方便&#xff0c;来简单梳理下细节&#xff1b; Beego是一个开源的Go语言Web应用框架&#xff0c;…...

JWT登录

JWT JSON Web Token&#xff08;JSON Web令牌&#xff09; 是一个开放标准(rfc7519)&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任&#xff0c;因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法…...

MySQL和Redis的事务有什么异同?

MySQL和Redis是两种不同类型的数据库管理系统&#xff0c;它们在事务处理方面有一些重要的异同点。 MySQL事务&#xff1a; ACID属性&#xff1a; MySQL是一个关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;支持ACID属性&#xff0c;即原子性&#xff08;Ato…...

【C#】基础巩固

最近写代码的时候各种灵感勃发&#xff0c;有了灵感&#xff0c;就该实现了&#xff0c;可是&#xff0c;实现起来有些不流畅&#xff0c;总是有这样&#xff0c;那样的卡壳&#xff0c;总结下来发现了几个问题。 1、C#基础内容不是特别牢靠&#xff0c;理解的不到位&#xff…...

基于Skywalking开发分布式监控(一)

接手为微服务系统搞链路监控项目一年多&#xff0c;也和skywalking打了一年多的交道&#xff0c;也应该有个总结&#xff0c;主要谈一下搭建监控系统遇到的难点和解决方案。 说明&#xff1a; 本文的代码均由本地演示代码替代&#xff0c;非实际代码 为啥选skywalking&#xf…...

高防服务器什么意思

高防服务器什么意思&#xff0c;为什么要用高防服务器&#xff0c;小编为您整理发布高防服务器什么意思的解读。 高防服务器是指具备较高防御能力的服务器&#xff0c;能够抵御DDoS/CC等网络攻击。 高防服务器通常用于保护游戏、APP、金融、电商等业务&#xff0c;这些领域因为…...

C/C++ - Auto Reference

目录 auto Reference auto 当使用auto​​关键字声明变量时&#xff0c;C编译器会根据变量的初始化表达式推断出变量的类型。 自动类型推断&#xff1a;auto​​关键字用于自动推断变量的类型&#xff0c;使得变量的类型可以根据初始化表达式进行推导。 初始化表达式&#x…...

springboot项目快速引入knife4j

引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version> </dependency>knife4j配置文件 basePackage改为自己存放接口的包名 /*** Kn…...

SpringBlade微服务开发平台

采用前后端分离的模式&#xff0c;前端开源两个框架&#xff1a;Sword (基于 React、Ant Design)、Saber (基于 Vue、Element-UI)后端采用SpringCloud全家桶&#xff0c;并同时对其基础组件做了高度的封装&#xff0c;单独开源出一个框架&#xff1a;BladeToolBladeTool已推送至…...

【运维】Ubuntu18.04系统docker方式安装ElasticSearch和kibana

前言 最近需要搭建一套测试环境&#xff0c;用到了ElasticSearch( 简称es)搜索引擎&#xff0c;安装过程有些曲折&#xff0c;记录下来作为经验。 正文 环境 Ubuntu18.04 操作系统Docker Server Version: 20.10.7ElasticSearch Version: 8.5.3Kibana Version: 8.5.3 说明 E…...

五种单例模式

在整个程序中&#xff0c;保持只有一个实例对象&#xff0c;就是单例模式。 单例模式可以减少构建&#xff0c;GC的次数&#xff0c;提升性能&#xff0c;还能减少堆内存的开销。 1. 懒汉式 在需要使用对象的时候&#xff0c;才进行创建 通过private构造方法&#xff0c;确保…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...