OSPF——LSA讲解

article/2025/8/26 23:47:37

目录

LSA的作用

LSA的头部格式

LSA Type-----------------LSA类型

LS Age-------------------LSA产生所经过的时间

Link State ID------------唯一标识一个LSA

Advertisting Router-----产生此LSA的路由器的Router-id

LS Sequence number----序列号

LS checksum-------------校验

Opetions(可选项)

链路状态信息

链路状态基本概念

链路状态信息主要包括

一类LSA的链路状态信息

二类LSA的链路状态信息

三类LSA的路由信息(只有LSA头部信息)

五类LSA的路由信息(只有LSA头部信息)

四类LSA的路由信息(只有LSA头部信息)

七类LSA的路由信息(只有LSA头部信息)

如何唯一确定一个LSA

如何判断LSA的新旧


LSA的作用

  LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。部分LSA只有LSA头部信息,无链路状态信息

  在ospf中主要是通过泛洪LSA同步LSDB来学习路由,达到全网互通的

泛洪:

把LSA向区域中的每条链路复制并通告的过程----------------每隔30min泛洪一次(60min老化)

泛洪是个可靠的过程,有确认机制

  • 显示确认    用LSAck对LSU报文中的的LSA做确认(发送包含LSA拷贝的数据包来确认,是信息级别的确认)确认收到内容了
  • 隐式确认    DD报文序列号+1进行确认(仅仅是报文级别的确认)确认收到报文了

LSDB同步:    

每个LSA都要在LSU中通告给邻居,并且每个邻居都要确认,若没有收到邻居的确认,LSU在5s后重传


LSDB数据库:存放LSA信息


LSA的头部格式

LSA Type-----------------LSA类型

1.常见的6种LSA

LS Type

产生者

传播内容

传播范围

(特殊区域另行考虑)

一类

Router

每个路由器都只产生一条(包含多条路由信息)

边界路由器可能产生多条

每个路由器都会生成

描述自己的链路状态信息

传输链路状态信息

宣告内部区域的直连邻居和直连接口信息

在产生此LSA的本区域传播

二类

Network

一个网段生成一条

只有DR(BDR)路由器会生成

携带了子网掩码信息

传输链路状态信息

描述本网段的链路状态信息

在产生此LSA的本区域传播

三类

Network-Summary

一个网段生成一条

ABR(区域边界路由器)会生成,每经过一个ABR都会重新生成

(每经过一个ABR,其Advertisting Router就会变成此ABR的RID)

传输路由信息

将区域内的所有网段的路由通告给其它区域

在区域间传播(非 Totally Stub/Nass区域)

四类

Asbr-Summary

五类转为四类进行传播

和ASBR同一区域的ABR生成

五类进入本区域后,ABR会将五类转为四类传播

传输路由信息

描述到ASBR的路由信息

在本区域内传播(非 特殊区域)

五类

AS-External

引入一个地址产生一条

(或者是七类出了NSSA区域后转为五类)

ASBR生成(外部边界路由器)

每个路由器收到的五类LSA都一样

传输路由信息

描述到AS外部的路由信息

在全区域传播(非 特殊区域)

七类

NSSA

引入一个地址产生一条

配置NSSA区域的ASBR生成

传输路由信息

描述到AS外部的路由信息

在NSSA/Totally Nass区域传播

 注意:

  • 在广播型网络中,需要知道网络号,此网络号存在于2类LSA中(LS id与子网掩码做与运算)
  • P2P类型网络无2类LSA

 2.补充3种LSA-----提供OSPF的扩展通用机制

  • Type9 仅在接口所在的网段范围内泛洪(支持GR的Grace LSA就为其中的一种)
  • Type10 在区域内泛洪(用于支持TE、SR-MPLS的LSA就是其中的一种)
  • Type11:在AS内泛洪(目前没有应用)

LS Age-------------------LSA产生所经过的时间

  • LS Age越大,LSA越老
  • LS Age为max-即3600s时,删除LSA

Link State ID------------唯一标识一个LSA

LSA的名字,取值由LSA的Type相关

Advertisting Router-----产生此LSA的路由器的Router-id

  不同类别的LSA对应的Link State ID和Advertisting Router是不同的

LS Type

Link State

Adv Router

一类

Router

自己的Router-id

自己的Router-id

二类

Network

DR的IP

DR的Router-id

三类

Network-Summary

网络网段

ABR的Router-id

四类

Asbr-Summary

ASBR的Router-id

ABR的Router-id

五类

AS-External

外网网络网段

ASBR的Router-id

七类

NSSA

外网网络网段

ASBR的Router-id

LS Sequence number----序列号

  • 具有最高序列号的,LSA越新
  • 序列号是0x8000 0001 ~ 0x7FFF FFFF
  • LSA每30min钟泛洪一次,序列号就加1

LS checksum-------------校验

  • 检验LSA的内容以及确定LSA是否是最新的
  • 校验越大,LSA越新

Opetions(可选项)

E:允许Flood AS-External-LSAs

MC:转发IP组播报文

