IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 二、OSPFv2 LSA详解 -> 正文阅读

[网络协议]二、OSPFv2 LSA详解

什么是LSA?

Link-State Advertisement (链路状态通告):在AS内的每台路由器,根据路由器的分类产生一种或多种LSA,收到的LSA的集合形成了LSDB(Link-State Database)。OSPF对路由信息的描述都是封装在LSA中发布出去的。常用的LSA共有6种,而Cisco的LSA有7种。

作用:在OSPF中通过泛洪LSA,通步LSDB来学习路由,达到全网互通。在OSPF中,对LSA的理解还是比较重要的。

——————————————————————————————————————————————————————————

LSA头格式

在这里首先声明一些基本的原理。除了OSPF HELLO报文外,其它的OSPF报文都携带LSA信息。

——————————————————————————————————————————————————————————
在这里插入图片描述

1、LS Age(老化时间):16bit,LSA产生后所经过的时间,以s为单位。无论LSA是在链路上传送,还是保存在LSDB中,LS Age值都会不断增长,默认情况下泛洪时每经过一台路由器其Age增加1。
2、Options(可选项):8bit,E:允许Flood AS -external-LSAs,MC:转发组播报文,N/P:处理Type7 LSA,DC处理按需链路。
3、LS Type(LSA类型):8bit,标识LSA的类型,LSA1、LSA2、LSA3、LSA4、LSA5、LSA7##这里主要指OSPF的LSA类型。共6种。
4、Link State ID(链路状态ID):32bit,在OSPF中唯一标识一个LSA。
5、Advertising Router(通告路由器):32bit,记录产生LSA的路由器的Router ID。
6、LS sequence number:(序列号):32bit,LSA的序列号,序列号越大,LSA越新。
7、LS checksum(校验和):16bit,除了LS age外其它各域的校验和,用于校验LSA的内容来确定该LSA是否最新。
8、Length(长度)16bit,LSA的总长度。

———————————————————————————————————————————————————————————

LSA的类型

IETF为OSPFv2定义了以下几种可用的LSA类型。!!一定要理解LSA类型的作用。

Router LSA Type 1(路由器LSA,类型1)

———————————————————————————————————————————————————————————

Router-LSA Type1(路由器LSA),简称LSA1:每一台运行OSPF路由协议的路由器都会产生路由LSA通告,是最基本的LSA,通告列出了路由器所有的链路或接口,并指明了他们的状态和沿每条链路方向的代价。只会在始发区域内部进行泛洪。

就好比雁塔区要开展核酸检测,雁塔区每一个核酸检测点(代表每台路由器)都会公布自己的信息,我是某核酸点,我能单管/混检核酸。(通告自己所有的接口及链路,指明了他们的状态和沿每条链路的方向代价)。
一句话就是:每一个核酸检测点,向外公布自己的信息。但是仅限雁塔区,别的区不通知。
在这里插入图片描述

那么我们来运行一下OSPF协议。

R2:
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] ip address 10.10.100.5 255.255.255.252
[Huawei] interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/0] ip address 10.10.100.1 255.255.255.252
[Huawei] interface LoopBack0
[Huawei-GigabitEthernet0/0/0] ip address 10.10.50.2 255.255.255.255
[Huawei]ospf 100 router-id 10.10.50.2
[Huawei-ospf-100]area 0
[Huawei-ospf-100-area-0.0.0.0]network 10.10.50.2 0.0.0.0
[Huawei-ospf-100-area-0.0.0.0]network 10.10.100.4 0.0.0.3
[Huawei-ospf-100-area-0.0.0.0]network 10.10.100.0 0.0.0.3
AR3和AR4的配置类似,就省略了。

运行OSPF协议,建立FULL状态后,每个路由器都能学到两条OSPF路由信息。
LSA1:运行了OSPF的路由器在区域内部通告各自的接口及链路信息,所以在区域内任何接口抓包。都可以看到Router LSA。
LSA1影响的是每个路由器接口,所以在任意路由器的接口Shutdown后,接口信息改变,会通告区域内其他路由器。
在AR2的G0/0/0口,IP:10.10.100.5,抓包的同时,AR4的G0/0/1执行Shutdown命令。

在这里插入图片描述

看看报文的内容是否携带了LSA1类型。(每个运行OSPF的UP状态的接口都可以收到Router LSA)
在这里插入图片描述

理解记住了吧。。。。。
———————————————————————————————————————————————————————————

