OSPF特殊区域和LSA

时间:2024-06-23 23:37:02

OSPF路由计算优选次序:

  (1) 直连路由:本路由器发起的LSA 1、2;
  (2) 区域内路由:O; LSA 1、2;
  (3) 区域间路由:O IA; LSA 3;
  (4) 1类外部路由:O E1; LSA 5类型1;
  (5) 2类外部路由:O E2: LSA 5 类型2;
  (6) 1类NSSA路由:O N1; LSA 7类型1;
  (7) 2类NSSA路由:O N2; LSA 7类型2。

区域

  默认情况下,OSPF的所有区域都是标准区域, 可以接收LSA-1/2、LSA-3/4、LSA-5, 即可以存在 O 、O IA、O E2路由。标准的OSPF区域,能发起也能接收区域内路由、区域间路由、外部路由;骨干区域Area 0也是一个标准区域。

  在一个OSPF网络中,可以包括多种区域,其中就有三种常见的特殊区域,即就是骨干区域(Backbone Area)、末梢区域(Stub Area)和非纯Stub区域(No Stotal Stub area,NSSA),当然还可以包括其它标准区域。OSPF网络中的区域是以区域ID进行标识的,区域ID为0的区域规定为骨干区域。一个OSPF互联网络,无论有没有划分区域,总是至少有一个骨干区域。骨干区域有一个ID 0.0.0.0,也称之为区域0。另外,骨干区域必须是连续的(也就是中间不会越过其他区域),也要求其余区域必须与骨干区域直接相连(但事实上,有时并不一定会这样,所以也就有了下面将要介绍的"虚拟链路"技术),其主要工作是在其余区域间传递路由信息。

  骨干区域作为区域间传输通信和分布路由信息的中心。区域间的通信先要被路由到骨干区域,然后再路由到目的区域,最后被路由到目的区域中的主机。在骨干区域中的路由器通告他们区域内的汇总路由到骨干区域中的其他路由器。这些汇总通告在区域内路由器泛洪,所以在区域中的每台路由器有一个反映在它所在区域内路由可用的路由表,这个路由与AS中其他区域的ABR汇总通告相对应。

  在实际网络中,可能会存在骨干区域不连续,或者某一个区域与骨干区域物理不相连的情况,此时系统管理员可以通过设置虚拟链路(Virtual Link)的方法来解决。虚拟链路存在于两个路由器之间,这两个路由器都有一个端口与同一个非骨干区域(这个区域是处于骨干区域和某个不直接与骨干区域相连的区域之间)相连,虚拟链路使该区域与骨干区域间建立一个逻辑联接点。虚拟链路被认为是属于骨干区域(相当于骨干区域的延伸),在OSPF路由协议看来,虚拟链路两端的两个路由器被一个点对点的链路连在一起。而且,在OSPF路由协议中,通过虚拟链路的路由信息是作为域内路由来看待的。该虚拟链路必须建立在两个区域边界路由器之间,并且其中一个区域边界路由器必须属于骨干区域。  

