OSPF 协议(多区域)

1. OSPF 单区域存在的问题

① LSDB庞大,占用内存大,SPF计算开销大;

② LSA洪泛范围大,拓扑变化影响范围大;

③ 路由不能被汇总,路由表庞大,查找路由开销大。

2. OSPF 多区域优点

① 每个区域独立存储LSDB,划分区域减小了LSDB;

② LSA洪泛被限制在区域内,有效控制了拓扑变化的影响范围;

③ 区域边界可以做路由汇总,减小了路由表。

3. OSPF 多区域的基本概念

3.1 多区域基本概念——区域分类

OSPF多区域基本结构:

  • 骨干区域:即Area 0,OSPF的Area 0 必须是连续的,不能被分割。
  • 非骨干区域:必须和Area 0直接相连,非骨干区域之间不能直接交换路由信息,必须通过Area 0。
  • 特殊区域:具有某些特殊性质的区域,如Stub、NSSA区域。

3.2 多区域基本概念——LSDB

OSPF多区域链路状态数据库:

  • 每个区域都有自己独立的LSDB,SPF计算独立运行。
  • LSA洪泛和LSDB同步只在区域内进行。

3.3 多区域基本概念——ABR(区域边界路由器)

OSPF对区域间路由信息的描述:

       OSPF只知道本区域的拓扑结构,并不知道其他区域的拓扑结构,其他区域的路由信息,依靠本区域的ABR来描述。

       ABR先计算区域内的LSA 1、2,并为计算出来的路由向其他区域发起LSA 3,而且为Area 0中的LSA 3向其他区域重新发起LSA 3。

3.4 多区域基本概念——ASBR

OSPF对外部路由信息的描述:

        OSPF通过ASBR(自治系统边界路由器)来描述外部路由的可达性。

         ASBR为外部路由发起LSA 5,在整个OSPF路由域中洪泛。

4. OSPF多区域LSA类型

          LSA 1、2、4含有拓扑信息,LSA 3、5、7含有路由信息。

OSPF LSA类型
名称发起路由器洪泛范围Link State ID作用描述
1

Router LSA

(路由器 LSA)

OSPF路由器单区域内生成这条LSA的路由器的Router ID描述路由器的直连拓扑信息(接口 IP、掩码、邻居 Router ID 等 )每个路由器都会生成。这种LSA的描述某区域内路由器端口链路状态的集合,只在所描述的区域内泛洪。
2

Network LSA

(网络 LSA)

DR单区域内所描述网段上DR的端口IP地址描述多路访问网络DR邻接的一组路由器Router ID和当前网段的子网掩码信息由DR生成,用于描述广播型网络和NBMA网络,这种LSA包含了该网络上所连接路由器的列表,只在该网络所属的区域内泛洪。

3

Summary LSA

(汇总 LSA)

ABR跨区域泛洪,但仅限 ABR 连接的 OSPF 区域所描述的目的网段的地址描述区域间的路由信息由区域边界路由器(ABR)产生,描述到AS内部本区域外部某一网段的路由信息,在该LSA所生成的区域内泛洪。
4

ASBR LSA 

ABR除 ASBR 所在区域外的其他 OSPF 区域所描述的ASBR的Router ID描述区域间ASBR的可达性由区域边界路由器(ABR)产生,描述到某一自治系统边界路由器(ASBR)的路由信息,在ABR所连接的区域内泛洪(ASBR所在区域除外)
5

External LSA

(外部路由LSA)

ASBROSPF自治系统(除特殊区域)所描述的目的网段的地址描述OSPF外部路由由自治系统边界路由器(ASBR)产生,描述到AS外部某一网段的路由信息,在整个AS内部泛洪。
7NSSA LSANSSA ASBR仅在NSSA区域内描述NSSA区域的OSPF外部路由

5. OSPF LSA的洪泛

        ABR (如 R1、R6 )负责区域间 3 类 LSA 转换、传递;ASBR (如 R2 )引入外部路由,触发 5 类 LSA 生成,ABR(R6)触发4类LSA生成,共同支撑 OSPF 域与外部网络的路由互通,让不同区域、不同协议的网段(如 10.1.37.0/24、172.16.6.1/24 )能被全网学习 。

6. OSPF区域间路由传播与计算

10.1.3.0/24的传播与计算过程

