OSPF的LSA类型

原文地址:OSPF的LSA类型~作者:cfeng_026
OSPF的LSA类型种类繁多,往往让人头晕恶心。然后OSPF又是目前应用最广泛的IGP协议,我们不得不对它进行研究。OSPF的LSA类型一共有11种(之前说错12种自己数来数去少一种,哈哈,纠正下),分别是:
LSA1 路由器LSA(Router LSA)LSA2  网络LSA(Network LSA)

LSA3 网络汇总LSA(Network summary LSA)

LSA4  ASBR汇总LSA(ASBR summary LSA)

LSA5  自治系统外部LSA (Autonomous system external LSA)

LSA6  组成员LSA (Group membership LSA) *目前不支持组播OSPF (MOSPF协议

LSA7  NSSA外部LSA (NSSA External LSA)

LSA8  BGP的外部属性LSA(External attributes LSA for BGP)

LSA9  不透明LSA(本地链路范围)  (opaque LSA)   *目前主要用于MPLS多协议标签交换协议

LSA10 不透明LSA(本地区域范围) (opaque LSA)   *目前主要用于MPLS多协议标签交换协议

LSA11 不透明LSA(AS范围) (opaque LSA)   *目前主要用于MPLS多协议标签交换协议

这11种LSA中,我们主要研究其中的LSA1、2、3、4、5、7。其余的在一些特殊环境使用,暂时不对它们进行深入的探讨。

请先看一幅图,此图涵盖了我们所研究的6种LSA类型在OSPF环境中的作用。

* 图中ADV是通告路由器;ABR是区域边界路由器;ASBR是自治系统边界路由器。
①   LSA1 路由器LSA(Router LSA)
描述路由器的直连链路状态信息。由每个发起路由器通告,只在本区域内传递,不会超过ABR。

②   LSA2  网络LSA(Network LSA)
描述本区域内BMA/NBMA(串行连接信息不会在此出现)的网络信息以及连接到此网络的路由器。由本BMA/NBMA网络的DR或BDR通告,只在本区域传递

③   LSA3 网络汇总LSA(Network summary LSA)
描述OSPF的区域间路由(在路由表中以 O IA 标识)。原LSA 1所描述的路由信息会由所在区域的ABR将其转换为LSA 3。
LSA3可以传播到整个OSPF的所有区域(特殊区域除外)。ABR通告。
注意:LSA 3每穿越一个ABR,其ADV Router都会发生改变,ADV Router转变为最后一次穿越的ABR路由器

④   LSA5  自治系统外部LSA (Autonomous system external LSA)
没有看错,这里是LSA 5,我们先讲LSA 5再反过来看LSA 4。
LSA 5描述的是OSPF区域以外的路由(RIP、EIGRP、BGP等等)。由ASBR所通告,LSA 5可以传播到整个OSPF的所有区域(特殊区域除外
注意:LSA 5的通告路由器在穿越ABR的时候是不会改变的。

⑤   LSA4  ASBR汇总LSA(ASBR summary LSA)
LSA 4所承载的内容是:ASBR的Router-ID。LSA 4其实就是图中R4(通告路由器)将Area 3中R11的Router-ID信息转换为LSA 4,在整个OSPF域中泛洪传播(由于LSA 5的通告路由器在穿越ABR的时候不会改变,如图中Area 3的LSA 5在穿越R4到达Area 0时,通告路由器不改变仍然是R11,因此除了Area 3,Area 0和其他区域都不知道R11的信息。此时就需要LSA 4为Area0和其他区域提供R11的信息,可以这么说,LSA 4是为LSA5所服务的)。

⑥   OSPF的特殊区域:Stub Area末梢区域
在Stub区域中只有域内和域间路由只允许LSA 3进入本区域,LSA 4/5不允许进入。配置Stub区域后会在区域内自动的生成一条默认路由(以便访问OSPF中其他区域的网络)。

⑦   OSPF的特殊区域:Total Stub Area绝对末梢区域
在Total Stub Area中只有本区域内的路由LSA3/4/5均不允许进入本区域。配置Total Stub Area后会在区域内自动的生成一条默认路由(以便访问OSPF中其他区域的网络)。

⑧   OSPF的特殊区域:NSSA Area次末梢区域
在NSSA区域中允许存在ASBR,所以也就可以引入外部路由。这个外部路由在NSSA区域内以LSA 7存在。当此LSA 7路由离开NSSA区域进入别的区域时,NSSA的ABR会进行LSA 7向LSA 5的转换(如图Area 6所示)。
本区域只允许LSA 3进入,禁止LSA4/5的进入。所以此区域有域内、域间和外部路由
配置NSSA区域需要在区域内手工的创建一条默认路由(以便访问OSPF中其他区域的网络)。
# router ospf x
# area 6 nssa default-information-originate

⑨   OSPF的特殊区域:Total NSSA Area绝对次末梢区域
在NSSA区域中允许存在ASBR,所以也就可以引入外部路由。这个外部路由在NSSA区域内以LSA 7存在。当此LSA 7路由离开NSSA区域进入别的区域时,NSSA的ABR会进行LSA 7向LSA 5的转换(如图Area 7所示)。
本区域禁止LSA3/4/5进入,只有本区域内路由和外部路由。配置Total NSSA Area后会在区域内自动的生成一条默认路由(以便访问OSPF中其他区域的网络)。

OSPF的区域类型和LSA类型这两个知识点,经常容易导致人们对他们理解上的混乱,今天就来谈谈这两个概念。
本文将会以下面这个拓扑图为例进行讲解。

一、LSA Type,链路状态通告的类型
本来想先讲区域类型,但是由于要理解不同类型的区域,必然要涉及到不同类型的LSA,现在把LSA放到前面先讲。
我们这里谈谈常见的几种LSA123457LSA
11LSA,路由器LSAOSPF网络中所有路由器都会产生1LSA,他的意思就是表示路由器自己在本区域内的直连链路信息。该LSA仅在本区域内传播。其中,Link IDADV Router写的都是该路由器的RouterID
下图为1LSA
22LSA,网络LSA在广播或者非广播模式下(NBMA)由DR生成。该LSA仅在本区域内传播。2LSA表达的意思应该是:某区域内,在广播或非广播的网段内选举了DR,于是DR在本区域范围利用2LSA来进行通告。该LSA仅在本区域内传播。其中,该LSALink ID就是该DR的接口IP地址,而ADV Router则是DRRouter ID
下图为2LSA
33LSA,网络汇总LSA由区域边界路由器ABR生成,用于将一个区域内的网络通告给OSPF中的其他区域。可以认为3LSA保存着本区域以外的所有其他区域的网络。举个例子,在多区域的环境如1-0-2这样的三个区域,含有area1area0ABR会把area1的网络以3LSA的形式通告给area0,当然它也会把area0里面的网络通告给area1。那么,area1里面的网络又是如何通告到area2呢?这里就要考虑到area1那些一开始被转换成3LSA的网络,是如何进入到area2的问题了。当原先这个3LSA进入到area0area2的边界路由器时,位于这个边界的ABR就把这条包含着area1链路信息的3LSA进行修改,修改的内容是把里面的ADV Router替换成自己的Router ID,并且维持原先的Link ID不变,然后把这条修改后的LSA通告给area2,这个就是3LSA的工作过程。
下图为3LSA

44LSAASBR汇总LSA4LSA5LSA是紧密联系在一起的,可以说4LSA是由于5LSA的存在而产生的。4LSA由距离本路由器最近的ABR生成,这句话应该要这样来理解:如果路由器想要找到包含了外部路由的那台ASBR(自治系统边界路由器)的话,你应该要到达哪台ABR,这台ABRRouter ID就写在该LSAADV Router里面,而LSA里面的Link ID代表的是该ASBRRouter ID
下图为4LSA:


55LSA,外部的LSA5LSA由包含了外部路由的ASBR产生,目标是把某外部路由通告给OSPF进程的所有区域(特殊区域除外,下面会提到)。5LSA可以穿越所有区域,意思是在跨区域通告时,该LSALink IDADV Router一直保持不变。通俗一点来说,就像是该ASBROSPF全网络的所有路由器说,我有这个外部路由,想去的话就来找我吧!其中,Link ID代表的是那台ASBR所引入的网络,ADV Router则是该ASBRRouter ID
下图为5LSA

67LSA7LSA是一种由NSSA区域中引入了外部路由的路由器生成的LSA,他仅在NSSA本区域内传播。由于NSSA区域不允许外部的路由进来从而禁止了5LSA,那么为了能够把自己的外部路由传播出去,于是使用了7LSA来代替5LSA的功能。值得注意的一点是,当这种7LSA到达NSSA跟其他区域的边界后,该边界路由器会根据这条7LSA。生成对应的5LSA然后继续传播给其他区域。此时,这条5类的LSA里面的Link ID7LSA一样,都是该外部网络地址,而ADV Router则变成了该边界路由器的Router ID,因为这条5LSA本来就是边界路由器产生的。这里要注意的一点是,该5LSA里面的Forwarding Address还是保持跟之前的7LSAForwarding Address一样。
下图为7LSA

下图为7类转成5LSA

二、Area Type,区域类型
OSPF的区域类型分为5种:Backbone area(area 0)Standard areaStub areaTotally stubby areaNo so stubby area(NSSA)。下面来逐一介绍。
1Backbone area,也叫骨干区域,其实就是area 0。根据OSPF的设计原则,area 0OSPF网络中起着中心节点的作用,其他区域的链路信息通过area 0来进行相互传递,这也意味着所有其他区域都必须跟area 0相连。该区域支持12345LSA

2Standard area,也叫标准区域,标准区域的意思就是在这个区域里面可以正常传递OSPF各类报文。该区域支持12345LSA

3Stub area,也叫末节区域,所谓末节区域,意思就是该区域不接受非OSPF网络的任何外部路由(external route),它如果要到达那些外部路由的时候,只需要通过默认路由把它发出去就可以了。该区域支持123LSA

4Totally stubby area,也叫完全末节区域,他的意思是该区域非但不接受外部路由,也不接受自己本区域以外的其他区域的链路信息。它如果要到达本区域以外的目标网络的时候,也是跟末节区域一样,直接把报文通过默认路由发出去。这里要注意的是,由于默认路由是用3LSA发送的,所以完全末节区域虽然不允许普通的3LSA报文,但是支持这种包含默认路由的3LSA。该区域支持12LSA,以及包含默认路由的3LSA

5No so stubby area,就是平时所说的NSSA了,这个NSSA其实是从stub区域发展而来的,它的意思是在含有stub区域的条件下,还拥有可以发送外部路由出去给其他区域的能力。该区域支持1237LSA。这里注意一点的是,NSSA区域还有另外一种模式,那就是是完全末节区域模式的NSSA。这个模式其实就是在完全末节区域环境下允许引入外部路由,这种区域模式支持12LSA以及包含默认路由的3LSA

附记:
下面附上stub区域和totally stubby area的配置方式:
Stub区域的配置方式,其实就像普通一样通告OSPF网络,然后在把该区域设置为stub,命令是area xx stub。举开始的拓扑图为例,要设置aera24stub区域,就要在R2R4上分别进入路由配置模式:
      network24.1.1.0 0.0.0.3 area 24
      area 24 stub
通告完24.1.1.0这个网段后,然后用这条命令“area 24 stub”即可把area24配置为stub区域,如果要配置为完全末节区域,则只要在该命令后面添加一个参数no-summary,即可,完整命令为“area 24 stub no-summary”。
若要查看该区域是否成功配置为stub区域的话,直接show ip ospf即可。