OSPF之链路状态数据库LSDB

article/2025/9/21 5:46:54

OSPF链路状态数据库

原理概述:

OSPF是一种基于链路状态的动态路由协议,每台 OSPF 路由器都会生成相关的LSA,并将这些LSA通告出去。路由器收到LSA后,会将它们存放在链路状态数据库LSDB中。

LSA有多种不同的类型,不同类型的LSA的功能和作用是不同的,下面介绍几种常见的LSA:

Type-1 LSA(Router LSA):每台路由器都会产生,用来描述路由器的直连链路状态和开销值。Type-1 LSA只能在所属区域内部泛洪,不能泛洪到其他区域。

Type-2 LSA(Network LSA):它是DR产生的,主要用来描述该DR所在网段的网络掩码以及该网段内有那些路由器。Type-2 LSA只能在所属区域内部泛洪,不能泛洪到其他区域。

Type-3 LSA(Network Summary LSA);它是由ABR(Area Boundary Router)产生的,ABR路由器将所连区域的Type-1和Type-2 LSA 转换为 Type-3 LSA,用来描述区域间的路由信息。Type-3 LSA可以泛洪到整个AS(Autonomous System,自治域)内部,但不能泛洪到Totally Stub区域和Totally NSSA(Not-So-Stubby Area)区域。

Type-4 LSA(ASBR Summary LSA);它是由ASBR(Autonomous System Boundary Router)所在区域的ABR产生的,用来描述到ASBR的路由。Type-4LSA 可以泛洪到整个AS内部,但不能泛洪到Stub区域、Totally Stub区域、NSSA区域和Totally NSSA区域中。

Type-5 LSA(AS External LSA):它是由ASBR产生的,用来描述到AS外部网络的路由。Type-5 LSA可以泛洪到整个AS内部,但不能泛洪到Stub区域、Totally Stub区域、NSSA区域和Totally NSSA区域中。

Type-6 LSA(Group Membership LSA):在MOSPF中用于标识组播组成员使用的用户组播路由。

Type-7 LSA(NSSA LSA):它是由NSSA区域或Totally NSSA区域的NSSA ASBR产生的,用来描述到AS外部的路由。Type-7 LSA只能出现在所属NSSA区域或Totally NSSA区域内部。

实验目的:

理解OSPF中不同类型的LSA的作用

熟悉OSPF中不同类型的LSA的泛洪范围

熟悉LSA中重要字段的含义

实验拓扑:

 

1:首先基础配置

R1:#interface GigabitEthernet0/0/0ip address 10.0.12.1 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.1.1 255.255.255.255#interface LoopBack1ip address 192.168.1.1 255.255.255.0R2:#interface GigabitEthernet0/0/0ip address 10.0.12.2 255.255.255.0#interface GigabitEthernet0/0/1ip address 10.0.235.2 255.255.255.0#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.2.2 255.255.255.255R3:#interface GigabitEthernet0/0/0ip address 10.0.34.3 255.255.255.0#interface GigabitEthernet0/0/1ip address 10.0.235.3 255.255.255.0#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.3.3 255.255.255.255  R4:#interface GigabitEthernet0/0/0ip address 10.0.34.4 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.4.4 255.255.255.255#interface LoopBack1ip address 172.16.1.1 255.255.255.0R5:#interface GigabitEthernet0/0/0ip address 10.0.235.5 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.5.5 255.255.255.2552:配置OSPF路由协议R1:#ospf 1area 0.0.0.1network 10.0.1.1 0.0.0.0network 10.0.12.0 0.0.0.255network 192.168.1.0 0.0.0.255R2:#ospf 1area 0.0.0.0network 10.0.235.0 0.0.0.255area 0.0.0.1network 10.0.2.2 0.0.0.0network 10.0.12.0 0.0.0.255R3:#ospf 1area 0.0.0.0network 10.0.235.0 0.0.0.255area 0.0.0.2network 10.0.3.3 0.0.0.0network 10.0.34.0 0.0.0.255R4:#ospf 1area 0.0.0.2network 10.0.4.4 0.0.0.0network 10.0.34.0 0.0.0.255network 172.16.1.0 0.0.0.255R5:#ospf 1area 0.0.0.0network 10.0.5.5 0.0.0.0network 10.0.235.0 0.0.0.255

在R3上查看OSPF的DR与BDR的选举情况!

可以看到,在R2、R3、R5组成的广播网络中,目前R5是DR,R2是BDR。接下来查看每台路由器的路由表;

R1:

R2:

R3:

R4:

R5:

 