Network LSA Type2(网络LSA,类型2)

———————————————————————————————————————————————————————————

(网络LSA(Network LSA):在每个OSPF域内中指定的路由器DR都将会产生网络LSA通告,用来描绘一个区域内与之相连的所有路由器,也包括DR本身。和LSA1同样在区域内进行泛洪。

就好比:每个核酸点都把自己的信息告知给对方(DR)。

由此得知,Network LSA2的报文,会在DR路由器产生,随后通告给其它DRouters。
所以模拟,AR4的G0/0/1 shutdown(关门了),那么在DR路由器的接口就会抓取到LSA2的报文。

**在R2上查看,DR是基于接口的,那么对于Router ID50.3的AR3路由器来说,AR2的G0/0/0是DR。对于Router ID50.4的AR4路由器来说,AR2的G0/0/1是DR。
在这里插入图片描述
AR2 G0/0/0接口抓包。
在这里插入图片描述
在AR2的G0/0/1接口上抓包
在这里插入图片描述

在来回顾下,LSA2:在每个OSPF域内中指定的路由器DR都将会产生网络LSA通告,用来描绘一个区域内与之相连的所有路由器,也包括DR本身。和LSA1同样在区域内进行泛洪。
DR路由器,产生LSA通告,描绘一个区域内与之相连的路由器,也包含了LSA1,这些接口的信息。
attached router:10.10.50.4,和attached Router:10.10.50.3代表与之相连的邻居路由器。

———————————————————————————————————————————————————————————

Network Summary LSA Type3(网络汇总LSA,类型3)

————————————————————————————————————————————————————————————

网络汇总LSA:是由ABR路由器始发的,ABR路由器将发送网络汇总LSA到一个区域,用来通告该区域外部的目的地址。实际上这些网络汇总LSA就是ABR路由器告诉在自己所属区域的内部路由器它能到达目的地址的一种方法。一台ABR路由器也可以通过网络汇总LSA向骨干区域通告与它相连区域内部的目的地址。

就好比:ABR路由器发送的网络汇总LSA(雁塔核酸指定的那个核酸点,它呢知道雁塔区核酸都有哪些点,哪些点的具体情况是什么,与之相连的长安区的人想知道521医院的核酸点,那就得通过ABR这个核酸点获取信息,相反雁塔区的核酸检测点,想知道长安区有哪些核酸检测点,也是问ABR这个点。ABR的功能,就是个中间人。相互了解不同区域的详细信息,互相通告。当出现ABR路由器时,代表OSPF多区域了。

这里在概述下什么是OSPF网络中有三种路由器类型:
1、内部路由器(Internal Router):是指所有接口都属于同一个区域的路由器。涵盖了LSA1和2。
2、区域边界路由器(Area Border Routes,ABR):指连接一个或多个区域到骨干区域的路由器,并且这些路由器都会作为域间通信的路由网关,因而,ABR路由器总是至少有一个接口是属于骨干区域的,而且必须为每一个与之相连的区域维护不同的链路状态数据库。ABR路由器通常会比内部其他路由器更耗费资源。ABR路由器将汇总与它相连区域的拓扑信息,将这些信息传送给其他的区域。

这里需要增加区域。那么在配置一个区域Area1。代表长安区。
在这里插入图片描述

对于AR4来说,完全FULL后,它学习到10条OSPF路由条目。每个路由器都会学习到10条路由条目,全网一致。
在这里插入图片描述
因为ABR发送LSA3,还是在AR4的G0/0/1接口进行Shutdown,LSA1和LSA2后,ABR汇总这些信息,通告给其他区域,那么我们在AR2的G0/0/2抓包。看看是否能收到来自ABR的LSA3。
在这里插入图片描述
我们在AR7和AR6、AR8上任意接口抓包,都会收到由ABR发送的LAS3的。
在这里插入图片描述

————————————————————————————————————————————————————————————

ASBR Summary LSA Type4(ASBR汇总LSA,类型4)

ASBR汇总LSA:是由ABR路由器始发的,ASBR汇总LSA除了所通告的目的地是一个ASBR路由器而不是一个网络外,其他的与网络汇总LSA都是一样的。

这里可以这样理解,由ABR产生,描述到ASBR的距离,通告给除了ASBR所在区域的其他相关区域,该LSA4的泛洪范围仅在一个区域。

在这里提前把ASBR的概念先说了。
OSPF网络第三种路由器类型:

自治系统边界路由器(Autonomous System Boundary Router,ABSR):可以认为是OSPF域外部的通信量进入OSPF域的网关路由器。也就是说,ASBR路由器是用来把其他路由协议学习到的路由通过路由选择重分配的方式注入到OSPF域的路由器。一个ASBR路由器可以是位于OSPF域的自治系统内部的任何路由器。它可以是一台内部路由器或者ABR路由器。(很明显,ASBR是引入其他路由协议而设计的。在哪台路由器引入,哪台就是ASBR)。很明显属于LS5的。

在这里我们提前做一个路由引入,在ABR路由器上观察LSA4。
在这里插入图片描述

在R7上已经学习到引入的192.168.1.0段的路由了。O_ASE 协议优先级150。

在这里插入图片描述

这里插一句废话,如果AR4 G0/0/2接口宣告了OSPF。那么就不需要引入直连,如果没有宣告OSPF,那么就需要引入直连。但是不引入直连的话,和192.168.1.0段也是可以通信的,只不过不能PING通192.168.100.0/30段的。

抓包:LSA4是ABR始发的,通告给除ASBR所在区域的其他区域。那就去Area1区域AR8上抓。AR8的G0/0/2接口抓。
在AR4的G0/0/0接口进行Shutdown。
在这里插入图片描述
LSA4感觉吧就这一句话,就是通告给除了ASBR所在区域的别的区域自己的位置。。。。。。。

————————————————————————————————————————————————————————————

AS-external LSA Type5(自治系统外部LSA,类型5)

自治系统外部LSA(Autonomous System External LSA):也称为外部LSA,始发于ASBR路由器,用来通告到达OSPF自治系统外部的目的地或者是到OSPF自治系统外部的默认路由器的LSA。外部LSA通告将在整个自治系统中进行泛洪。

使用dis ospf lsdb ase可以查看AS外部的LSA信息。

在这里插入图片描述

ASBR也同样很好理解,始发ASBR路由器,通告整个自治系统到达外部区域的LSA。

那么ASBR始发,区域内任意路由器接口抓包都会产生LSA5。

undoshutdown或者shutdownG0/0/0或G0/0/1都会产生始发ASBR的通告。谁引入谁就是ASBR。ASBR也可以是ABR。
在AR7抓包。
在这里插入图片描述
在这里插入图片描述

————————————————————————————————————————————————————

NSSA LSA Type7( NSSA LSA,类型7)

由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。

为了更好的了解LSA7,先要了解以下3个区域。

————————————————————————————————————————————————————

末梢区域(Stub Area)

OSPF协议使用IGP协议,将整个自治系统划分为不同的区域。主要是为了减少路由信息在自治系统之中传递。可以针对不同的区域拓扑特点采取不同的策略。

Stub区域是一种特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量会大大减少。(意思就是在Stub区域的ABR路由器不接收ASBR的路由~~,在LSA5中,收到ASBR的外部路由信息后,它们会在区域进行泛洪。其实理解LSA5,你会发现,LSA1说白了在区域内的各接口网段,LSA2在还区域内,LSA3在域间通告别的区域进行泛洪,左边拓扑变化了, 给右边通告,右边变化了给左边通告,那么LSA5就直接从边缘的ASBR,通告除了自己的所有区域进行泛洪,所以Stub区域还是有它的作用)

在Stub区域,ABR不允许注入第五类LSA,所以区域中的路由器路由表规模及传递都会大大减少,因为没有第五类LSA,因此也没有必要存在第四类。(因为ASBR都不通告了,还通告自己的位置多此一举么。) 所以在Stub区域同样不允许第四类LSA注入。

Stub区域是一种可选配置,并不是每个区域都具备条件,通常来说,Stub区域位于自治系统边界的末梢区域,是哪些只有一个ABR的非骨干区域。(什么叫末梢,从字面意思理解就是,和图例中的AR9一样,处于边缘网络,且在没有和别的自治系统连接。)

为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条默认路由,此默认路由使用第三类LSA,并发布给Stub区域中的其他非ABR路由器。告诉它们如果要访问外部网络,可以通过ABR。所以,区域内的其他路由器不用记录外部路由,大大降低对路由器性能的要求。

配置Stub区域主要以下几点:
骨干区域不能配置Stub区域。
如果将一个区域配置成Stub区域,则该区域中的所有路由器都必须配置Stub命令。
Stub区域内不能存在ASBR。自治系统外部路由不能在本区域传播。
虚连接不能穿过Stub区域。
区域内如果有多个ABR,可能会产生次优路由。

————————————————————————————————————————————————————

完全末梢区域(Totally Stub Area)

为了进一步减少Stub区域中路由器的路由表规模以及路由信息传递的数量,可以将该区域配置为完全末梢区域,完全末梢区域的ABR路由器不会将区域的路由信息和外部路由信息传递到本区域。

在完全末梢区域中,不允许第四类LSA和第五类LSA注入,为了进一步降低链路状态库的大小,还不允许第三类LSA的注入。同样,ABR会产生一条0.0.0.0/0的LSA 3,以保证本自治系统的其他区域或自治系统外的路由依然可达。

Stub Area和Totally Stub Area的区别:不允许LSA3的注入。

配置了Stub区域,Stub区域规定,ABR不传播它们接收到的自治系统外部路由。

在这里插入图片描述
在AR11 AR10上使用dis ospf lsdb ase查看下有没有外部的路由信息。
在这里插入图片描述
在这里插入图片描述
在AR11上查看LSDB数据库。产生了一条LSA3 Sum-Network LSA的0.0.0.0的路由条目。按图所示,为什么能学到192.168.100.0段,是因为我在AR4上把192.168.100.0段给宣告出去了,我没引入直连。如果引入直连,就不需要宣告,这里就不会出现这个192.168.100.0了。都是外部0.0.0.0代表了。
在这里插入图片描述
在AR11的GE0/0/1口G0/0/0上抓包,关闭自治系统外部AR9的G0/0/1接口时,抓包直接没反应。直接就是空的。因为它要去外部的话,只从它的区域ABR产生的那条0.0.0.0出去。所以不需要知道外部拓扑的变化,类似于引入了一条默认路由一样。
在这里插入图片描述
在AR3.ABR路由器上,看看发给AR11是LSA?
在这里插入图片描述
同样在Area1的AR8的ABR上发送的就是LSA4了。
在这里插入图片描述

————————————————————————————————————————————————————
配置为完全末梢区域在进行观察

末梢和完全末梢,在LSDB上也区别很大。因为不注入LSA3了,数据库的路由信息大大减少。刚才Stub还类似于一条默认路由,这直接成了完全成了一条默认路由了,Stub的LSDB去外部路由的时候,还知道除了自治系统外部,其他区域的信息。完全末梢直接什么都不管,我只要出去,就以一条默认路由交给ABR。自己内部的10.10.100.34和38段的链路变化,才才会收到LSA2的信息,其他的一概不会收。

更重要的是,Stub区域在AREA0和AREA1区域的链路发生变化,AR3还会通告LSA3的路由信息,现在直接压根不通告了。在这里插入图片描述
总结:理解完后,末梢区域和完全末梢区域最大的不同就是。
两者的LSDB库不同,Stub配置模式下,Stub内部不会收到任何关于ASBR自治系统外部通告的任何LSA信息,而是由区域的ABR产生一条LAS3的默认路由在配置为Stub的时候,通告给区域内而已。但是对于其他区域ABR的通告还是会收到LSA3的相关路由信息(此时还注入LSA3)。

Totally Stub配置模式下,Totally Stub内部不会收到任何关于ASBR自治系统外部通告的任何LSA信息,而是由本区域的ABR产生一条LSA3的默认路由在配置为Totally Stub的时候,通告给区域内而已。对于其他区域ABR的通告同样不会收到任何LSA信息(已经不注入LSA3)。进而一步的减少路由表条目。

————————————————————————————————————————————————————

NSSA区域

Stub区域虽然为合理的规划OSPF网络描绘了美好的前景,但它在实际组网中又不具备可操作性,因为实际网络中往往需要引入外部路由,这就要求Stub区域需要存在ASBR路由器。

为此协议设计者提出了一种新的概念NSSA,并且作为OSPF协议的一种扩展属性单独在RFC 1587中描述。在RFC 1587中增加了一类新的区域:NSSA区域(Not-So-Stubby Area),同时增加一类新的LSA:NSSA LSA7(或者称为Type 7 LSA)。

NSSA区域其实是Stub区域的一个变形,它和Stub区域有许多类似的地方,NSSA区域也不允许LSA5的注入。但是NSSA区域内的路由器引入的外部路由可以在NSSA中传播并发送到区域之外。取消了Stub关于外部路由的双向传播的限制。(区域外的进不来,区域内的也不出去),改为单项限制**(区域外的进不来,区域里的能出去)。**

LSA7由NSSA区域的ASBR产生,仅在NSSA区域内传播,这样区域内的路由器就可以通过LSA的类型来判断是否该路由来自本区域内,但由于LSA7是新定义的,对不支持NSSA属性的路由器无法识别,所以在NSSA的ABR上将NSSA内部产生的LSA7类型的LSA转化为LSA5类型的LSA在发布出去,同时更改LSA的发布者为ABR自己。这样NSSA区域外的路由器就可以完全不用支持该属性。

从上述描述可以看出:在NSSA区域内的所有路由器必须支持该属性(包括NSSA的ABR),而自治系统中的其他路由器则不需要。基本跑OSPF的路由器都支持NSSA特性。NSSA是由Stub区域概念改进得来,所以它的名字叫做not-so-stub area,本意:不是那么Stub的区域。与Stub区域类似,NSSA区域也不能配置虚连接。

说了这么多,一句话LSA7,由NSSA区域的ASBR产生,仅在NSSA区域内部传播。NSSA内部的ABR将产生的LSA7转换为LSA5向外发发布出去。

还是这个图,我们配置为NSSA区域AREA2。在AR11和AR13上创建RIP协议,在AR1上引入外部RIP协议,当引入外部RIP协议后(NSSA区域内的路由器引入的外部路由可以在NSSA中传播并发送到区域之外),在AR10中,OSPF LSDB的外部路由信息,会学习到192.168.2.0段的外部路由信息。而在AR3上会把从AR13学习到的192.168.2.0放入LSDB数据库的AS External Database中(包含了192.168.2.0的外部和192.168.1.0的外部路由信息)。

这里还需要注意的是在AR11上引入RIP协议时,AR11把学习到的RIP路由传递本区域。流量能出去,但是流量回不来,还需要在AR11上的RIP协议中引入OSPF协议。这样在AR13上就可以学习到来自AR11 RIP协议通告的路由信息。

在这里插入图片描述
上面的话有点多,咱一个个的看。

(1)配置了NSSA区域后,和之前的Totally Stub有什么区别?

查看下AR11路由器的OSPF LSDB数据库,(完全末梢:不会收到自治系统ASBR通告的外部路由信息,以及其他区域的路由信息。)
配置为NSSA时,不接收自治系统ASBR通告的外部引入静态路由信息。又开始接收除ASBR以外其他区域的路由信息。对于从NSSA引入的协议,在NSSA内部区域通告。(感觉把Totally Stub特性给牺牲了,成了Stub的特性了,在这上增加了末梢区域引入外部路由的功能。在节省路由条目上,没像Totally Stub进一步的改善。。。Stub多了个功能~~~~)。
在这里插入图片描述
在AR3上,查看OSPF LSDB,从NSSA收到的192.168.2.0和50,归类到自治系统外部了。
在这里插入图片描述
随便找个路由器查看下,AR6。
在这里插入图片描述
总结下:NSSA区域,其实就是为了考虑在实际应用中,把一个区域变成完全末梢区域的话,虽然节省了很多资源,但是下挂区域不能在引入其他路由协议了,现实中,引入静态很常见。。所以降级吧。Stub Area的升级版。
在一个就是,NSSA区域把引入的RIP外部自治系统的路由信息,向全网通告。。NSSA区域不接收其他区域引入的外部路由信息。

其他区域把LSA7转换成LSA5进行通告。。。
在这里插入图片描述
在NSSA内部的ASBR上,通告的LSA7。
在这里插入图片描述

————————————————————————————————————————————————————

Totally NSSA区域

同Totally Stub区域一样,Totally NSSA区域同样是为了进一步减少区域内各路由器的路由表规模,因为对于区域内路由而言,并不需要知道其它区域的所有具体路由,只需要知道前往ABR怎么走即可,找不到具体路由信息的数据都转发给ABR,因为ABR至少有一个接口属于骨干区域。所以在Totally NSSA区域内,也不需要LSA3。

配置为Totally NSSA区域后,NSSA区域ABR路由器只通过LSA3的Summary-LSA向区域内发布一条缺省路由,不再向区域内发布任何其他Summary-LSA。

——————————————————————————————————————————————————————
就这么回事吧。后续试验看看就可以了。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 17:06:02  更:2022-06-26 17:06:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:30:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码