干货文章|特殊区域在OSPF协议中的分析

news2025/2/12 17:46:47

我们都知道OSPF路由器协议是基于SPF算法计算最优路径,当用于SPF算法的LSDB的越大,那么路由器的计算压力就越大,对于一些性能不佳的OSPF路由器来说,如何尽可能地减小LSDB规模也就成了OSPF设计时要考虑到的问题,为了进一步优化LSDB,减少非骨干区域的链路状态信息,OSPF在非骨干区域定义了四种特殊区域:Stub区域,完全Stub区域,Nssa区域,完全Nssa区域。当对于一些性能不佳的边缘设备,我们可以采用配置特殊区域的方式来减轻设备的计算压力,维护设备的稳定。本文是基于读者对OSPF有一定了解的基础之上,通过实验引入的方式,重点分析OSPF特殊区域的工作原理及特点

一、实验案例

1.1 实验描述

本次实验的拓扑来源于XX企业的部分边缘网络结构,R1、R2、R3、R5均运行OSPF路由协议,进程号为10,R1和R2设备运行在Area 1区域;R2和R3设备运行在Area 2区域;R2和R5运行在Area 0区域,R5和R6之间运行静态路由协议,R3和R4之间运行静态路由协议,在R5和R3设备上将静态路由分别引入OSPF区域进行路由的重发布,由于R1和R3设备性能较差,为了更好的运行OSPF路由协议,准备将Area 1和Area 2区域配置成特殊区域,用来减轻设备的计算压力,网络拓扑结构如<图1:XX企业部分边缘拓扑>所示。

图1:XX企业部分边缘拓扑

1.2 IP地址信息规划

1.3 网络设备部分配置

R1设备:

ospf 10 router-id 1.1.1.1

area 0.0.0.1

network 10.1.12.0 0.0.0.255

R2设备:

ospf 10 router-id 2.2.2.2

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 10.1.25.0 0.0.0.255

area 0.0.0.1

network 10.1.12.0 0.0.0.255

area 0.0.0.2

network 10.1.23.0 0.0.0.255

R3设备:

ip route-static 4.4.4.4 255.255.255.255 10.1.34.4

ospf 10 router-id 3.3.3.3

import-route static

area 0.0.0.2

network 3.3.3.3 0.0.0.0

 network 10.1.23.0 0.0.0.255

R4设备:

ip route-static 0.0.0.0 0.0.0.0 10.1.34.3

R5设备:

ip route-static 6.6.6.6 255.255.255.255 10.1.56.6

ospf 10 route-id 5.5.5.5

import-route static

area 0.0.0.0

network 5.5.5.5 0.0.0.0

network 10.1.25.5 0.0.0.0

R6设备:

ip route-static 0.0.0.0 0.0.0.0 10.1.56.5

二、特殊区域的分析

2.1 Stub区域

2.1.1 Area1 LSDB分析

我们可以通过display ospf lsdb的命令查看现R1的链路状态数据库,在<图2 : R1设备的LSDB>中,我们可以看到LSDB中有1类、2类、3类、4类、5类LSA,这几类LSA描述了OSPF区域内、区域间、区域外的路由。

  图2:R1设备的LSDB

2.1.2 Stub区域的关键配置

此时我们为了减少R1设备的LSDB信息,减轻R1设备的计算工作量,我们可以将Area 1配置为Stub区域。

R1:ospf 10      

area 0.0.0.1

     Stub

R2:ospf 10

     area 0.0.0.1

     Stub  

2.1.3 Stub区域的关键内容分析

我们可以通过display ospf lsdb的命令查看R1的链路状态数据库,在<图3:R1设备的LSDB>中,我们可以发现Stub区域内已经不存在4类和5类LSA,只存在1类、2类和3类LSA。看到这里我们会思考一个问题,既然Area1内已经没有4类LSA和5类LSA,那么R1是怎么去访问外部AS路由的呢?我们对比图2和图3就可以得出,LSDB中新增一条三类LSA的默认路由,且Adv为2.2.2.2,则R1设备访问外部路由就是通过R2设备下发的默认路由访问外部路由的。