可以看到,每台路由器都已获得了非直连网络的路由条目。接下来使用ping命令检测连通性;

  

可以看到,各个网段之间的通信是正常的

区域1是普通区域,区域2是NSSA区域,区域1的R1和区域2的R4都需要引入Loopback 1接口所连接的外部网络路由。在R1和R4上使用Route-Policy精确匹配Loopback 1接口的直连路由引入并引入OSPF进程。

R1:#ospf 1import-route direct route-policy 10area 0.0.0.1network 10.0.1.1 0.0.0.0network 10.0.12.0 0.0.0.255network 192.168.1.0 0.0.0.255#route-policy 10 permit node 1if-match acl 2000R4:#ospf 1description mcuimport-route direct route-policy 10area 0.0.0.2network 10.0.4.4 0.0.0.0network 10.0.34.0 0.0.0.255network 172.16.1.0 0.0.0.255#route-policy 10 permit node 1if-match acl 2000

配置完成后,在R5上查看由R1和R4引入的两条路由

 

可以看到,在R5的路由表中,这两条路由都显示为O_ASE,且优先级与开销也都相同,不同之处是这两条路由的下一跳,因为它们是由不同的路由器发送给R5的。

3:查看Type-1 LSA,Type-2 LSA,Type-3 LSA

在区域0的R5上查看LSDB。

 

可以看到,R5的LSDB中共有5种LSA,它们分别是Router LSA(或称Type-1 LSA)。

Network LSA(或称Type-2 LSA)、Sum-Net LSA(或称Type-3 LSA,Network Summary LSA)、Sum-Asbr LSA(或称Type-4 LSA、ASBR Summary LSA)和External LSA(或称Type-5 LSA,AS External LSA)。

在R5上查看Router-ID为10.0.2.2产生的Router LSA的详细信息

 

下面解释一下显示信息中的部分参数的含义:

Type:显示信息中,Type表示了LSA的类型,这里表示的是Router LSA。不同类型的LSA的作用和泛洪区域范围是不相同的。Router LSA描述了路由器的直连链路或接口,泛洪范围为所在区域的内部,以使本区域的其他路由器了解其直连链路或接口的状态信息;

Ls id:对于Router LSA,Ls id就是产生该Router LSA的路由器的Router-ID。

Adv rtr:Adv rtr描述了LSA是由哪台路由器产生的。对于Router LSA来讲,Adv rtr就是产生该Router LSA的路由器的Router-ID。

Seq#:这一条LSA都会维护一个Seq#(序列号),产生这条LSA的路由器默认会过30s的周期泛洪这条LSA,每次泛洪时,序列号就加1,LSA的序列号越大,表明这条LSA越新。

Chksum:chksum(校验和)用来校验LSA的完整性。所有的LSA都会保存在路由器的LSDB中,每5min会计算一次。如果路由器收到了同一条LSA,且序列号相同,则会比较它们的校验和,校验和越大就被认为相应的LSA越新。

Ls age:Ls age是指LSA的老化时间,用来表示LSA已经存活了多长时间,最大值为3600s。当一台路由器产生一条LSA的时候,路由器会将LSA的老化时间设置为0。LSA在产生之后,无论是停留在路由器的LSDB内,还是在传递过程之中,老化时间都会不断增加,为了防止因LSA的过期而造成路由回馈,路由器会每隔30min泛洪自己产生的LSA。若序列号与校验和的比较都不能确定出最新的LSA时,则会比较老化时间。

在LSDB中,如果老化时间相差大于15min以上,则Ls age的值越小,说明LSA越新,如果相差15min内,则认为两条LSA是一样的。

在上面的显示信息中,Link count以上的参数信息通常被称为LSA头部信息,Link count及以下部分为具体的链路描述信息,Link count标识了这条LSA描述的链路信息的数量。对于P-2-P链路类型,Link ID是指链路上邻居接口的IP地址;对于TranNet链路类型,Link ID是指DR接口的IP地址。Data是指自身接口的IP地址,Link Type是指接口的链路类型,Metric是指路由器自己到达这条链路的Cost值,需要说明的是,OSPF协议会把Broadcast和NBMA这两种具有多路访问能力的网络都认为是TransNet网络。

从上得知,R2的Router LSA描述了自己连接到了某个TransNet网络,网络的DR接口的IP地址为10.0.235.5(R5),自己使用10.0.235.2连接到该网络中,且到达这个网络的Cost值为1。

Network LSA是由DR产生的,它的主要作用是描述TransNet网络的掩码信息和连接到TransNet网络的路由的路由器的信息。在多路访问网络中,每台路由器都产生Network LSA是没有必要的,因为这会导致Network LSA的重复。