步骤一:Area 1 内1类LSA发起(RT3角色)

  • 行为:RT3作为Area 1内路由器,生成1类LSA,包含自身直连10.1.3.0/24网段(掩码/24,开销10)及邻接信息,在Area 1内洪泛
  • 作用:向Area 1内其他设备(如RT1)传递自身直连拓扑,是OSPF区域内拓扑发现基础。


步骤二:ABR(RT1)的路由计算与3类LSA生成

  • 行为:RT1接收RT3的1类LSA后,执行Area 1内SPF算法,计算出10.1.3.0/24路由(开销110)并加入OSPF路由表;同时,因RT1是Area 1和Area 0的ABR,将10.1.3.0/24封装为3类LSA,向Area 0洪泛,用于跨区域路由传递。
  • 作用:ABR实现区域间路由转发,3类LSA是OSPF跨区域路由信息载体。


步骤三:Area 0内3类LSA洪泛(RT5、RT6接收)

  • 行为:RT1发往Area 0的3类LSA(含10.1.3.0/24网段、开销110),在Area 0内洪泛,RT5、RT6接收LSA,获取跨区域路由信息。
  • 作用:让Area 0内设备知晓Area 1存在10.1.3.0/24网段,扩展路由信息传播范围。


步骤四:ABR(RT6)的跨区域转发(Area 0 ->Area 2)

  • 行为:RT6作为Area 0和Area 2的ABR,接收Area 0内3类LSA后,重新计算开销(变为310),生成新的3类LSA并向Area 2洪泛,同时将路由加入自身OSPF路由表(开销310、下一跳指向Area 0内邻居)。
  • 作用:完成10.1.3.0/24路由从Area 0到Area 2的跨区域传递,ABR负责不同区域间LSA转换与洪泛。


步骤五:Area 2内3类LSA接收(RT2 角色)

  • 行为:RT6发往Area 2的3类LSA(开销310)在Area 2内洪泛,RT2接收该LSA,为后续路由计算、跨协议重发布做准备。
  • 作用:让Area 2内设备(如RT2)学习到10.1.3.0/24路由,实现多区域路由覆盖。


步骤六:RT2的路由计算与加入全局路由表

  • 行为:RT2接收Area 2内3类LSA后,执行Area 2内SPF算法,计算10.1.3.0/24路由(开销110/410)并加入全局路由表(出接口S2、下一跳10.2.26.2)。
  • 作用:RT2作为双协议(OSPF、RIP)设备,为路由重发布(OSPF->RIP)提供基础,将OSPF路由整合进自身全局路由管理。


步骤七:OSPF->RIP路由重发布(RT2角色)

  • 行为:RT2配置路由重发布(redistribute ospf 1 metric 5),将全局路由表中10.1.3.0/24的OSPF路由,注入RIP数据库(RIP路由表),并通过RIP协议向RT4发送更新。
  • 作用:实现跨协议(OSPF与RIP)路由共享,让RIP网络(RT4所在)学习到OSPF域内10.1.3.0/24网段路由。

7. OSPF外部路由传播与计算

172.16.4.0/24的传播与计算过程

步骤 1:外部路由引入(ASBR 角色激活)

  • 动作:RT2 通过 RIP 从 RT4 学习到 172.16.4.0/24 路由,配置 redistribute rip subnets metric 1000 metric-type 1,将其重发布到 OSPF 域。
  • 关键结果:RT2 成为 ASBR(自治系统边界路由器 ),生成 5 类 LSA(携带 172.16.4.0/24 路由、开销 1000、类型 1 等信息 );同时,RT2 的 1 类 LSA 标记 ASBR=1,宣告自身 ASBR 身份。

步骤 2:5 类 LSA 全域洪泛(OSPF 域内传播)

  • 动作:RT2 发起的 5 类 LSA,在整个 OSPF 域(Area 0/1/2 )洪泛。
  • 关键结果:RT5、RT6、RT1、RT3 均接收该 LSA,知晓 “外部路由 172.16.4.0/24 存在,由 RT2 提供”。

步骤 3:4 类 LSA 辅助定位(ASBR 路径传递)

  • 动作:RT6(Area 2 和 Area 0 的 ABR )收到 RT2 的 1 类 LSA(含 ASBR=1 ),在Area 2中洪泛,RT6收到后进行Area 2的SPF计算,计算后生成 4 类 LSA(标识 ASBR 为 RT2 ,LSA ID 为 2.2.2.2 ),洪泛到 Area 0;RT1(Area 0 和 Area 1 的 ABR )收到后,重新生成 4 类 LSA 洪泛到 Area 1 。
  • 关键结果:非 Area 2 的路由器(如 RT3 )通过 4 类 LSA,知晓 “如何找到 ASBR(RT2 )”,为学习外部路由提供路径指引。