图3:R1设备的LSDB

可以试想,如果我们想在R1上引入外部路由,那么是否可行呢?我们可以在设备R1上引入直连,我们会发现OSPF的LSDB并没有任何变化,说明在Stub区域内是不允许引入外部AS的路由的。

2.1.4 Stub区域总结

2.2 完全Stub区域

2.2.1  完全Stub区域的关键配置

R1: ospf 10

area 0.0.0.1

     stub no-summary

R2: ospf 10

area 0.0.0.1

     stub no-summary

2.2.2 完全Stub区域的关键内容分析

通过Stub区域的分析,我们还希望能够进一步减少LSDB的条目信息,于是我们将整个区域配置成了完全Stub区域,在<图4:R1设备的LSDB>中,我们可以发现完全Stub区域在普通Stub区域的基础上也不允许区域间路由(三类LSA)在本区域内传播。完全stub区域内的路由器对其他区域及自治系统外部的访问需求是通过本区域ABR所产生的三类LSA缺省路由实现的。由此可见,完全Stub区域相对于Stub区域更进一步的简化了LSDB。

图4:R1设备的LSDB

2.2.3 完全Stub区域总结

2.2.4 Stub区域和完全Stub区域存在的问题

根据OSPF路由协议对Stub和完全Stub区域的规定,这两个区域是不能引入外部路由的,这样虽然避免大量外部路由对Stub区域设备资源的消耗,降低了Stub区域路由设备的压力。但是,对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和完全 Stub区域就不能满足需求了。所以,需要NSSA区域和完全 NSSA区域。

2.3 Nssa区域

2.3.1 Area2 LSDB分析

我们可以通过display ospf lsdb的命令查看现R3的链路状态数据库,在<图5:R3设备的LSDB>中,我们可以看到LSDB中有1类、2类、3类、4类、5类LSA,这几类LSA描述了OSPF区域内、区域间、区域外的路由。

图5:R3设备的LSDB

2.3.2 Nssa区域关键配置

R1:ospf 10      

area 0.0.0.2

     Nssa

R2:ospf 10

     area 0.0.0.2

     Nssa

2.3.3 Nssa区域的关键内容分析

我们可以通过display ospf lsdb的命令查看现R3的链路状态数据库,在<图6:R3设备的LSDB>中,我们可以发现Nssa区域内和Stub区域一样,已经不存在4类和5类LSA,但是Nssa区域存在1类、2类、3类和7类LSA。为了让NSSA区域内的路由器能够通过骨干区域到达AS外部,NSSA区域的ABR设备R2会自动向该区域注入一条缺省路由,该路由采用7类LSA描述。

其实当R3将外部静态路由4.4.4.4引入NSSA区域时,R3作为ASBR生成7类LSA在Area 2内泛洪;Area 2内的路由器依然会收到R3注入的3类LSA,并计算出到达其他区域的区域间路由。Nssa区域和Stub两者的差别在于,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由。

图6:R3设备的LSDB

我们可以通过display ospf lsdb的命令查看现R2关于的链路状态数据库,在<图7:R2设备的LSDB>中,我们可以看到在Area 0和Area 1中并不存在七类Nssa LSA,只有在Area2中才存在七类Nssa LSA,并且关于R3设备引入的静态路由4.4.4.4在Nssa以外的区域均以5类LSA进行传递,也就是在R2设备上发生了七类LSA转5类LSA的现象。

图7:R2设备的LSDB

2.3.4 Nssa区域总结

2.4 完全Nssa区域

2.4.1 完全Nssa区域的关键配置

R1:ospf 10      

area 0.0.0.2

     Nssa no-summary

R2:ospf 10

     area 0.0.0.2

     Nssa no-summary

2.4.2 完全Nssa区域的关键内容分析

Totally NSSA区域和NSSA区域类似,只是Totally NSSA区域的ABR会阻挡3类LSA进入该区域,因此R2设备不会将区域间路由注入Area2,我们可以看到在<图8:R3设备的LSDB>中,只会存在一条3类LSA的默认路由。

图8:R3设备的LSDB