R5是TransNet网络的DR,在R5上查看它产生和发送的Network LSA的详细信息。

 

 

 

可以看到,这条Network LSA说明了TransNet网络的掩码为255.255.255.0,连接到这个TransNet网络的路由器有10.0.5.5(R5)、10.0.3.3(R3)。Network LSA中没有携带路径的开销,原因是Router LSA已经描述了自己到TransNet网络的Cost值。

在R2、R3、R5上查看区域0的LSDB。

 

可以发现,R2、R3、R5的LSDB中区域0的Router LSA和Network LSA是完全一样的。

Router LSA和Network LSA可以完全描述本区域的网络拓扑,但这些LSA不能泛洪到其他区域,当OSPF网络包含多个区域时,通过Router LSA和Network LSA就无法进行区域间路由的计算,区域间路由到达计算需要利用Sum-Net LSA来实现,ABR路由器会将自己相连的区域的Router  LSA和Network LSA转换为Sum-Net LSA,然后泛洪到其他区域。

R2同时连接了区域0和区域1,所以是一台ABR路由器。查看R2的LSDB。

可以看到,R2的区域0中有一条LinkState ID为10.0.12.0 的Sum-Net LSA,它的AdvRouter为10.0.2.2。网段10.0.12.0/24本是属于区域1的网络,现在被ABR路由器R2转换为Sum-Net LSA并泛洪到了区域0中。10.0.235.0/24本是属于区域0的网络,现在被ABR路由器R2转换为Sum-Net LSA并泛洪到了区域1中,实际上,Sum-Net LSA是ABR利用自己相连的区域的Router-LSA和Network-LSA来计算得到的路由信息的。

在R2上查看LinkState ID为10.0.12.1的这条Sum-Net LSA的详细信息。

可以看到,这条LSA的Type为Sum-Net,Ls id表明了目的网络地址为10.0.12.0,Net mask表明了目的网络的掩码为255.255.255.0,metric表明了ABR路由器R2去往目的网络的Cost值为1。

在R5上查看LSDB,并查看路由表中关于10.0.12.0/24的路由信息

  

可以看到,R5的LSDB中存在10.0.12.0这条Sum-Net LSA,R5的路由表中关于10.0.12.0/24这条路由信息表明R5在去往10.0.12.0/24的Cost为2,R5通过这条Sum-Net LSA得知网络中存在10.0.12.0/24网段,这个网段的AdvRouter为10.0.2.2(R2),R2有已到达10.0.12.0/24的Cost为1,R5和R2同属于区域0,所以R5可以通过Router LSA和Network LSA计算出自己到R2的Cost为1,因此,R5可以计算出自己到10.0.12.0/24的Cost值为1+1=2。

区域间的路由是根据Sum-Net LSA并结合Router LSA及Network-LSA计算出来的,对于某个区域的一台OSPF路由器来说,它无需了解其他区域的链路状态信息,但可以通过Sum-Net LSA并结合Router-LSA及Network-LSA及计算出区域间路由,计算区域间路由时,采用的不再是链路状态算法,而是距离矢量算法。

在R2上查看LinkState ID为10.0.34.0/24这条LSA的信息。

 

可以看到,10.0.34.0/24是属于区域2的网络,ABR路由器R3将关于10.0.34.0/24的路由信息以Sum-Net LSA的方式通告进了区域0,Cost为1,然后,ABR路由器R2又继续将此信息以Sum-Net LSA的方式通告进了区域0。

对于ABR来说,如果在自己相连的某个区域的LSDB中存在某条Sum-Net LSA,并且这Sum-Net LSA的AdvRouter不是自己的Router-ID时,就会将这条Sum-Net LSA的AdvRouter修改为自己的Router-ID,并重新计算自己到达这条Sum-Net LSA的Cost值,然后将泛洪到与自己相连的其他区域中。

4:查看Type-4 LSA和Type-5 LSA

路由器可以通过Router LSA和Network LSA计算区域内的路由,可以通过Sum-Net LSA并结合Router LSA和Network LSA计算区域间的路由,可以通过Sum-Asbr LSA和External LSA计算AS外部的路由。

R1的Loopback 1是外部路由,被ASBR路由器R1引入到了OSPF网络中,查看R1的LSDB

可以看到,R1的LSDB中存在一条Type为External,LinkState ID为192.168.1.0,AdvRouter为10.0.1.1的LSA,在R1上查看这条LSA的其他信息。