步骤 4:区域内外部路由计算(以 RT6 为例,Area 2 )

  • 动作:RT6 结合自身 1 类 LSA(Area 2 内拓扑 )、RT2 的 1 类 LSA(ASBR 身份 )、5 类 LSA(外部路由信息 ),执行 SPF 算法。
  • 关键结果:计算 172.16.4.0/24 路由开销(100 + 1000 = 1100 ),加入 OSPF 路由表。

步骤 5:跨区域路由计算(以 RT3 为例,Area 1 )

  • 动作:RT3 结合 RT1 的 1 类 LSA(Area 1 内拓扑 )、RT1 转发的 4 类 LSA(ASBR 路径 )、5 类 LSA(外部路由信息 ),执行 SPF 算法。
  • 关键结果:计算 172.16.4.0/24 路由总开销(100 + 300 + 1000 = 1400 ),加入 OSPF 路由表。

8. OSPF外部路由开销类型

  • 开销类型1:开销=LSA携带开销+到始发ASBR的开销
  • 开销类型2:开销=LSA携带开销

总结:

1、类型优先级:E1(类型1)> E2(类型2)(E1叠加内部开销,更贴合实际路径成本)

2、同类型比开销:

  • E1比“外部开销+内部路径开销”;
  • E2比“外部开销”

3、ASBR位置影响:内部路径到ASBR越短,总开销可能越低,影响最终选路。

9. OSPF多区域路由计算总结

10. OSPF选路原则

11. OSPF协议的路由聚合/汇总

         ABR或ASBR将具有相同前缀的路由信息聚合后发布到其他区域。

         ①减少LSA3类、LSA5类的数目,减少路由信息;

         ②减小路由表的规模;

         ③提高路由器的运算速度。

         注意,配置命令有not-advertise时,细化路由和汇总路由都不发布,没有时,只发布汇总路由。

12.OSPF 特殊区域

       特殊区域是指人为定义的一些区域,它们在逻辑中一般位于OSPF区域的边缘,只与骨干区域相连。

常见的特殊区域有以下几类:

  • Stub区域  (末梢区域)
  • Totally Stub区域    (完全末梢区域)
  • NSSA区域      (非纯末梢区域)
  • 完全NSSA区域       (完全非纯末梢区域)

(1)Stub区域(末梢区域)

       并不是每一台路由器都需要了解所有外部目的地的信息的。不管OSPF区域外部的目的地在哪里,在区域1中的路由都必须发送数据包到达ABR路由器,以便到达那个ASBR路由器。在这种情况下,区域1可以被配置成为一个末梢区域。
        Stub区域是一个不允许AS外部LSA通告在其内部进行洪泛的区域
Stub区域的特性:
①允许学习Type 3 LSA。
②拒绝Type 4、 Type 5 LSA。
③Default LSA作为Summary LSA注入到该区域,用以弥补学不到Type 5 LSA的信息,通过ABR被宣告到 Stub area。
④外部路由的振荡不会波及Stub区。
在末梢区域中有4个限制条件:
一个末梢区域内部的所有路由器也必须拥有相同的链路状态数据库。
虚链路不能在一个末梢区域内进行配置,也不能穿过一个末梢区域。
末梢区域内的路由器不能是ASBR路由器。
一个末梢区域可以拥有多台ABR路由器,但是因为缺省路由的原因,区域内部路由器不能确定哪一台路由器才是到达ASBR路由器的最优的网关。

(2)Totally Stub区域(完全末梢区域)

不仅使用缺省路由到达OSPF自主系统外部的目的地址,而且使用缺省路由到达这个区域外部的所有目的地址。
完全末梢区域的ABR将不仅阻塞AS外部LSA,而且阻塞所有的汇总LSA,但除了通告缺省路由的那一条类型3的LSA。
完全Stub区域中最受限的形式:
拒绝所有的External LSA : 类型5。
拒绝具体的Summary LSA :类型4和3。
Default LSA作为Summary LSA注入到该区域,用来代表他所拒绝的路由信息。
LSDB更小,路由信息更稳定,路由数量更少;
默认路由+区域内路由;
区域内不会有其他区域的具体路由。

(3)NSSA区域(非纯末梢区域)