N/P:处理Type-7 LSAs

DC:处理按需链路


链路状态信息

链路状态基本概念

链路:路由器之间相连的链路

状态:变化的,指的是链路上各种网络参数在某一时刻的取值

链路状态信息主要包括

注:不同LSA的链路状态信息不同,部分LSA不携带链路状态信息,只有LSA头部

  • 链路类型(只存在于1类LSA)
  •  接口IP地址以及掩码
  •  链路上所连接的邻居路由器
  •  链路的带宽(开销)

一类LSA的链路状态信息

1类LSA的链路状态信息主要由链路类型、Link ID、Link Data、Cost三个值来进行描述。

描述P2P型网络自身的邻居,以及广播型网络自身连着的伪节点

华为设备中Ospf默认认为LoopBack接口是只有一台主机的接口(即使配置Loopback为24位,但是Ospf在描述路由信息时描述的掩码还是32位)

P2P           有ospf邻居,且网络类型为P2P与P2MP接口的链路类型

TransNet   有ospf邻居,且网络类型为广播、NBMA接口的链路类型

StubNet     接口被激活OSPF,但是没有任何OSPF邻居。此接口就是Stub类型

                      一般Loopback接口的链路类型和连接终端接口的链路类型为此

Vitrual Link描述OSPF的虚链路的链路类型(只有配置了V-link才会产生)

注意事项

1类LSA中Stub携带的是路由信息,Transit携带的是链路状态信息

所以当1类的节点挂了之后,只能使用拓扑路由更新方式,无法使用RPC更新路由

路由收敛要慢一些

OSPF伪节点(广播型链路才存在)

在广播型链路中进行OSPF计算时,将广播型链路在算法上抽象为一台路由器(即将这个二层交换机或者链路抽象为一台路由器),抽象出来的这台路由器就称为伪节点

伪节点:在实际中不存在,不是路由器(没运行Ospf协议)。是由算法抽象出来的路由器,在算法中存在。

实节点:在实际中存在,是路由器。在算法中是也存在是路由器。

在进行路由信息描述时,实节点不需要描述与邻居的路由信息,只需要描述与伪节点的路由信息(伪节点的Ruter-ID是此链路上DR的接口IP地址),减少大量冗余重复的描述

注意在进行Cost计算时,伪节点到实节点的开销为0(实节点到伪节点的开销为实节点出接口开销)

二类LSA的链路状态信息

 对于广播型网络,1类LSA的transNet链路类型可以描述自身连着的伪节点,无法知道伪节点是否连着其它节点(无法知道其它的邻居)

此时就需要二类LSA(Network LSA)来解决,二类LSA可以描述伪节点相连的其它节点

 注意:通过1类LSA、2类LSA计算出来的路由信息成为区域内路由,是通过SPF算法计算出来的,100%避免路由环路(因为不管是伪节点还是实节点,都只能在树上生成一次,选择最短的树--单路径或者多路径负载分担)

三类LSA的路由信息(只有LSA头部信息)

由ABR将自身直连区域的区域内路由转化成其他直连区域的3类LSA,完成区域间路由的计算

汇总网络LSA,用于描述区域间的路由(描述ABR所知道的路由以及开销,并没有携带任何关于邻居的拓扑结构,所以携带的是纯粹的路由信息)

注意:每经过一次ABR,都会更改Adv rtr字段和开销字段,(即每经过一个ABR,都会重新成3类LSA)

每有1条二类LSA或Stub类型的一类LSA,都会产生1条三类LSA

五类LSA的路由信息(只有LSA头部信息)

注意:

引入时外部路由的开销默认为1,可以在引入时更改

五类LSA由ASBR产生,在全网传递时,此LSA信息不会做更改(所有设备收到的5类LSA都相同)

四类LSA的路由信息(只有LSA头部信息)

对于与ASBR所在区域不同的设备,当设备收到5类LSA后,由于ASBR无法让其知道自己的信息,去往ASBR路由不可达。此时就需要通过ABR将5类LSA转为4类LSA再发送给设备,描述如何到达ASBR

七类LSA的路由信息(只有LSA头部信息)


如何唯一确定一个LSA

  • LSA Type----------------LSA类型                                 
  • Link State ID------------链路状态ID
  • Advertisting Router----通告路由器的Router-ID

如何判断LSA的新旧

  1. Seq越大的越新
  2. Seq相同,则比较Checksum,越大越新
  3. checksum相同,判断LSA age,age为3600s为最新(用于删除此LSA)
  4. LSA age都不为3600s,则判断LSA age的差值。差值大于900s,小的最新。差值小于等于900s,LSA的新旧相同(此LSA不需要交换)

http://chatgpt.dhexx.cn/article/9T5QMdf1.shtml

相关文章

c++入门必学算法 并查集

一、什么是并查集 并查集其实就是实现一个类似朋友圈的功能,朋友的朋友是朋友,朋友的朋友的朋友也是朋友,即只要有关系一些人就合并成为一个朋友圈。 并查集可以实现查询两个人是否是朋友,查询朋友圈的个数 二、并查集的原理 …