可以看到,这条LSA的Type是External,AdvRouter为10.0.1.1(R1),这条LSA实际上是一条目的网络为192.168.1.0/24的AS外部路由,显示信息中的E Type(External Type)的值为2。

External LSA可以在整个AS内部泛洪(但不能泛洪到Stub区域,Totally Stub区域,NSSA区域和Totally NSSA区域中),在泛洪过程中其各个参数不会改变,查看R2,R3,R4,R5的LSDB中是否也存在这条LSA。

在R5上使用display ospf abr-asbr命令查看到达ABR和ASBR的Cost值

 

可以看到,从R5到达ABR路由的R2的Cost值为1,从R5到达ASBR路由器R1的Cost值为2,由此可见,R5其实是通过Router LSA和Network LSA先计算出到达ABR路由器R2的Cost值,然后加上Sum-Asbr LSA所表示的从ABR的路由器R2到达ASBR路由器R1的Cost值

[R1]ospf[R1-ospf-1]un im[R1-ospf-1]un import-route dir[R1-ospf-1]un import-route direct

在R5上查看LSDB

5:查看Type-7 LSA

NSSA区域是不允许External LSA存在的,但NSSA区域允许通过import-route命令引入外部路由,那么如何来描述在NSSA区域中的AS外部路由呢?NSSA区域引入的外部路由不能以External LSA的形式出现,取而代之的是使用NSSA LSA来描述NSSA区域中的AS外部路由,且NSSA LSA只能出现在NSSA区域中。NSSA LSA由NSSA区域的NSSA ASBR产生。

R4为NSSA区域的ASBR,查看R4的LSDB

可以看到,R4为外部路由172.16.1.0产生了相应的NSSA LSA。在R4上查看这条LSA的详细信息;

可以注意到,NSSA LSA的参数信息基本上和External LSA相同。

NSSA LSA是特殊类型的LSA,只会出现在NSSA区域中,不能泛洪到其他任何区域,那么其他区域的路由器又是如何计算去往NSSA LSA所表示的外部网络的路由呢?

原来,NSSA区域的ABR会将NSSA LSA转换为External LSA,并泛洪到其他区域。

R3为NSSA区域的ABR路由器,在R3上查看LSDB信息。

可以看到,由10.0.4.4产生的NSSA LSA被R3转换成了 External LSA,并泛洪到其他区域。

备注:如有错误,请谅解!

此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人!


http://chatgpt.dhexx.cn/article/hUwIYuJc.shtml

相关文章

ORACLE生成自增唯一序列值的函数

“F_NEXT_VAL” 函数名 VAL 变量值 PRAGMA AUTONOMOUS_TRANSACTION 声明为自治事务 CREATE OR REPLACE FUNCTION "F_NEXT_VAL" RETURN INTEGER ASpragma autonomous_transaction;VAL INTEGER; BEGINSELECT t."VALUE" INTO VAL FROM SYS_SEQUECE t WHERE t…

Mysql和Oracle实现序列自增

/*ORACLE设置自增序列 oracle本身不支持如mysql的AUTO_INCREMENT自增方式,我们可以用序列加触发器的形式实现, 假如有一个表 T_WORKMATES,我们需要让学号PNO自增*/ --创建序列 SEQ_PNO CREATE SEQUENCE SEQ_PNO minvalue 1 --最小值为1 n…

如何实现 Oracle 的自增序列,两步轻松搞定

在实际项目开发过程中,设计数据库表时经常遇到需要主键自增的场景。那如何实现Oracle的主键自增呢,这里我们记录一种最常用的方式:sequence trigger。 就是利用Oralce的序号和触发器来实现字段的自增,下面直接来看一个完整的例子…

oracle中设置表的主键字段为自增序列(实例)

oracle中设置表的主键字段为自增序列(实例) 1、首先创建一个表(如日志表) //删除库表中存在的日志表 drop table S_LOG_INFO cascade constraints; //新建日志表 create table S_LOG_INFO (PRIMARYKEY NUMBER …

oracle数据库新建表增加表序列,设置id自增

1,oracle数据库增加新表时,设置表id为自增 最小1 最大9999999999 CREATE SEQUENCE “数据库名称”.“SEQ_表名称” MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 100000014 NOCACHE NOORDER NOCYCLE 2,向数据库插入数据时&…

Oracle自增序列探秘:一篇文章教你读懂

目录 1:什么是Oracle 自增长序列 2 :创建数据-->实现自增长序列 2.1 创建序列 2.2 使用序列 3 :查询数据-->实现自增长序列 1:什么是Oracle 自增长序列 Oracle自增长序列是一种生成唯一数字的方法,可以用于创…