带有一些末梢网络的R4必须通过区域2的其中R2和图中的OSPF网络相连。
R4仅支持RIP协议,因此,区域2的R2将同时运行RIP协议和OSPF协议,并利用路由重新分配的方法把末梢网络注入到OSPF域。
上述的配置使区域2的R2成为一台ASBR路由器,因此,区域2就不能再是一个末梢区域了。

(4)完全NSSA区域(完全非纯末梢区域)

完全非纯末梢区域允许外部路由通告到OSPF自主系统内部,并使用缺省路由到达这个区域外部的所有目的地址。
完全非纯末梢区域的ABR将不仅阻塞AS外部LSA,而且阻塞所有的汇总LSA ,但除了通告缺省路由的那一条类型3LSA
拒绝所有的External LSA : 类型5
拒绝具体的Summary LSA :类型43
Default Summary LSA注入到本区域,用来代表他所拒绝的路由信息。

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

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

相关文章

R 语言绘制六种精美热图:转录组数据可视化实践(基于 pheatmap 包)

在转录组 Bulk 测序数据分析中,热图是展示基因表达模式、样本聚类关系的核心可视化工具。一张高质量的热图不仅能清晰呈现数据特征,更能提升研究成果的展示效果。本文基于 R 语言的pheatmap包,整理了六种适用于不同场景的热图绘制方法&#x…

图片PDF识别工具:扫描PDF文件批量OCR区域图识别改名,识别大量PDF区域内容一次性改名

以下是使用“咕嘎批量OCR识别图片PDF多区域内容重命名导出表格系统”进行操作的具体步骤:1. 打开工具并获取区域坐标打开软件后,选择“PDF识别模式”。导入一个PDF文件作为样本,框选需要提取文字的区域,并保存区域坐标。如果有多个…

中国汽车能源消耗量(2010-2024年)

1419中国汽车能源消耗量(2010-2024年)发文主题分布数据来源中华人民共和国工业和信息化部-中国汽车能源消耗量查询中国汽车能源消耗量查询 (miit.gov.cn)时间跨度2010-2024年数据范围全国汽车企业数据指标本数据集包含包含传统汽车能源消耗量数据以及新能…

Python 实现服务器自动故障处理工具:从监控到自愈的完整方案

在服务器运维过程中,80% 的故障都是重复性的简单问题(如磁盘空间不足、内存泄漏、服务进程挂掉等)。本文将介绍如何使用 Python 开发一款轻量级自动故障处理工具,通过状态监控、异常诊断、自动修复三个核心模块,实现服务器常见故障的无人值守处理。 核心依赖库 psutil:跨…

图片上传 el+node后端+数据库

模版部分&#xff1a;鼠标悬浮到头像的部分就出现下拉框显示可以修改头像&#xff0c;el-upload是隐藏的&#xff0c;可能只是为了实现on-change函数和before-upload函数吧这块做的确实有点马虎了。<div class"r-content"><el-dropdown><span class&q…

[java 常用类API] 新手小白的编程字典

目录 1.API 1.1定义: 2.Object类 2.1 toString() 方法 2.2 equals() 方法 3. Arrays 类 3.1 equals() 方法 3.2 sort() 方法 3.2.1排序 3.2.2 自定义对象排序 3.3 binarySearch() 方法 3.4 copyOf() 方法 3.5 fill() 方法 3.6 toString() 方法 4.基本数据类型包装类 4.…

去除视频字幕 2, 使用 PaddleOCR 选取图片中的字幕区域, 根据像素大小 + 形状轮廓

有人问我在搞什么&#xff1a;就是做这里的第2步。问题描述这里误导&#xff0c;误判&#xff0c;太严重了。如果我把这个区域当做是 mask ,那么真正的目标会被去除掉还有什么建议吗&#xff1f;比如我能否根据这个mask 的大致形状来判断它是不是字幕&#xff0c; 如果不是细长…

Ubuntu 连接Visual SVN

Windows服务器上的svn仓库为&#xff1a; https://ldw_online:8443/svn/OnlineRepository/LVC IP地址为192.168.8.8 4. 从 Ubuntu 测试连通性 在 Ubuntu 上可以用&#xff1a; bash 复制编辑 curl -vk https://192.168.8.8:8443/ 如果返回 HTTP 头或 SSL 握手成功&#xff…

JAVA:Spring Boot 集成 Protobuf 的技术指南

