OSPF --- LSA

文章目录

    • 一、OSPF LSA(链路状态通告)详解
      • 1. LSA通用头部
      • 2. OSPFv2 主要LSA类型
        • a. Type 1 - Router LSA
        • b. Type 2 - Network LSA
        • c. Type 3 - Summary LSA
        • d. Type 4 - ASBR Summary LSA
        • e. Type 5 - AS External LSA
        • f. Type 7 - NSSA External LSA
      • 3. LSA泛洪机制
      • 4. LSA类型与区域设计
      • 5. 关键操作示例
        • 查看LSDB(Cisco设备)
    • 二、OSPF在MGRE环境下的问题
      • 问题1:
        • 解决方法:
      • 问题2:
        • 解决方法:

一、OSPF LSA(链路状态通告)详解

LSA(Link State Advertisement)是OSPF协议的核心数据结构,用于描述网络拓扑和路由信息。每个LSA代表路由器视角下的局部网络状态,通过泛洪机制实现全网LSDB(链路状态数据库)同步。


1. LSA通用头部

所有LSA类型共享20字节的通用头部:

LSA类型、链路状态ID、通告路由器ID ---- “LSA三元组” — 通过这三个参数可以唯一的标识出一条LSA。

在这里插入图片描述

字段描述
LS AgeLSA存活时间(秒),最大值3600(老化时间)。
OptionsOSPF能力标识(如是否支持外部路由)。
LS TypeLSA类型(1-11,OSPFv2常用1-7)。
Link State ID链路状态标识符,标识LSA的拓扑实体(如Router ID、网络地址等)。
Advertising Router生成该LSA的路由器Router ID。
LS Sequence Number序列号(0x80000001~0x7FFFFFFF),用于检测新旧LSA或是否存在重复。
每一台路由器发送同一条LSA时都会携带一个序列号,并且这些序列号一次加1,是LSA新旧判断的关键参数
序列号空间:直线型空间、循环型空间、棒棒糖型空间
LS Checksum校验和(排除LS Age字段),校验和也会参与LSA的新旧比较。当两条LSA三元组相同,并且序列号也相同时,则可以使用校验和比较,和大的认定为新。
LengthLSA总长度(含头部)。

2. OSPFv2 主要LSA类型

a. Type 1 - Router LSA
  • 生成者每个OSPF路由器且只发送一条

  • 作用:描述区域内部路由器的直连链路状态(链路类型、开销值)和邻居关系。

  • 传播范围:仅在所属区域内部泛洪。

  • 携带信息:本地接口直连拓扑

  • 具体信息:

    • [R1]dis ospf lsdb router 查看Type1 LSA的具体信息

在这里插入图片描述

  • LS ID: 发出该LSA的路由器的router-id

  • Link count:链路数量,通过link来描述接口的链接情况

    • 在这里插入图片描述

    • Metric:开销值

  • link-type:链路类型,描述该接口的二层类型

    • transnet:

      ​ 类型:广播网络或者NBMA

      ​ link-id:本网段的DR的IP地址qh

      ​ Data:本路由器在该网段的IP地址

    • P2P:

      ​ 类型:ppp

      ​ link-id:该网段对端路由器的router-id

      ​ Data:本路由器在该网段的与对端路由器相连的接口的IP地址

    • stubnet(末梢网络):

      ​ 类型:p2p\环回口

      ​ link-id:该网段的网络地址

      ​ Data:该网段的子网掩码

    • Virtual(虚链路):

      ​ 类型:虚链路

      ​ link-id:虚链路邻居的router id

      ​ data:去往该虚连接邻居的本地接口的IP地址

  • Adv Rtr:始发路由器,产生该LSA的路由器的router-id

  • 链路ID:不同的链路类型,对链路ID值的定义是不同的。

  • 链路数据(Link Data):不同的链路类型对链路数据的定义是不同的。

  • 关键内容

    • 路由器所有接口的IP地址和掩码。
    • 接口连接的邻居Router ID(点对点网络)或DR的IP地址(广播网络)。
    • 链路开销(Cost)。