并查集的查询与合并详解

文章目录 一、并查集的概念 二、并查集的实现 2、1 并查集不同集合(树)的形成 2、2 find()函数找一个元素集合的编号(元素所属于树的祖宗) 2、3 合并两个不同集合(合并两棵不同的树&#xff09…

并查集实现及其应用

先看看度娘给出的定义吧: 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类…

超级简单并查集详解

一、概述 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 其实说白了大部分还是用于寻找两…

并查集(java)

介绍 : 并查集属于数据结构的一种 是高等数据结构最基础的一部分,主要分为普通并查集 种类并查集以及带权并查集。它是一种用于管理元素所属集合的数据结构,这里的集合我们可以理解为一颗数 每个元素都是树上的有一个分叉,顺着分叉…

C++并查集

文章目录 并查集的原理并查集的实现代码并查集的典型应用 并查集的原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用…

c++并查集(详细总结)

老话重谈,先看定义 并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。 首先得明白一些概念: 什么是树,什么是森林(由树组成的叫…

Java——并查集

概念 当我们将多个元素分配到不同的集合中,这些集合有的是相关的,有的是不相关的。并查集就是用来查找两个元素是否在同一个集合中的 其主要实现方式是:将所有的元素以下标的形式存储在数组中。例如一共有十个人,那么就将这些人…

并查集Python版

以下来自于leetcode 使用数据结构:并查集 思路:由于相等关系具有传递性,所有相等的变量属于同一个集合;只关心连通性,不关心距离,因此很容易想到并查集。(很容易嘛,反正我想不到&am…

并查集详解

文章目录 并查集一、简介1.定义2. 并查集的实现与优化 二、练习1.合并集合2.连通块中点的数量3. 食物链 三、总结 并查集 一、简介 1.定义 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说&am…

带权并查集

带权并查集需要先理解一般的并查集,不明白的可自行先搜索有关内容 一般的并查集主要记录节点之间的链接关系,而没有其他的具体的信息,仅仅代表某个节点与其父节点之间存在联系,它多用来判断图的连通性,如下图所示&…

并查集,不就一并和一查?

什么是并查集 并查集这种数据结构,可能出现的频率不是那么高,但是还会经常性的见到,其理解学习起来非常容易,通过本文,一定能够轻轻松松搞定并查集! 对于一种数据结构,肯定是有自己的应用场景和…

数据结构——并查集

并查集是一种数据结构,是树的一种应用,用于处理一些不交集(一系列没有重复元素的集合)的合并以及查询问题。并查集支持如下操作: 查询:查询某个元素属于哪个集合,通常是返回集合内的一个“代表…

并查集详解(C/C++)

并查集算法详解(C) 并查集基础并查集是什么?并查集的作用是什么?并查集的结构合并查询 代码实现优化1:避免退化(按秩合并)代码优化 优化2:路径压缩代码优化 最终代码实现复杂度分析经…

并查集及其应用

并查集的基本操作: 1.合并两个集合 2.查询两个元素的祖宗节点 扩展: 1.记录每个集合的大小 将集合大小绑定到代表元素节点上 就是并查集的思想 (不是每个元素都是正确的 但是代表元素是正确的) 2.记录每个点到根节点的距离 绑定到每个元素身上 因为每个元素到根节点的距离…

并查集(Union-Find) (图文详解)

文章目录 并查集基础知识定义C实现优化 精选算法题(Java实现)实现并查集交换字符串中的元素最长连续序列 - 字节面试常考连通网络的操作次数最大岛屿数量 (三种解法)省份数量冗余连接冗余连接Ⅱ情侣牵手(困难)移除最多的同行或同列石头等式方程的可满足性 结语 并查集基础知识 …

什么是 “并查集” ?

导语:并查集是一种精巧的算法,本身并不难理解,却很常用,在许多场景下都能找到并查集的身影。 本文作者封承成,年仅12岁,非常感谢他的投稿。 并查集是什么 并查集,是一种判断“远房亲戚”的算法。…

并查集(Disjoint Set)

目录 ❤️什么是并查集? 🎶实现方法1 🐔实现方法2 🎃题目1 ❤️什么是并查集? 并查集是一种数据结构,用于处理一些不交集(Disjoint sets,一系列没有重复元素的集合)的…

并查集

参考 https://www.cnblogs.com/asdfknjhu/p/12515480.html https://www.bilibili.com/video/BV13t411v7Fs?p3 https://leetcode-cn.com/problems/number-of-provinces/solution/python-duo-tu-xiang-jie-bing-cha-ji-by-m-vjdr/ 一、基本概念 并查集是一种数据结构 并查集这…

并查集(详细解释+完整C语言代码)

目录 1概论 2.树的表现形式 3.代码实现 3.1创立集合 3.2合并 3.3查询 3.4路径压缩 第一个方法:查找时优化 第二个方法:合并时优化(加权标记法) 4.完整代码 4.1优化前 4.2优化后 1概论 并查集是一种十分精巧且实用的树形…