🚀 1、简述 在分布式服务通信中,数据序列化与反序列化的效率对系统性能影响极大。Protocol Buffers(Protobuf) 是由 Google 提出的一种高效的结构化数据序列化协议,具有: 🔥 高性能(远优于 JSON/XML) 📦 跨语言支持 📉 较小的体积 本篇将带你了解如何在 Spring…

SQLServer内存释放工具介绍:一款实用的数据库性能优化助手

SQLServer内存释放工具介绍&#xff1a;一款实用的数据库性能优化助手 去发现同类优质开源项目:https://gitcode.com/ 在数据库管理中&#xff0c;内存释放是优化服务器性能的重要环节。本文将为您详细介绍一款名为SQLServer内存释放工具的开源项目&#xff0c;帮助您轻松管理…

《蓝耘容器全栈技术指南:企业级云原生与异构计算实战大全》

&#x1f31f; 嗨&#xff0c;我是Lethehong&#xff01;&#x1f31f; &#x1f30d; 立志在坚不欲说&#xff0c;成功在久不在速&#x1f30d; &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞⬆️留言收藏&#x1f680; &#x1f340;欢迎使用&#xff1a;小智初学计…

计算器3.0:实现用户自定义组件

前言&#xff1a; 马总给我提出计算器3.0新需求&#xff1a;可以在页面上输入一个组件&#xff0c;用户的组件库里面就多一个组件&#xff0c;用户就可以使用 一、解决方法&#xff1a; 1. 新增成员变量和初始化 // 新增的输入框 private InputBox newInputBox; // 新增的组…

PIG AI 全新升级:全新 MCP 能力加持,让企业级 AI 开发效率翻倍!

你是否曾为 AI 应用的开发门槛而头疼?调试代码耗费数小时、集成外部工具需要复杂配置、想要快速构建智能系统却不知从何下手…别担心!PIG AI 最新版本带来的 MCP(Model Context Protocol)能力,正为这些问题提供一站式解决方案。本文将带你深入浅出地了解这一重磅升级,手把…

Springboot+vue超市管理系统的设计与实现

文章目录前言详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits成功系统案例&#xff1a;代码参考数据库源码获取前言 博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续…

一文快速了解Docker和命令详解

本文让你快速了解Docker是什么的东西&#xff0c;在我们程序开发的时候到底有什么作用&#xff0c;为什么需要去学习它。本文章只是做一个简单的概述配套黑马课程让你快速了解、使用Docker。 一、什么是Docker&#xff1f; Docker是一个开源的容器化平台&#xff0c;允许开发者…

【GaussDB】如何从GaussDB发布包中提取出内核二进制文件

【GaussDB】如何从GaussDB发布包中提取出内核二进制文件 背景 GaussDB 从505和506版本起&#xff08;前面的版本不清楚&#xff09;&#xff0c;华为官方不再提供用脚本安装GaussDB的方式&#xff08;应该是基于运维交付标准化的角度考虑&#xff09;&#xff0c;仅支持使用T…

ETH 交易流程深度技术详解

概述在前面对 PolkaVM 和 Revive 的文章中&#xff0c;我们介绍了很多技术细节&#xff0c;开发工具。还对比 EVM&#xff0c;知道了 PolkaVM 的优势。很多同学还是对 Polkadot SDK 为什么可以运行 EVM 兼容的智能合约&#xff0c;以及交易处理的整个流程不太清楚。这篇文章将会…

【算法训练营Day17】二叉树part7

文章目录二叉树的最近公共祖先二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点二叉树的最近公共祖先 题目链接&#xff1a;236. 二叉树的最近公共祖先 解题逻辑&#xff1a; 最近公共祖先的定义为&#xff1a;对于有根树 T 的两个节点 p、q&#xff0c…

Vue插件与组件核心区别详解

在 Vue 中&#xff0c;插件&#xff08;Plugin&#xff09; 和 组件&#xff08;Component&#xff09; 是两种不同层次的概念&#xff0c;它们的主要区别如下&#xff1a;1. 组件 (Component) 定义&#xff1a; Vue 应用的基本构建单元&#xff0c;是可复用的 Vue 实例&#x…

基础NLP | 02 深度学习基本原理

文章目录 深度学习基本原理 数学基础 线代 numpy 常用操作 导数, 梯度 梯度下降法 梯度下降代码 GradientDescent.py 反向传播 完整的反向传播过程 权重更新方式 pytorch 网络结构 全连接层 (线性层) 例子 - 手动实现模拟一个线性层 DNNforward.py 激活函数 激活函数-Sigmoid…