b. Type 2 - Network LSA
  • 生成者:MA网络中的DR设备(指定路由器)。
  • 作用:描述广播/NBMA网络中的全部接入路由器及掩码信息。(仅依靠1类LSA无法完整描述MA网络中的信息)
  • 传播范围:仅在所属区域内部泛洪。
  • 关键内容
    • DR的IP地址和网络掩码。
    • 接入该网络的所有路由器Router ID。
    • LS ID:该网段的DR的IP地址
    • Adv Rtr:该网段DR的router-id
    • network mask:该网段DR的IP地址的子网掩码信息

所有路由信息都需要就与拓扑信息进行验算,及所有其他种类的LSA均需要通过1类和2类LSA进行验算

c. Type 3 - Summary LSA
  • 生成者:ABR(区域边界路由器)。

  • 作用:向其他区域通告本区域的汇总路由(携带区域之间传递的路由信息,通过下一个区域时需要修改为新的ABR设备)。

  • 传播范围:跨区域传播(但仅到达普通区域)。

  • 关键内容

    • 目标网络地址和掩码。

    • ABR到目标网络的路径开销。

    • LS ID:其他区域某个网段的网络地址

    • SubAdv Rtv:通告该LSA的ABR的router-id

    • net mask:该网段的子网掩码

      注:3类LSA的传递范围在ABR相邻的单区域中进行,跨区域传递时,需要进行通告者的转换,通告者变了,则将不是同一条LSA

d. Type 4 - ASBR Summary LSA
  • 生成者:ASBR所在区域的ABR设备,通过下一个区域时需要修改为新的ABR设备。
  • 作用:通告ASBR(自治系统边界路由器)的位置。
  • 传播范围:除Stub/NSSA区域外的全网泛洪。
  • 关键内容
    • lsID:ASBR的Router ID
    • ABR到ASBR的开销。
    • 注:在ASBR本区域的内部路由器,不会产生到达该ASBR的4类LSA
e. Type 5 - AS External LSA
  • 生成者:ASBR。
  • 作用:通告引入的外部路由(如重分布进OSPF的静态/BGP路由)。
  • 传播范围:全网泛洪(除Stub/NSSA区域)。
  • 关键内容
    • 外部网络地址和掩码。
    • 外部路由类型(E1/E2)。
    • LS ID:域外路由目标网络号
    • Metric:因为不同你个协议的开销值评判标准不同,所以在进行重发布之后,将舍弃原先网络环境中的开销值,然后赋予一个初始的度量值 — 种子度量值 —华为设备默认为1
      • import-route rip 1 cost 2 — 在重发布过程中修改种子度量值。
    • E type — 标记位(标记度量值的类型)
      • 0 :类型1 — 所有设备到达域外目标网段的开销值为本地到达通告路由器的开销值加种子度量值
      • 1 :类型2 — 默认使用度量值类型为2,所有设备到达域外目标网段的开销值为种子度量值
      • import-route rip type 1 — 修改度量值类型
    • 转发地址(Forwarding Address,可选):主要是应对选路不加的情况,如果出现不佳的情况,则将最佳选路的下一跳放在转发地址中,之后将不再按照算法寻找通告者,而是根据转发地址到达目标。5类LSA在不存在选路不加时,转发地址用0.0.0.0来填充。
f. Type 7 - NSSA External LSA
  • 生成者:NSSA区域内的ASBR。
  • 作用:在NSSA区域内替代5类LSA通告外部路由(类似Type 5的受限版本)。
  • 传播范围:仅在NSSA区域内部传播,由ABR转换为Type 5后泛洪到其他区域。
  • 关键内容
    • 外部网络地址和掩码。
    • LS ID:域外路由目标网络号
    • 转发地址(必须指定,通常为ASBR的接口IP)。
    • 特殊区域的标志
      • E:E位置1,代表该区域支持5类LSA,如果是特殊区域则置0
      • N:N位置1,则代表该区域支持7类LSA,