1. Stub Area(末梢区域)

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

  只接收本区域内路由(O)和区域汇总路由(O IA),不能接收外部路由 ( 外部路由用默认处理 O *),也不能重发布引入外部路由;可以阻挡不必要的LSA5外部路由进入本地区域,ABR会生成0/0的缺省路由(LSA3)通告进stub区域内部。

  通过前面对OSPF区域概念的了解可以知道,在划分了区域之后,OSPF网络中的非骨干区域中的路由器对于到外部区域的路由,一定要通过ABR(区域边界路由器)来转发,或者说对于区域内的路由器来说,ABR是一个通往外部世界的必经之路。既然如此,对于区域内的路由器来说,就没有必要知道通往外部区域的详细路由了,只要由ABR向该区域发布一条默认路由来指导报文的发送路径即可。这样在区域内的路由器中就只需要为数不多的区域内路由和一条指向ABR的默认路由(Default-Route),使区域内的路由表简化。而且无论区域外的路由如何变化,都不会影响到区域内路由器这个简单的路由表。这就是OSPF路由协议中"Stub Area"(末梢区域)的设计理念。Stub区域的ABR不允许注入Type5 LSA,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少,同时也使得该区域不受外部AS路由的影响。

  一个Stub区域可以包含一个入口/出口(也就是一个ABR),或者在任一ABR可以被用于到达外部路由目标时,还可包含多个ABR。对于多ABR的Stub区域,外部路由是通过一个区域外的ASBR进行通告的。AS外部路由器不会被泛洪到,或者通过Stub区域。在一个Stub区域中的所有到达外部网络的路由是通过一个默认路由(0.0.0.0 0.0.0.0)来实现的。这样,在一个Stub区域中的路由器的路由表中就只有一个路由到所有AS外部位置的入口。

  为了创建默认路由,Stub区域的ABR通行一个默认路由到Stub区域。默认路由被泛洪到这个Stub区域内的所有路由器上,但是不会泛洪到Stub区域外。默认路由是用于一个Stub区域中的路由器为任一不可到达AS内部的目的IP地址提供路由。在Stub区域中的所有路由器必须被配置,以便它们不在Stub区域内导入或泛洪AS外部路由。所以,在一个Stub区域中的所有路由器接口上的所有区域配置必须配置Stub区域。Stub区域的所有外部通信必须通过它的单个ABR。此ABR通告一个默认路由分布在内部区域,而不是在区域内泛洪AS外部网络。  

  在Stub区域中规定不接收外部AS的LSA,也不向外部AS发送区域内部LSA,即Stub区域中不注入ASE(自治系统外部)路由。Stub区域一定是非骨干区域和非转换区域(可以配置虚连接的区域),因为它不接收也不发送LSA。并且在Stub区域中不传递Type 5类型(AS外部LSA)的LSA。

  由于Stub区域通常位于OSPF网络末端,这些区域内的路由器通常是由一些处理能力有限的低端路由器组成,所以处于Stub区域内的这些低端设备既不需要保存庞大的路由表,也不需要经常性的进行路由计算。这样做有利于减小Stub区域中内部路由器上的链路状态数据库的大小及存储器的使用,提高路由器计算路由表的速度。

2.Total Stub Area(绝对末梢区域)

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

  只收接收本区域内路由(O), 不能接收外部路由、区域间路由(用默认处理 O* IA),也不能重发布引入外部路由。LSA3是ABR通过计算LSA1和LSA2转化而生成的,可以进一步配置成完全存根区域,阻挡LSA3,生成O* IA 0/0;

  这里所说的完全Stub区域(Totally Stub,或者Stub no-summary)是在Stub区域的基础上(即阻止了Type 5 LSA包的基础上)再对其他ABR通告的网络汇总LSA(即Type 3类型LSA)也进行了阻隔,不接收区域间路由通告。其ABR仅通过网络汇总LSA通告一个默认路由,使用这个默认路由到达OSPF自治系统外部的目的地址。也就是说,完全Stub区域同时不允许Type 3、4或5三类LSA注入,但默认汇总路由除外。

若要将一个区域定义为Stub区域,则在区域内所有路由器中使用"area xx stub"命令;若要定义完全Stub区域,使用OSPF路由器配置命令"area xx stub no-summary"命令。

3.NSSA Area(次末梢区域)

  在NSSA区域中允许存在ASBR,所以也就可以引入外部路由。这个外部路由在NSSA区域内以LSA 7存在。当此LSA 7路由离开NSSA区域进入别的区域时,NSSA的ABR会进行LSA 7向LSA 5的转换。
  本区域只允许LSA 3进入,禁止LSA4/5的进入。所以此区域有域内、域间和外部路由。
  配置NSSA区域需要在区域内手工的创建一条默认路由,以便访问OSPF中其他区域的网络。

  Stub区域虽然为合理的规划网络描绘了美好的前景,但在实际的组网中利用率并不高(Stub区域一般只存在于网络边缘),未免遗憾。但此时的OSPF协议已经基本成型,不可能再做大的修改。为了弥补缺陷,协议设计者提出了一种新的概念NSSA(not-so-Stubby area,非纯末梢区域),并且作为OSPF协议的一种扩展属性单独在RFC 1587中描述。NSSA可以说是对原来的Stub区域要求有所放宽,使它可以在更多网络环境中得到应用。

  NSSA区域规定,AS外的ASE路由不可以进入到NSSA区域中,但是NSSA区域内的路由器引入的ASE路由(NSSA区域中可以连接ASBR)可以在NSSA中泛洪并发送到区域之外。这样,在NSSA区域中取消了原来Stub区域中关于ASE的双向传播的限制(区域外的进不来,区域里的也出不去),改为单向限制(区域外的进不来,区域里的能出去)。若要定义NSSA区域,使用OSPF路由器配置命令"area xx nssa"命令。

  为了解决ASE单向传递的问题,NSSA中重新定义了一种LSA——Type 7类型的LSA(NSSA外部LSA),作为区域内的路由器引入外部路由时使用。该类型的LSA除了类型标识与Type 5不相同之外,其它内容基本一样。这样区域内的路由器就可以通过LSA的类型来判断是否该路由来自本区域内。但由于Type 7类的LSA是新定义的,对于不支持NSSA属性的路由器无法识别,所以协议规定:在NSSA的ABR上将NSSA内部产生的Type 7类型的LSA转化为Type 5类型的LSA再发布出去,并同时更改LSA的发布者为ABR自己。这样NSSA区域外的路由器就可以完全不用支持该属性。在NSSA区域内的所有路由器(包括NSSA的ABR)必须支持Type 7类型的LSA属性,而自治系统中的其他路由器则不需要。

  总的来说,NSSA区域不允许Type 5 LSA,但在NSSA ABR上转换为Type 5的Type 7 LSA还是可以通过的。

