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

OSPF的不规则区域

1.远离骨干非骨干区域

2.不连续骨干

解决方案

tunnel ---点到点GRE

在合法与非ABR间建立隧道,然后将其宣告于OSPF协议中;

缺点:1、周期和触发信息对中间穿越区域造成资源占用(当同一条路由来自不同区域,路由器会先选择区域0的,如果都是非0区域,在比较开销值)

           2、选路不佳

OSPF虚链路

由合法ABR,给同一区域的非法ARB进行授权,之后非法ABR能够进行区域间路由共享;

[r2]ospf 1

[r2-ospf-1]area  1  两台ABR均存在的区域

[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4  对端ABR的RID;两台ABR均需配置

优点:没有新的数据链路出现,故选路正常; 

缺点:两台ABR之间的周期信息,依然对中间区域造成影响,增加延时

cisco思科--- 取消两台ABR间所有的周期信息,仅存在触发更新-- 不可靠

     华为 --- 保留所有的周期信息,对中间区域资源占用严重

多进程双向重发布(推荐)

多进程 ---  一台路由器上允许的多个ospf进程,每个进程运行独立的接口(一个接口只能宣告于一个进程中);存在独立的邻居,生成独立的数据库,且数据库间不做共享;仅将所有数据库计算所得的路由加载于同一路由表中;

可以将非法ABR上,不同区域宣告与不同的OSPF进程,造成独立的协议;之后使用重发布进行,将该非法ABR转换为ASBR,进行协议间路由条目共享即可;

不存在选路不佳问题,不存在周期资源占用,和不可靠问题;

双向重发布

[r4]ospf 1

[r4-ospf-1]import-route ospf 2

[r4-ospf-1]q

[r4]ospf 2

[r4-ospf-2]import-route ospf  1

OSPF的数据库表

<r1>display  ospf lsdb   查看数据库目录

OSPF的数据库是由大量的LSA组成;LSA-- 链路状态通告

LSDB--链路状态数据库 --  各种LSA构成

每一条LSA携带具体的拓扑或者路由信息;不同环境下将产生不同类别的LSA;

<r1>display  ospf lsdb network 12.1.1.1  查看具体的一条LSA信息

                                       类别名   link-id

无论哪类LSA,均存在以下基本参数

  Type      : Router   类型名,此处为1类

  Ls id     : 1.1.1.1   该条目在目录中的编号(页码号)

  Adv rtr   : 1.1.1.1   通告者 -- 该条LSA的更新源设备的RID

  Ls age    : 1666  老化时间,周期1800s刷新,触发马上刷新;最大老化3609s

  Len       : 48         数据包长度

  seq#      : 80000015   序列号     更新后变化

  chksum    : 0x6f95      校验码号  更新后变化

类型名              传播范围           通告者                 携带信息

1/ Router            单区域         该区域的每台路由器       本地直连拓扑

2/Network            单区域          单网段内的DR         单个MA网络内的拓扑 

3/summary         整个OSPF域          ABR                  域间路由

4/asbr         除ASBR所在区域外        ARB                ASBR位置

    的整个OSPF域(ASBR所在区域使用1类告知位置)  

5/Ase              整个OSPF域          ASBR                域外路由

7/nssa             单个NSSA区域内      ASBR                 域外路由

类别名          LS-ID                       通告者

 Router       通告者RID                  该区域的每台路由器      

Network      DR在该网段接口的ip地址    单网段内的DR

Summary     域间路由的目标网络号   ABR 在经过下一台ABR,修改为新的ABR

Asbr         ASBR的RID            ABR 在经过下一台ABR,修改为新的ABR

Ase          域外路由的目标网络号           ASBR

Nssa        域外路由的目标网络号           ASBR

1类Lsa的类型有四种,分别为p2p、stubnet、transnet、virtual;

Transnet类型:

Link id:表示伪节点的信息

            Data:表示自身连接伪节点的IP

            link type:描述1类Lsa的类型,transnet表示为广播或NBMA类型

            Metric:开销值

P2P类型:

 Link id:表示邻居信息;

         Data:表示自身与邻居相连的接口;

         Link type:描述1类Lsa的类型,p2p表示网络类型为P2P,

         Metric:表示链路的开销值。

stubnet类型:

   Link id:自身直连的路由网络号;

         Data:表示该网络号的掩码;

         Link type:表示为节点信息;

         Metric:表示链路的开销值。

虚链路的配置为:

[区域]vlink-peer  对端的router id

      从而生成一条link type为virtual的一类的lsa。其link id表示虚链路的对端路由的router id,data表示自身去往虚链路的接口。

优化OSPF的LSA   减少LSA的更新量

【1】手工汇总 --- 减少骨干区域的LSA

1) 域间路由汇总  --- 只能在区域间传递3类LSA时,进行手工的路由汇总