3. LSA泛洪机制

  1. 初始泛洪:路由器生成LSA后,通过LSU包发送给所有邻居(组播地址224.0.0.5/6)。
  2. 确认机制:接收方必须回复LSAck确认,否则发送方重传。
  3. 老化与刷新
    • LSA默认每30分钟(LSRefreshTime)重新生成(序列号+1)。
    • 若LS Age达到3600秒且未被刷新,则从LSDB中删除。

4. LSA类型与区域设计

区域类型允许的LSA类型
骨干区域(Area 0)1, 2, 3, 4, 5
普通区域1, 2, 3, 4, 5
Stub区域1, 2, 3, 4(禁止Type 5,由ABR生成默认路由)
NSSA区域1, 2, 3, 4, 7(ABR将Type 7转换为Type 5)
Totally Stub1, 2, 3(ABR生成默认路由,禁止Type 3/4/5)

5. 关键操作示例

查看LSDB(Cisco设备)
show ip ospf database              # 
show ip ospf database router 1.1.1.1  # 查看特定Router LSA详情
show ip ospf database external     # 查看Type 5 LSA

二、OSPF在MGRE环境下的问题

在配置完MGRE隧道和OSPF都会发现,各个设备的OSPF路由表学习不全,设备也无法建立正常的邻接关系

问题1:

Tunnel接口类型为P2P类型,不选举DR/BDR,使得设备无法正常建立邻接关系

解决方法:

更改网络中tunnel接口类型为广播或者P2MP

[R1-Tunnel0/0/0]ospf network-type broadcast

问题2:

DR/BDR选举混乱,无法建立邻接关系

更改网络类型后,广播网络中中心站点和分支站点处于同一个广播域,此时需要进行DR和BDR的选举,但是在分支站点的世界里只和中心站点认识,分支站点和分支站点不认识,这就会发生多个分支站点和一个中心站点互相竞选DR和BDR,这样会造成选举结果混乱。

解决方法:

将分支站点的DR选举优先级变0,这样就能保证中心站点是整个广播网络中唯一的DR

[R2-Tunnel0/0/0]ospf dr-priority 0

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

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

相关文章

Spring Boot 框架介绍及 Spring Boot 与 Spring 实现对比

在日常 Java Web 开发中,Spring 框架几乎是绕不开的技术体系。传统的 Spring 项目因其灵活强大而被广泛应用,但随着项目规模扩大与业务复杂度提升,XML 配置繁琐、部署复杂等问题逐渐显现。为此,Spring Boot 应运而生。 Spring Boo…

基于CNN卷积神经网络和GEI步态能量提取的视频人物步态识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 GEI步态能量提取 4.2 CNN卷积神经网络原理 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b/matlab2022a 3.部分核心程序 &…

创建型模式:建造者模式

什么是建造者模式 建造者模式(Builder Pattern)是一种创建型设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。简单来说,建造者模式允许您一步一步创建复杂对象,而…

Linux `init 5` 相关命令的完整使用指南

