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

OSPF的各种LSA类型,多区域及特殊区域

一、OSPF的LSA类型

OSPF(开放最短路径优先)协议使用多种LSA(链路状态通告)类型来交换网络拓扑信息。以下是主要LSA类型的详细分类及其作用:

1. Type 1 LSA(路由器LSA)

  • 生成者:每个OSPF路由器。

  • 传播范围:仅在本区域内泛洪。

  • 功能:描述路由器的直连链路状态和邻居信息,构建区域内的拓扑结构。

2. Type 2 LSA(网络LSA)

  • 生成者:广播网络或NBMA网络中的DR(指定路由器)

  • 传播范围:仅在本区域内泛洪。

  • 功能:列出连接在同一网络上的所有路由器,辅助构建多路访问网络的拓扑。

3. Type 3 LSA(汇总LSA)

  • 生成者ABR(区域边界路由器)

  • 传播范围:跨区域泛洪(源区域外)。

  • 功能:汇总某个区域的网络前缀,通告到其他区域,用于区域间路由

4. Type 4 LSA(ASBR汇总LSA)

  • 生成者ABR

  • 传播范围:跨区域泛洪(源区域外)。

  • 功能:通告**ASBR(自治系统边界路由器)**的位置,帮助其他区域的路由器计算到达外部路由的路径。

5. Type 5 LSA(外部LSA)

  • 生成者ASBR

  • 传播范围:整个OSPF自治系统(除特殊区域外,如Stub、Totally Stubby、NSSA)。

  • 功能:携带外部路由(如静态路由、RIP路由)信息,实现跨自治系统的路由

6. Type 7 LSA(NSSA外部LSA)

  • 生成者NSSA区域内的ASBR

  • 传播范围:仅在**NSSA(非纯末梢区域)**内泛洪。

  • 功能:在NSSA中引入外部路由。ABR会将其转换为Type 5 LSA后转发到其他区域。

 二、OSPF的多区域

拓扑:

 IP及OSPF配置

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.1.1.1 24
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 2
[R1-ospf-1-area-0.0.0.2]network 10.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.2]network 1.1.1.1 0.0.0.0

[R2]int g0/0/0