在ABR上配置

[r1]ospf 1

[r1-ospf-1]area  2   本地通过该区域的1/2LSA拓扑计算所得路由才能汇总

[r1-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.254.0

2) 域外路由汇总--当ASBR将其他协议产生的路由条目重发布进入OSPF域时,可以进行汇总配置

[r4]ospf 1

[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

【2】特殊区域 --- 减少非骨干区域的LSA

不能是骨干区域,不能存在虚链路;

  1. 不能存在ASBR

1」末梢区域 --  该区域拒绝,外部进入的4/5的LSA;由该区域连接骨干的ABR,向内部产生一条3类的缺省路由

[r5]ospf 1

[r5-ospf-1]area  2  该区域内所有路由器均需配置

[r5-ospf-1-area-0.0.0.2]stub

2」完全末梢区域 --- 在末梢区域的基础上,仅一步拒绝3类LSA的进入;仅保留一条3类缺省的进入

先将该区域配置为末梢区域

然后仅在ABR上配置完全末梢即可;

[r1]ospf 1

[r1-ospf-1]area  2

[r1-ospf-1-area-0.0.0.2]stub no-summary

不能是骨干区域,不能存在虚链路;

  1. 存在ASBR

1」NSSA--非完全末梢区域;该区域拒绝4/5的LSA;本地ASBR产生的域外路由,使用7类在本NSSA区域传递,通过ABR进入骨干区域,被转换成5类;由该区域连接骨干的ABR向内部发送一条7类缺省;

其存在的价值,是为了让该区域拒绝其他区域的,ASBR产生的4/5类LSA进入

[r4]ospf 1

[r4-ospf-1]area  1

[r4-ospf-1-area-0.0.0.1]nssa

2」完全NSSA -- 在普通NSSA的基础上,进一步拒绝3的类LSA进入该区域;由该区域连接骨干的ABR向内部发布一条3类缺省

先将区域配置为NSSA,然后仅在连接骨干的ABR上,定义完全即可

[r3]ospf 1

[r3-ospf-1]area  1

[r3-ospf-1-area-0.0.0.1]nssa  no-summary

补充:

1、点到点网络类型   down -->init -- >(前提为可以建立邻接)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full  若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;

2、MA网络类型  down -->init -- >2way-->(前提为可以建立邻接,通过DR/BDR选举后来判断)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full  若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;

3、当hello time较大时,状态机在down和init之间将出现尝试等待状态;

相关文章:

OSPF的不规则区域

1.远离骨干非骨干区域 2.不连续骨干 解决方案 tunnel ---点到点GRE 在合法与非ABR间建立隧道&#xff0c;然后将其宣告于OSPF协议中&#xff1b; 缺点&#xff1a;1、周期和触发信息对中间穿越区域造成资源占用&#xff08;当同一条路由来自不同区域&#xff0c;路由器会先…...

大数据新视界 --大数据大厂之 Ibis:独特架构赋能大数据分析高级抽象层

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

总结TypeScript相关知识

目录 引入认识特点安装使用变量声明类型推导 JS 和 TS 共有类型number类型boolean类型string类型Array类型null和undefined类型object类型symbol类型对象类型函数类型 可选和只读type 和 interface索引签名类型断言非空类型断言类型缩小严格赋值检测现象TS 新增类型字面量类型a…...

pdf怎么编辑修改内容?详细介绍6款pdf编辑器功能

■ pdf怎么编辑修改内容&#xff1f; PDF&#xff08;Portable Document Format&#xff09;作为一种广泛使用的文件格式&#xff0c;具有特点包括兼容性强、易于传输、文件安全性高、跨平台性、可读性强、完整性、可搜索性、安全性、可压缩性。 PDF文件本身是不可以直接进行编…...

【Blender Python】4.获取场景对象的几种方式

概述 有时候我们需要获取场景中已经添加或存在的对象。本节就总结在Blender Python中获取场景中对象的一些方法。 通过名称获取 py.data的objects()方法返回一个对象集合&#xff0c;可以使用键名或者下标形式获取具体的对象。 在默认新建的场景中&#xff0c;存在三个对象…...

鸿蒙harmonyos next flutter通信之EventChannel获取ohos系统时间

建立通道 flutter代码&#xff1a; EventChannel eventChannel EventChannel("com.xmg.eventChannel"); ohos代码&#xff1a; //定义eventChannelprivate eventChannel: EventChannel | null null//定义eventSinkprivate eventSink: EventSink | null null//建…...

Python 代码编写规范

本规范旨在为 Python 项目的代码编写提供一致性指南。它遵循 Python 社区的 PEP 8 标准&#xff0c;并结合了通用的编程最佳实践。 1. 编码风格 1.1 缩进 使用 4 个空格 作为缩进&#xff0c;不要使用制表符&#xff08;Tab&#xff09;。 def example():if True:print(&quo…...

k8s中pod的管理

一、资源管理 1.概述 说到k8s中的pod&#xff0c;即荚的意思&#xff0c;就不得不先提到k8s中的资源管理&#xff0c;k8s中可以用以下命令查看我们的资源&#xff1a; kubectl api-resources 比如我们现在需要使用k8s开启一个东西&#xff0c;那么k8s通过apiserver去对比etc…...

JavaScript中引用数据类型的浅拷贝

在JavaScript中&#xff0c;数据类型被分为“基本数据类型”和“引用数据类型”两大类。基本数据类型包括数值型、字符型、逻辑型、未定义型(undefined)、空型(null)和ES6新增的Symbol类型&#xff0c;引用数据类型包括数组、对象和函数。 当我们在程序中执行变量赋值操作的时候…...

自闭症寄宿学校陕西:提供综合发展的教育环境

在陕西这片古老而充满希望的土地上&#xff0c;有一所特殊的学校——星贝育园康复中心&#xff0c;它如同一座灯塔&#xff0c;照亮了无数自闭症儿童及其家庭前行的道路。这所全国规模较大的广泛性发育障碍全托寄宿制儿童康复训练机构&#xff0c;不仅以其专业的康复训练和独特…...

JS模块化工具requirejs详解

文章目录 JS模块化工具requirejs详解一、引言二、RequireJS 简介1、什么是 RequireJS2、RequireJS 的优势 三、RequireJS 的使用1、配置 RequireJS1.1、基础配置 2、定义模块3、加载模块 四、总结 JS模块化工具requirejs详解 一、引言 随着前端技术的快速发展&#xff0c;Jav…...

JavaScript中的异步编程:从回调到Promise

在JavaScript中&#xff0c;异步编程是一项至关重要的技能&#xff0c;它允许我们在不阻塞主线程的情况下执行耗时操作&#xff0c;如网络请求、文件读取或定时任务。随着JavaScript的发展&#xff0c;异步编程的模式也在不断演进&#xff0c;从最初的回调函数&#xff0c;到现…...

windows下DockerDesktop命令行方式指定目录安装

windows下DockerDesktop指定目录安装(重新安装) 因为DcokerDesktop占用内存较大, 并且拉去镜像后占用本地空间较多,所以建议安装时就更改默认安装路径和镜像存储路径 这里,展示了从下载到安装的过程: 首先下载DcokerDesktop;找到Docker Desktop Installer.exe 并重命名为 do…...

排查和解决JVM OOM实战

JVM OOM介绍 Java内存区域布局 下面的分析中都是基于JDK 8开始的。关于JMM不过多介绍每个区域的作用。OOM不单只会发生在堆内存&#xff0c;也可能是因为元空间或直接内存泄漏导致OOM&#xff0c;此时在OOM的详细信息中会有不同体现。 Java OOM的类别 java.lang.OutOfMemory…...

【Swift官方文档】7.Swift集合类型

集合类型 使用数组、集合和字典来组织数据。Swift 提供了三种主要的集合类型&#xff1a;数组、集合和字典&#xff0c;用于存储值的集合。数组是有序的值集合。集合是无序的唯一值集合。字典是无序的键值对集合。 Swift 中的数组、集合和字典始终清晰地指明它们可以存储的值…...

QT调用最新的libusb库

一&#xff1a;下载libusb文件 下载最新的库的下载网站&#xff1a;https://libusb.info/ 下载&#xff1a; 解压后目录如下&#xff1a; 二&#xff1a;库文件添加QT中 根据自己的编译器选择库&#xff1a; ①将头文件中添加libusb.h ②源文件中添加libusb-1.0.lib ③添加…...

白嫖EarMaster Pro 7简体中文破解版下载永久激活

EarMaster Pro 7 简体中文破解版功能介绍 俗话说得好&#xff0c;想要成为音乐家&#xff0c;就必须先拥有音乐家的耳朵&#xff0c;相信很多小伙伴都已经具备了一定的音乐素养&#xff0c;或者是说想要进一步得到提升。那我们就必须练好听耳的能力&#xff0c;并且把这种能力…...

使用JavaScript写一个网页端的四则运算器

目录 style(内联样式表部分) body部分 html script 总的代码 网页演示 style(内联样式表部分) <style>body {font-family: Arial, sans-serif;display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;}.calculator {…...

Linux find命令详解及实用示例

Linux 系统中的 find 命令是一个功能强大的工具&#xff0c;用于在文件系统中搜索文件并执行相应的操作。无论是系统管理员还是普通用户&#xff0c;掌握 find 命令都能极大地提高工作效率。本文将详细介绍 find 命令的用法&#xff0c;并通过多个示例展示其在实际中的应用。 …...

CSS基础-常见属性(二)

6、CSS三大特性 6.1 层叠性 如果样式发生冲突&#xff0c;则按照优先级进行覆盖。 6.2 继承性 元素自动继承其父元素、祖先元素所设置的某些元素&#xff0c;优先继承较近的元素。 6.3 优先级 6.3.1 简单分级 1、内联样式2、ID选择器3、类选择器/属性选择器4、标签名选择器/…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

二叉树-144.二叉树的前序遍历-力扣(LeetCode)

一、题目解析 对于递归方法的前序遍历十分简单&#xff0c;但对于一位合格的程序猿而言&#xff0c;需要掌握将递归转化为非递归的能力&#xff0c;毕竟递归调用的时候会调用大量的栈帧&#xff0c;存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧&#xff0c;而非…...

Git 命令全流程总结

以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结&#xff0c;按操作场景分类整理&#xff1a; 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...

【threejs】每天一个小案例讲解:创建基本的3D场景

代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone&#xff0c;无需安装依赖&#xff0c;直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景&#xff08;Scene&#xff09; 使用 THREE.Scene(…...

MCP和Function Calling

MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09; &#xff0c;2024年11月底&#xff0c;由 Anthropic 推出的一种开放标准&#xff0c;旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而…...