2.4.3 完全Nssa区域的总结

三、总结

读到这里,相信大家对OSPF的特殊区域有了一定的了解,实际上OSPF通过对边缘区域的3类、4类、5类和7类LSA的控制来缩减LSDB规模,从而降低路由计算的复杂度,使得OSPF路由器不会产生很大的计算压力。这样既能完成路由计算,又可以加快收敛速度,在边缘结构网络中用处较多。

以上就是今天的文章内容,如有疏漏之处,请读者朋友指正。

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

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

相关文章

Vim学习(二)—— 编译C程序

打开终端&#xff0c;这里以MobaXterm为例&#xff0c; 邮件创建新的空文件并命名&#xff0c; 然后cd到对应路径下&#xff0c;用 vim hello.cvim打开创建的文件&#xff0c;进入编辑模式&#xff0c;编辑完程序后按Esc退出编辑模式&#xff0c;输入 :wq保存并退出&#xf…

C++——vector介绍及其简要模拟实现

vector的介绍 此主题介绍转载自(https://cplusplus.com/reference/vector/vector/) 1.vector是一个表示可变大小数组的序列容器 2.vector同数组一样&#xff0c;采用连续存储空间来存储元素&#xff0c;这样可以用下标来对vector中的元素进行访问&#xff0c;但是vector的大…

centos7 安装桌面

先装 xrdp $ sudo yum install -y epel-release $ sudo yum install -y xrdp $ sudo systemctl enable xrdp $ sudo systemctl start xrdp开防火墙端口 $ sudo firewall-cmd --add-port3389/tcp --permanent $ sudo firewall-cmd --reload比较喜欢 GNOME $ sudo yum groupin…

python自动化:系统凭据的获取与添加

在自动化流程开发中&#xff0c;我们经常会遇到输入帐号、密码的情况&#xff0c;帐号明文还可以&#xff0c;但是密码不想展示给他人&#xff0c;但是不想自己去手动输入怎么办&#xff1f; 基于以上情况我们可以使用windows自带的凭据管理器进行密码存储&#xff0c;其实我们…

数据结构与算法之时间空间复杂度

主要简介 1. 时间复杂度:运行一个程序所花费的时间。O() 2. 空间复杂度&#xff1a;运行程序所需要的内存 OOM&#xff0c;开了空间的地方&#xff0c; 比如 数组 链表&#xff0c;缓存对象&#xff0c;递归 时间复杂度表示方式 O(1),O(n),O(nlogn),O(n^2),O(n1),O(logn),O(n!…

造个轮子-任务调度执行小框架-任务清单执行器实现

文章目录 前言执行器流程提交流程线程池实现执行器实现接口状态标志执行周期实现清单代理创建清单项执行总结前言 okey,上一篇文章我们提到了,如何实现它的一个清单的一个代理。这里的话我们来捋一捋我们的这个执行流程是啥: 所以的话,我们的我们这里今天要做的是这个执行…

Jmeter - 函数助手

__StringFromFile StringFromFile函数用于获取文本文件的值&#xff0c;一次读取一行 1、输入文件的全路径&#xff1a;填入文件路径 2、存储结果的变量名&#xff08;可选&#xff09; 3、Start file sequence number (opt)&#xff1a;初始序列&#xff0c;例如从第3行开始读…

ATFX汇评:美7月通胀率数据基本符合预期,美指仍无法站稳103关口

ATFX汇评&#xff1a;据美劳工部&#xff0c;美国7月未季调CPI年率&#xff0c;最新值3.2&#xff0c;高于前值3%&#xff0c;低于预期值3.3%&#xff0c;这标志着连续12个月的下降已经停止&#xff1b;7月未季调核心CPI年率&#xff0c;最新值4.7%&#xff0c;低于前值4.8%&am…

Poco框架(跨平台自动化测试框架)

Poco基于UI控件搜索原理 &#xff0c;适用于Android、iOS原生和各种主流的游戏引擎应用。 中文官方文档&#xff1a;欢迎使用Poco (ポコ) UI自动化框架 — poco 1.0 文档 参考文档&#xff1a; Poco介绍 - Airtest Project Docs 环境准备 安装库&#xff1a;pip install po…

本地安装hadoop及其依赖组件

安装目录以及各个版本 大数据安装版本 软件版本备注hadoophadoop-3.3.4hdfs基础sparkspark-3.2.4-bin-hadoop3.2计算框架zookeeperapache-zookeeper-3.5.7-bin分布式服务器hbasehbase-2.4.11列式存储hiveapache-hive-3.1.3-bin数仓元数据 启动服务 su - hadoop -- 启动hadoo…

Vue3 nodejs 安装和配置---vue3教程一

文章目录 前言1、nodejs安装2、配置缓存路径&#xff1a;3、 阿里镜像cnpm使用4、 yarn安装5、配置nodejs国内镜像6、查看各个版本7、node npm yarn概念8、nodejs 和vue 关系外传 前言 本人主做后端Java&#xff0c;以前搞全栈开发是&#xff0c;还没有vue,rect等前端框架&…

如何解决物流投诉问题,拥有更多的回头客?

在电商物流中&#xff0c;客户投诉比较多的一块通常是配送延迟或派送问题。以下是一些可能导致此类问题的原因以及解决方法&#xff1a; 配送员数量不足或调度不合理&#xff1a;电商企业可能面临配送员不足的情况&#xff0c;导致派送时间延长或出现派送失败等问题。解决方法…

【写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串】

写一个函数&#xff0c;判断一个字符串是否为另外一个字符串旋转之后的字符串 1.题目 写一个函数&#xff0c;判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如&#xff1a;给定s1 AABCD和s2 BCDAA&#xff0c;返回1 给定s1abcd和s2ACBD&#xff0c;返回0. AABCD左…

40 proc 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…

为何不禁用危险的memcpy或更新memcpy源码,而使用更安全的memcpy_s

关于使用更安全的memcpy_s而不禁用危险的memcpy或更新memcpy源码的问题&#xff0c;以下是一些考虑因素&#xff1a;首先&#xff0c;memcpy_s并不是绝对安全的实现。尽管它要求您提供一个长度参数来确保不会发生溢出或越界问题&#xff0c;但这个长度仍然需要您自己提供&#…

液压系统比例阀放大器US-DAT2-F、US-DAPQ-N、US-DAS2

比例放大器US-DAS1、US-DAS2、US-DAPQ-N、US-DAPQ-H、US-P1、US-P2、US-DAT2-F、US-DAT2-A适配控制各种不带位置反馈比例阀&#xff1b; 控制如博世力士乐&#xff08;Bosch Rexroth&#xff09;、伊顿威格士&#xff08;EATON Vickers&#xff09;、油研&#xff08;YUKEN&am…

从小白到大神之路之学习运维第78天-------Kubernetes集群应用部署测试

第四阶段 时 间&#xff1a;2023年8月11日 参加人&#xff1a;全班人员 内 容&#xff1a; Kubernetes集群应用部署测试 目录 应用部署测试 应用部署测试 下面我们部署一个简单的Nginx WEB服务&#xff0c;该容器运行时会监听80端口。 &#xff08;一&#xff09;环境…

vue报错‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

运行我的后台管理项目的时候报错&#xff1a;‘vue-cli-service’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 查看自己package.json中是否有vue 或者vue-cli-service 查看自己项目目录下有没有node_module文件夹&#xff0c;如果有删除&#xff0c;然后…

uprobe trace多线程mutex等待耗时

问题背景环境 ubuntu2204 服务器支持debugfs uprobe&#xff0c;为了提升应用程序的性能&#xff0c;需要量化不同参数下多线程主程序等待在mutex上的耗时区别 linux document中对uprobe events的说明如下 uprobetracer.rst - Documentation/trace/uprobetracer.rst - Linux…

什么是分布式系统,如何学习分布式系统

正文 虽然本人在前面也写过好几篇分布式系统相关的文章&#xff0c;主要包CAP理论&#xff0c;分布式储存与分布式事务&#xff0c;但对于分布式系统&#xff0c;并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议&#xff0c;很多人也说&#xff0c;分布式系统…