[R2-GigabitEthernet0/0/0lip add 10.1.1.2 24

[R2-GigabitEthernet0/0/0lint s1/0/1

[R2-Serial1/0/1ip add 23.1.1.2 24

[R2-Seria11/0/1lint loopback 0

[R2-LoopBack0]ip add 2.2.2.2 32

[R2]ospf router-id 2.2.2.2
[R2-ospf-1larea 2

[R2-ospf-1-area-0.0.0.2]network 10.1.1.0 0.0.0.255

[R2-ospf-1larea 0

[R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0

[R3]int s1/0/1

[R3-Serial1/0/1lip add 23.1.1.3 24

[R3-serial1/0/1lint s1/0/0

[R3-Serial1/0/0lip add 34.1.1.3 24

[R3-serial1/0/0lint loopback 

[R3-LoopBack0]ip add 3.3.3.3 32

[R3]ospf router-id 3.3.3.3
[R3-ospf-1larea 0

[R3-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255

[R3-ospf-1larea 1
R3-ospf-1-area-0.0.0.1]network 34.1.1.0 0.0.0.255

[R3-ospf-1-area-0.0.0.1]network 3.3.3.3 0.0.0.0

[R4lint s1/0/1

[R4-Serial1/0/1lip add 34.1.1.4 24

[R4-Serial1/0/1lint s1/0/0

[R4-Serial1/0/0]ip add 45.1.1.4 24

[R4-Serial1/0/0lint loopback 0

[R4-LoopBack0lip add 4.4.4.4 32

[R4lospf router-id 4.4.4.4

[R4-ospf-1larea 1

[R4-ospf-1-area-0.0.0.1]network 34.1.1.0 0.0.0.255

[R4-ospf-1-area-0.0.0.1]network 45.1.1.0 0.0.0.255

[R4-ospf-1-area-0.0.0.1]network 4.4.4.4 0.0.0.0

[R5lint s1/0/0

[R5-Serial1/0/0]ip add 45.1.1.5 24

[R5-Serial1/0/0]int loopback 0

[R5-LoopBack0]ip add 5.5.5.5 32

[R5]ospf router-id 5.5.5.5

[R5-ospf-1]area 1
[R5-ospf-1-area-0.0.0.1]network 45.1.1.0 0.0.0.255

[R5-ospf-1-area-0.0.0.1]network 5.5.5.5 0.0.0.0

[R6lint g0/0/0

[R6-GigabitEthernet0/0/0]ip add 10.1.1.6 24

[R6-GigabitEthernet0/0/0lint loopback 0

[R6-LoopBack0]ip add 6.6.6.6 32

[R6]ospf router-id 6.6.6.6

[R6-ospf-1]area 2

[R6-ospf-1-area-0.0.0.2]network 10.1.1.0 0.0.0.255

[R6-ospf-1-area-0.0.0.2network 6.6.6.6 0.0.0.0

在R1上查看一类LSA

在R1上查看2类LSA

在R3上查看3类LSA

在R5上创建回环口并引入OSPF中

[R5]int LoopBack 100
[R5-LoopBack100]ip add 100.100.100.100 32
[R5]ospf
[R5-ospf-1]import-route direct     //引入直连路由

在R5上查看5类LSA

在R3上查看4类LSA

三、OSPF的特殊区域

OSPF 特殊区域 是为了优化 OSPF(开放最短 Path First)网络的性能和简化路由表而设计的一种区域类型。特殊区域通过限制某些类型的链路状态通告(LSA)的传播,减少链路状态数据库(LSDB)的大小,从而降低路由器的内存和 CPU 消耗。

特殊区域的IP配置与OSPF配置与多区域实验一样

在R5上创建一个回环口,并引入ospf

[R5]int LoopBack 100
[R5-LoopBack100]ip add 100.100.100.100 32
[R5-LoopBack100]q
[R5]ospf
[R5-ospf-1]import-route direct

在R1上查看ospf路由表

从上面可以看出区域2有域内路由、域间路由和外部路由

把区域2设置成Stub区域

[R1]ospf
[R1-ospf-1]area 2
[R1-ospf-1-area-0.0.0.2]stub

[R2]ospf
[R2-ospf-1]area 2
[R2-ospf-1-area-0.0.0.2]stub

[R6]ospf
[R6-ospf-1]area 2
[R6-ospf-1-area-0.0.0.2]stub

 再查看R1的ospf路由表

可以看到区域2的外部路由消失了但是R2产生了一条3类的默认路由

把区域2设置成Totally Stub

[R2]ospf
[R2-ospf-1]area 2
[R2-ospf-1-area-0.0.0.2]stub no-summary

 再来查看R1的OSPF路由表

可以看见区域2内只有域内路由,R2下发了一条3类LSA

将区域2设置成NSSA区域

[R1]ospf
[R1-ospf-1]area 2
[R1-ospf-1-area-0.0.0.2]undo stub
[R1-ospf-1-area-0.0.0.2]nssa

[R2]ospf
[R2-ospf-1]area 2
[R2-ospf-1-area-0.0.0.2]undo stub
[R2-ospf-1-area-0.0.0.2]nssa

[R6]ospf
[R6-ospf-1]area 2
[R6-ospf-1-area-0.0.0.2]undo stub
[R6-ospf-1-area-0.0.0.2]nssa

查看ospf路由表

可以看到区域2没有外部路由,但是R2下发了一条7类的默认路由

接下来在R1上引入外部路由200.200.200.200

[R1]int LoopBack 200
[R1-LoopBack200]ip add 200.200.200.200 32
[R1]ospf
[R1-ospf-1]import-route direct

然后再R2上查看OSPF的路由表

可以看到NSSA区域引入了外部路由

在R2上查看7类LSA200.200.200.200

四、总结

LSA类型名称生成者传播范围核心功能
Type 1路由器LSA所有OSPF路由器本区域描述路由器的直连链路和邻居,构建拓扑。
Type 2网络LSADR(指定路由器)本区域描述广播/NBMA网络上的所有路由器。
Type 3汇总LSA(网络汇总)ABR(区域边界路由器)跨区域(源区域外)通告区域间的网络路由(如子网信息)。
Type 4ASBR汇总LSAABR跨区域(源区域外)通告ASBR的位置,帮助其他区域找到外部路由。
Type 5外部LSAASBR全自治系统(除特殊区域)携带外部路由(如静态路由、RIP)。
Type 7NSSA外部LSANSSA区域内的ASBR仅NSSA区域在NSSA中引入外部路由,ABR将其转为Type 5。
特殊区域允许的LSA禁止的LSA特点
Stub区域Type 1/2/3 + 默认路由(Type 3生成)Type 4/5禁止外部路由(Type 5),用默认路由替代。
Totally StubbyType 1/2 + 默认路由(仅ABR生成)Type 3/4/5进一步禁止区域间路由(Type 3),仅留默认。
NSSAType 1/2/3 + Type 7(本地外部路由)Type 4/5(外部路由用Type 7替代)允许本区域引入外部路由(Type 7),ABR将Type 7转为Type 5。
Totally NSSAType 1/2 + 默认路由 + Type 7Type 3/4/5类似Totally Stubby,但允许本地Type 7。

 

相关文章:

OSPF的各种LSA类型,多区域及特殊区域

一、OSPF的LSA类型 OSPF(开放最短路径优先)协议使用多种LSA(链路状态通告)类型来交换网络拓扑信息。以下是主要LSA类型的详细分类及其作用: 1. Type 1 LSA(路由器LSA) 生成者:每个…...

CentOS 9 系统安装 Docker

CentOS 9 系统安装 Docker 容器化技术如 Docker 已成为提升应用部署效率和管理便捷性的关键利器。你是否曾在使用 Docker 时遭遇安装繁琐、配置复杂的困扰?或者对如何在 CentOS 9 系统上标准化安装 Docker 充满好奇?今天,就让我们一同深入探索…...

pyqt联合designer的运用和设置

PyQt Designer 简介 PyQt Designer 是一个用于创建和设计 PyQt 应用程序用户界面的可视化工具。它允许用户通过拖放方式添加和排列各种控件,如按钮、文本框、滑块等,并设置它们的属性和样式,从而快速构建出美观且功能完整的 UI 界面。 Windows版本:【免费】安装包别管啊啊…...

Linux(Centos 7.6)命令详解:zip

1.命令作用 打包和压缩(存档)文件(package and compress (archive) files);该程序用于打包一组文件进行分发;存档文件;通过临时压缩未使用的文件或目录来节省磁盘空间;且压缩文件可以在Linux、Windows 和 macOS中轻松提取。 2.命…...

vulnhub靶场之【digitalworld.local系列】的snakeoil靶机

前言 靶机:digitalworld.local-snakeoil,IP地址为192.168.10.11 攻击:kali,IP地址为192.168.10.6 kali采用VMware虚拟机,靶机选择使用VMware打开文件,都选择桥接网络 这里官方给的有两种方式&#xff0…...

FPGA时序约束的几种方法

一,时钟约束 时钟约束是最基本的一个约束,因为FPGA工具是不知道你要跑多高的频率的,你必要要告诉工具你要跑的时钟频率。时钟约束也就是经常看到的Fmax,因为Fmax是针对“最差劲路径”,也就是说,如果该“最差劲路径”得到好成绩,那些不是最差劲的路径的成绩当然比…...

ClusterIP、Headless Service 和 NodePort 的比较

1. ClusterIP 1.1 定义 ClusterIP 是 Kubernetes 默认的 Service 类型,它会为 Service 分配一个虚拟的 IP 地址(ClusterIP),这个 IP 是集群内部的虚拟地址,仅在集群内部有效。 1.2 工作原理 虚拟 IP:Clu…...

Ubuntu切换lowlatency内核

文章目录 一. 前言二. 开发环境三. 具体操作 一. 前言 低延迟内核(Lowlatency Kernel) 旨在为需要低延迟响应的应用程序设计的内核版本。Linux-lowlatency特别适合音频处理、实时计算、游戏和其他需要及时响应的实时任务。其主要特点是优化了中断处理、调…...

介绍一下Qt中的事件过滤

在 Qt 中,事件过滤(Event Filter)是一种强大的机制,它允许一个对象拦截并处理另一个对象接收到的事件。通过事件过滤,可以在事件到达目标对象之前对其进行监控和修改,这在很多场景下都非常有用,…...

C++修炼之路:初识C++

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 引言 …...

微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 &#xff08;一&#xff09;社会需求背景 在全球化的大背景下&#xff0c;英语作为国际…...

快乐数 力扣202

一、题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&…...

VBA 数据库同一表的当前行与其他行的主键重复判断实现方案1

目的&#xff0c;判断是否主键重复&#xff0c;不重复则登录新数据&#xff0c;重复则不登录。 定义类型&#xff1a; DataRecord   tableName 表名   rowNumber 行号   columnName 列名   data 数据 想要实现的代码逻辑如下&#xff1a; 模拟数据库的登录过程。假设…...

Java基础面试题全集

1. Java语言基础 1.1 Java是什么&#xff1f; • Java是一种广泛使用的编程语言&#xff0c;最初由Sun Microsystems&#xff08;现为Oracle公司的一部分&#xff09;于1995年发布。它是一种面向对象的、基于类的、通用型的编程语言&#xff0c;旨在让应用程序“编写一次&…...

3.激活函数:神经网络中的非线性驱动器——大模型开发深度学习理论基础

激活函数在神经网络中扮演着至关重要的角色&#xff0c;它为模型引入非线性因素&#xff0c;使得网络能够拟合复杂的数据分布&#xff0c;从而实现高效的特征提取与预测。本文将从实际开发角度出发&#xff0c;介绍激活函数的基本概念、常见激活函数&#xff08;如 ReLU、GELU、…...

VUE的第二天

1. 指令修饰符 1.1什么是指令修饰符&#xff1f; ​ 所谓指令修饰符就是通过“.”指明一些指令后缀 不同的后缀封装了不同的处理操作 —> 简化代码 1.2按键修饰符 keyup.enter —>当点击enter键的时候才触发 代码演示&#xff1a; <div id"app"><…...

Element Plus中的树组件的具体用法(持续更新!)

const defaultProps {//子树为节点对象的childrenchildren: children,//节点标签为节点对象的name属性label: name, } 属性 以下是树组件中的常用属性以及作用&#xff1a; data&#xff1a;展示的数据&#xff08;数据源&#xff09; show-checkbox&#xff1a;节点是否可…...

尚硅谷爬虫note14

一、scrapy scrapy&#xff1a;为爬取网站数据是&#xff0c;提取结构性数据而编写的应用框架 1. 安装 pip install scrapy 或者&#xff0c;国内源安装 pip install scrapy -i https&#xff1a;//pypi.douban.com/simple 2. 报错 报错1&#xff09;building ‘twisted.te…...

/***************************所有笔记汇总目录***************************/

文章分类目录 STM32CubeMX 01、STM32CubeMX——定时器&#xff08;普通模式和PWM模式&#xff09; 02、STM32CubeMX——串口&#xff08;HAL库&#xff09; 03、STM32CubeMX——(uart_IAP串口)简单示例 04、STM32CubeMX——ADC采集单通道&#xff0c;多通道&#xff0c;内部…...

Spring Framework中的IoC容器

控制反转(Inversion of Control, IoC)与面向切面编程(Aspect Oriented Programming, AOP)是Spring Framework中最重要的两个概念&#xff0c;本章会着重介绍前者。 2.1.1什么是IoC容器 使用XML来配置类实例 定义一个Java Bean类 在resources文件夹中定义一个beans.xml文件&a…...

永洪科技深度分析实战,零售企业的销量预测

随着人工智能技术的不断发展&#xff0c;智能预测已经成为各个领域的重要应用之一。现在&#xff0c;智能预测技术已经广泛应用于金融、零售、医疗、能源等领域&#xff0c;为企业和个人提供决策支持。 智能预测技术通过分析大量的数据&#xff0c;利用机器学习和深度学习算法…...

2.数据结构-栈和队列

数据结构-栈和队列 2.1栈2.1.1栈的表示和实现2.1.2栈的应用举例数制转换括号匹配检验迷宫给求解表达式求值 2.1栈 栈是限定仅在表尾进行插入或删除操作的线性表&#xff0c;因此&#xff0c;对栈来说&#xff0c;表尾端有其特殊含义&#xff0c;称为栈顶&#xff08;top&#x…...

C++ MySQL 常用接口(基于 MySQL Connector/C++)

C MySQL 常用接口&#xff08;基于 MySQL Connector/C&#xff09; 1. 数据库连接 接口&#xff1a; sql::mysql::MySQL_Driver *driver; sql::Connection *con;作用&#xff1a; 用于创建 MySQL 连接对象。 示例&#xff1a; driver sql::mysql::get_mysql_driver_insta…...

android studio开发文档

android基本样式 1.文本 2.设置文本大小 3.字体颜色 背景 资源文件 xml’引用资源文件 4.视图宽高 5.间距 6.对齐方式 常用布局 1.linearLayout线性布局 2.相对布局 RelativeLayout 3.网格布局GridLayout 4.scrollview滚动视图 Button 点击事件与长按事件 长按 按钮禁用与…...

Java 对象与类——从 C++ 到 Java

文章目录 面向对象程序设计概述使用预定义类用户自定义类静态字段与静态方法方法参数对象构造包JAR 文件文档注释类设计技巧 面向对象程序设计概述 面向对象程序设计&#xff08;OOP&#xff09;在 20 世纪 70 年代出现&#xff0c;是当今主流编程范型&#xff0c;Java 是面向…...

java2025年常见设计模式面试题

1. 请解释建造者模式&#xff08;Builder Pattern&#xff09;及其应用场景。 答案&#xff1a; 建造者模式用于创建一个复杂的对象&#xff0c;同时允许用户只通过指定复杂对象的类型和内容就能构建它们&#xff0c;隐藏了复杂的构建逻辑。 示例&#xff1a; public class C…...

一篇文章讲解清楚ARM9芯片启动流程

SAM9X60 ARM9 boot启动流程关键词介绍&#xff1a; 第一级bootloader - 也叫boot ROM&#xff0c;是集成在MPU内部的ROM里面 它的主要功能是执行对MPU的基本初始化和配置&#xff0c;查找并将第二级bootloader从外部NVM中读取出来并放到MPU内部的SRAM. 可以让MPU强制停留在第一…...

setlocale()的参数,“zh_CN.UTF-8“, “chs“, “chinese-simplified“的差异。

在 C/C 中&#xff0c;setlocale() 函数的参数 zh_CN.UTF-8、chs 和 chinese-simplified 均用于设置中文简体环境&#xff0c;但它们的语义、平台支持和编码行为存在显著差异&#xff1a; ​1. zh_CN.UTF-8&#xff08;推荐&#xff09;​ ​含义&#xff1a; zh_CN: 中文&…...

Python项目-基于Django的在线教育平台开发

1. 项目概述 在线教育平台已成为现代教育的重要组成部分&#xff0c;特别是在后疫情时代&#xff0c;远程学习的需求显著增加。本文将详细介绍如何使用Python的Django框架开发一个功能完善的在线教育平台&#xff0c;包括系统设计、核心功能实现以及部署上线等关键环节。 本项…...

【2025】Electron + React 架构筑基——从零到一的跨平台开发

引言 源代码仓库&#xff1a; Github仓库【electron_git】 你是否厌倦了在命令行中反复输入git status&#xff0c;却依然无法直观看到文件变化&#xff1f; 是否羡慕VS Code的丝滑Git集成&#xff0c;却苦恼于无法定制自己的专属工具&#xff1f; 本专栏将为你打开一扇新的…...