4.Total NSSA Area(绝对次末梢区域)

  Total NSSA Area中,本区域禁止LSA3/4/5进入,即只有本区域内路由和外部路由。配置Total NSSA Area后会在区域内自动的生成一条默认路由(以便访问OSPF中其他区域的网络)。  

  特点:在Totally Not-so-Stubby Area(Totally NSSA)下,ABR将过滤掉所有外部路由和其它OSPF区域的路由(Inter-Area Route)进入Totally NSSA区域,但路由器可以将外部路由重分布进OSPF进程,即Totally NSSA区域内的路由器可以成为ASBR。由于没有去往其它OSPF区域的路由,所以ABR会自动向Totally NSSA内发送一条指向自己的默认路由。

  Totally NSSA与NSSA的区别在于,NSSA区域可以允许其它OSPF区域的路由(Inter-Area Route)进入,而Totally NSSA区域却不可以,但Totally NSSA区域的ABR会自动向Totally NSSA区域内发送一条指向自己的默认路由。

  好处:自动发现默认路由,比NSSA更进一步减少表大小

  OSPF特殊区域和LSA

LSA

OSPF的LSA类型一共有11种,分别是

  LSA1 路由器LSA(Router LSA),区域内LSA:描述路由器的直连链路状态信息。由每个发起路由器通告,只在本区域内传递,不会超过ABR。show ip ospf database router。LSA1的Link-ID 和ADC Router都是一样的,都是路由器本身的router-id。

  LSA2 网络LSA(Network LSA):描述本区域内BMA/NBMA(串行连接信息不会在此出现)的网络信息以及连接到此网络的路由器。由本BMA/NBMA网络的DR或BDR通告,只在本区域传递。 show ip ospf database network。LSA2的Link-ID 是DR接口的IP地址,ADC Router是接口所在路由器的router-id。

  LSA1、LSA2总结:通过LSA1,LSA2在区域内洪泛,使区域内每个路由器的LSDB达到同步,计算生成标识为“O”的路由,解决区域内部的通信问题。

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

  LSA4 ASBR汇总LSA(ASBR summary LSA):LSA 4所承载的内容是ASBR的Router-ID。LSA 4其实就是通告路由器将ASBR Router-ID信息转换为LSA 4,在整个OSPF域中泛洪传播。LSA 4是为LSA5所服务的。show ip ospf database asbr-summary。

LSA4的Link-ID是ASBR的router-id,ADV Router是ABR的router-id

  LSA5 自治系统外部LSA (Autonomous system external LSA):描述OSPF区域以外的路由(RIP、EIGRP、BGP等)。由ASBR通告,LSA 5可以传播到整个OSPF的所有区域(特殊区域除外)。注意:LSA 5的通告路由器在穿越ABR的时候是不会改变的。show ip ospf database external。即重分发来的LSA。LSA5的Link-id具体的路由条目,ADV  Router是ASBR的router-id

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

  LSA7 NSSA外部LSA (NSSA External LSA) show ip ospf database nssa-external

  说明:对于LSA-3/4/5/7, 每个LSA只包含一条路由信息,如果有多条路由,则需要多个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多协议标签交换协议

  OSPF特殊区域和LSA