oracle 序列,程序中实现自增

文章目录 1. 序列作用和含义2. 序列的使用2.1 直接使用序列2.2 配合触发器隐式使用2.3 修改删除序列 1. 序列作用和含义 序列是用于生成唯一、连续序号的对象;可以是升序的,也可以是降序的; 使用create sequence语句创建序列 create sequen…

oracle自增序列

1.创建表TABLESPACETEST -- Create table create table TABLESPACETEST (contract_no VARCHAR2(100) primary key,contract_start_dt DATE,contract_end_dt DATE,loan_amt NUMBER(20,6),loan_bal NUMBER(20,6) ) tablespace SYSTEM;2.创建自增序列&…

【PWA】关于PWA的实操以及使用经验总结

关于PWA的实操以及使用经验总结 什么是PWA如何给项目加上PWA优缺点增强我们的 PWA写在后面 关于标题的说明: 实操: 实际操作 PWA : Progressive Web App 什么是PWA PWA 是渐进式 Web 应用, 类似于原生 App 的体验。 当我们在手机…

为什么 PWA 还没有“干掉”原生应用?

摘要:PWA 即渐进式网页应用,是 Web 应用的一种,具有安全、渐进式、响应式、无需网络、类应用程序、保持最新、可检测、可重新接入、可安装、可分享这 10 个要素,但 PWA 至今仍没有成为应用的默认格式。 原文链接:https…

PWA入门:手把手教你制作一个PWA应用

摘要: PWA图文教程 原文:PWA入门:手把手教你制作一个PWA应用作者:MudOnTire Fundebug经授权转载,版权归原作者所有。 简介 Web前端的同学是否想过学习app开发,以弥补自己移动端能力的不足?但…

PWA 即将终结应用程序商店!

渐进式Web应用很快就会将用户从Google Play和iOS应用商店中解放出来。 作者 | Owen Williams 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 苹果和Google将产品统统锁在了他们的应用商店,现在就让我们来摧毁这…

【PWA学习】1. 初识 PWA

什么是PWA PWA(Progressive Web Apps,渐进式 Web 应用)运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。这些应用无处不在、功能丰富,使其具有与原生应用相同的用户体验优势 我们需要理解的是,PWA 不是某一项技术&am…

搭建BWAPP靶场(详细过程)

靶场介绍 bwapp是一款非常好用的漏洞演示平台,目的是帮助网络安全爱好者、开发人员和学生发现并防止网络漏洞。包含有100多个漏洞,涵盖了所有主要的已知Web漏洞,包括OWASP Top10安全风险,最重要的是已经包含了OpenSSL和ShellShoc…

PWA的探索与应用

本文由云社区发表 PWA(Progressive Web App)起源背景 传统的Web网页存在以下几个问题: 进入一个页面必须要记住它的url或者加入书签,入口不便捷;没网络就没响应,不具备离线能力;不像APP一样能…

PWA 应用列表及常用工具

引言 在做 PWA 的过程中自己写了一些相关的应用和工具,在这里整合下,方便记录及查找使用。 应用列表 PWA 支持检测工具番茄钟二维码生成新闻应用身体数据统计应用支付宝集福应用田英章书法字典应用抖音无水印下载应用很好用的备忘录精神氮泵 PWA 支持检…

【技术】PWA实践 - 应用激活与安装

文章目录 你能用这项技术做什么?适合人群你可以学到什么 应用激活与安装激活与安装Manifest注意 Service WorkerStorage 管理应用 Demo本章参考资料 你能用这项技术做什么? 使用PWA能让你的web网页在支持使用最新版本Chome浏览器的桌面端(wi…

正确使用PWA

作为一个前端程序员,在没有任何Android/IOS的开发情况下,想想我们有多少种方法来开发一个原生移动应用程序!我们可以有非原生、混合开发,PWA等等手段。类似uniapp,Reactive native为我们提供了更简便的手段&#xff01…

PWA应用入个门

文章目录 什么是PWA应用核心技术清单如何添加PWA应用到手机苹果手机:安卓手机: PWA应用VS微信小程序参考资料 什么是PWA应用 PWA(Progressive Web App)是一种理念,使用多种技术来增强web app的功能,可以让网站的体验变得更好&…

什么是 PWA?有什么用?送三本《PWA入门与实践》!

很高兴受到《PWA入门与实践》作者王乐平老师的邀请,为这本书写推荐语。 下面我们就听听作者王老师带你快速玩转 PWA 吧! 文末有给各位粉丝的福利!抽奖送出三本《PWA入门与实践》。 导读:如今,互联网大流量早已进入了移…