当前位置: 首页 > 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;确保…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...