Linux init 5 相关命令的完整使用指南—目录 一、init 系统简介二、init 5 的含义与作用三、不同 Init 系统下的 init 5 行为1. SysVinit(如 CentOS 6、Debian 7)2. systemd(如 CentOS 7、Ubuntu 16.04)3. Upstart(如 …

RabbitMQ常见面试题回答重点

文章目录 什么是消息队列?为什么需要消息队列消息队列的模型消息队列常见名词如何保证消息不丢失?(可靠性)如何保证消息不重复/业务幂等性如何保证消息有序性如何处理消息堆积消息队列设计为推送还是拉取 / 推拉模式优点无法路由的…

欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会

2025年4月15日至16日,备受关注的第二届中国人形机器人与具身智能产业大会已在北京成功举行。作为国内前沿科技及产品服务领域的重要参与者,欣佰特科技携众多前沿产品精彩亮相,全方位展示了其在人形机器人与具身智能领域的创新产品。 在本次大…

Docker安装 (centos)

1.安装依赖包: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.删除已有的 Docker 仓库文件(如果有): sudo rm -f /etc/yum.repos.d/docker-ce.repo 3.添加阿里云的 Docker 仓库: sudo yum…

Vue接口平台学习十——接口用例页面2

效果图及简单说明 左边选择用例,右侧就显示该用例的详细信息。 使用el-collapse折叠组件,将请求到的用例详情数据展示到页面中。 所有数据内容,绑定到caseData中 // 页面绑定的用例编辑数据 const caseData reactive({title: "",…

服务器数据迁移指南

服务器数据迁移是将数据从一台服务器转移到另一台服务器的过程,可能是为了硬件升级、云迁移、数据中心搬迁或服务整合。 以下是数据迁移的关键步骤和注意事项: 迁移前准备 制定迁移计划 确定迁移范围(全量/增量) 评估数据量和网络带宽 制定时间表和回…

25.解决中医知识问答删除历史对话功能后端处理请求时抛出异常

ChatTest.vue:176 DELETE http://localhost:8080/api/chat/conversations/20 500 (Internal Server Error) deleteConversation ChatTest.vue:176 onClick ChatTest.vue:22 ChatTest.vue:185 删除失败 AxiosError {message: Request failed with status code 500, name: Axio…

记录seatunnel排查重复数据的案例分析

文章目录 背景分析检查现象检查B集群是否有异常,导致重复消费的分析同步任务 修复问题发现flink job 一直报异常修复问题 背景 使用seatunnel 同步数据从A 集群kafka 同步到B集群kafka,现象是发现两边数据不一致,每天10w级别会多几十条数据 分析 检查…

VSCode远程图形化GDB

VSCode远程图形化GDB 摘要一、安装VSCode1、使用.exe安装包安装VSCode2、VSCode 插件安装3、VSCode建立远程连接 二、core dump找bug1、开启core文件2、永久生效的方法3、编写测试程序4、运行结果5、查看core段错误位置6、在程序中开启core dump并二者core文件大小 三、gdbserv…

Android 中实现 GIF 图片动画

在 Android 中,ImageView 从 Android 9.0(API 级别 28) 开始原生支持 GIF 动画,通过 AnimatedImageDrawable 类实现。在之前的版本中,ImageView 并不支持直接播放 GIF 动画,只能显示 GIF 的第一帧。 一、 …

【c语言】指针进阶

目录 1.字符指针 2.指针数组 3.数组指针 3.1 数组指针的定义 3.2 数组指针的使用 4.数组参数,指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5.函数指针 6.函数指针数组 6.1函数指针数组的定义 6.2 函数指针数组…

极狐GitLab 项目 API 的速率限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 项目 API 的速率限制 (BASIC SELF) 引入于 15.10 版本,功能标志为rate_limit_for_unauthenticated_projects_api_…

【xlog日志文件】怎么删除里面包含某些字符串的行(使用excel)

将log日志,复制到单独一行 B列(可能一行很长,所以将整合后的放在A列) 使用公式可以筛选出 包含某些字符串的行 为true,将这些行直接删除 IF(COUNT(FIND("MediaMuxterThreadRussia",B2,1))>0,"包含",&quo…

STM32提高篇: CAN通讯

STM32提高篇: CAN通讯 一.CAN通讯介绍1.物理层2.协议层二.STM32CAN外设1.CAN控制器的3种工作模式2.CAN控制器的3种测试模式3.功能框图三.CAN的寄存器介绍1.环回静默模式测试2.双击互发测试四.CAN的HAL代码解读一.CAN通讯介绍 CAN(Controller Area Network 控制器局域网,简称…

Java写数据结构:栈

1.概念: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插…

单页面应用的特点,什么是路由,VueRouter的下载,安装和使用,路由的封装抽离,声明式导航的介绍和使用

文章目录 一.什么是单页面应用?二.什么是路由?生活中的路由和Vue中的路由 三.VueRouter(重点)0.引出1.介绍2.下载与使用(5个基本步骤2个核心步骤)2.1 五个基本步骤2.2 两个核心步骤 四.路由的封装抽离五.声明式导航1.导航链接特点一:能跳转特点二:能高亮 2.两个高亮类名2.1.区…

【C++】模板2.0

最近学习了一些模板的知识,速写本博客作为学习笔记,若有兴趣,欢迎垂阅读! 1.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名…