OSPF基础知识详解(五)
OSPF基础知识详解(四):https://www.wlgly.net/post-212.html
14、OSPF普通区域
缺省情况下,OSPF区域被定义为普通区域。普通区域包括标准区域和骨干区域。
标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
骨干区域是连接所有其他OSPF区域的中央区域。区域号固定为0.0.0.0,即区域0,通常用Area 0表示。
骨干区域必须是连续的(也就是中间不会越过其他区域),或者通过虚连接(Virtual Link)连接两个或多个分离的骨干区域,但这些分离的骨干区域的区域号要一样,均为0,同时要求其他区域必须与骨干区域直接连接或通过虚连接虚拟连接。
虚连接被认为是属于骨干区域(相当于骨干区域的延伸)的,在OSPF看来,虚连接两端的两个路由设备被一个点对点的链路连在一起,这样原本没有与骨干区域连接的区域就变成直接连接了,称为普通区域。通过虚连接连接两个非连续的骨干区域0的方法一样。
在OSPF路由域中,无论是否划分区域,总是至少有一个骨干区域。区域之间的通信都是先被路由到骨干区域,然后再路由到目的区域,最后被路由到目的区域的主机
在骨干区域中的路由设备(都是ABR)通过它们所连接的其他区域内的汇总路由到骨干区域中的其他路由设备,这些汇总通告只在骨干区域内的路由设备传播,使得骨干区域内每台路由设备都有一个到达所连接的其他区域ABR的可用路由表。
15、OSPF STUB区域
Stub区域是专为那些性能较低、与AS外部没有太多路由通信的AS边缘区域及简化区域内部路由设备上的路由表而采取的一种优化措施。只有处于AS边缘,且只有一个连接到其它区域的ABR,没有ASBR,没有虚连接穿越的非骨干区域才能配置成stub区域。
Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由设备的路由表规模以及路由信息传递的数量都会大大减少,提高路由效率,减小内存消耗。
Stub区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,Stub区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。
Stub区域不允许发布自治系统外部路由,只允许发布区域内路由和区域间的路由。
Stub区域不允许发布AS外部路由后会来带来一个问题,Stub内部路由设备不能获取AS外部路由信息,不能与AS外部进行通信,但有时候又确需与AS外部通信。
于是增加了一种解决办法,为了保证到自治系统外的路由可达,Stub区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布,Stub区域的ABR将生成一条指向自己的缺省路由(0.0.0.0),并发布给Stub区域中的其他非ABR路由设备,这样Stub区域的其它非ABR路由设备就知道通过ABR路由设备与AS外部通信。
为保证到自治系统外的路由依旧可达,配置Stub区域时需要注意下列几点:
1、骨干区域不能配置成Stub区域。
2、如果要将一个区域配置成Stub区域,则该区域中的所有路由设备都要配置Stub区域属性。
3、Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
4、虚连接不能穿过Stub区域。
16、OSPF Totally Stub区域
Totally Stub区域与Stub区域所需满足条件完全一样,除了不允许AS外部路由相关的Type4 LSA和Type5 LSA进入区域外,还不允许AS内其它区域的Type3 LSA经由ABR向区域内泛洪。Totally Stub区域只有Type1 LSA和Type2 LSA(广播网络),进一步大大减少了区域内部路由设备的路由表规模,降低设备资源消耗,提高路由效率。
为了解决Totally Stub区域与其他区域或AS外部通信,同样由Totally Stub区域的ABR向区域内泛洪一条缺省路由,使得Totally Stub区域内的路由设备能与外部通信。
图25 Stub区域和Totally Stub区域
如图25所示,OSPF划分了Area 0和Area 2,并且Area 0内的ASBR引入了外部路由。通常情况下,为了保证网络的路由可达性,可能把网络的各个角落的路由全都发布进了OSPF。此时,虽然各路由设备都能够到达网络的各个角落了,但如果网络越来越大,设备越来越多,那么每台设备的路由表项就会越来越大,而维护一个大规模的路由表项是需要消耗很多CPU及内存资源的。特别是对于一些边缘区域,设备性能可能比较低,维护大规模的路由表项会对设备性能带来巨大压力。
从网络优化的角度考虑,通常在保证网络可达性的同时应尽量减小路由表项的规模,减少网络中LSA报文的泛洪。Area 2如果作为一个常规区域,那么可能存在Type1、Type2、Type3、Type4、Type5共计5种类型的LSA。对于Area 2中的路由器,无论想到达区域外的哪个网络,都必须首先到达到ABR路由器,也就是说这个时候Area 2中的其他路由器并不需要了解外部网络的细节。这种情况下,就产生了OSPF的Stub区域。
对于Area 2中的路由器来说,其实区域间的明细路由也没必要都了解,仅保留一个出口让Area 2中的路由器的数据包能够出去就足够了,这就产生了OSPF的Totally Stub区域。Totally Stub区域中,既不允许自治系统外部的路由在区域内传播,也不允许区域间路由在区域内传播,这样就进一步减少了区域内LSA的数量。
17、OSPF NSSA区域
OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由对Stub区域路由设备带宽和存储资源的消耗。对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub区域就不再满足需求了。因此产生了NSSA区域。
NSSA区域同时保留自治系统内的Stub区域的特征。OSPF NSSA区域(Not-So-Stubby Area)是OSPF新增的一类特殊的区域类型,NSSA区域是stub区域的延伸,或者说是NSSA区域的修订版,即NSSA区域可以位于非边缘区域,可以有多个ABR(Stub只有一个),可以有一个或多个ASBR(Stub不允许有)。
NSSA区域允许引入自治系统外部路由,即由NSSA区域的ASBR发布Type7 LSA通告给NSSA区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中,不允许其他区域的ASBR连接的AS外部路由进入本区域。
与Stub区域一样,允许区域间的Type3 LSA进入区域内部泛洪。
当区域配置为NSSA区域后,为保证到自治系统外的路由可达,NSSA区域的ABR将生成一条缺省路由,并发布给NSSA区域中的其他路由设备。
NSSA区域和STUB区域有许多相似的地方。NSSA区域与STUB区域差别在于STUB区域是不能引入外部路由,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由。
图26 NSSA区域
一个区域内所有路由设备上配置的区域类型必须保持一致。OSPF在Hello报文中使用N-bit来标识路由设备支持的区域类型,区域类型选择不一致的路由设备不能建立OSPF邻居关系。
虽然协议有要求,但有些厂商实现时违背了在OSPF DD报文中也置位了N-bit,为了和这些厂商互通,路由设备的实现方式是可以通过命令设置N-bit来兼容。
Type7 LSA是为了支持NSSA区域而新增的一种LSA类型,用于描述引入的外部路由信息。
Type7 LSA由NSSA区域的自治域边界路由设备(ASBR)产生,其扩散范围仅限于ASBR所在的NSSA区域。
NSSA区域的区域边界路由设备(ABR)收到Type7 LSA时,会有选择地将其转化为Type5 LSA,以便将外部路由信息通告到OSPF网络的其它区域。
为了将NSSA区域引入的外部路由发布到其它区域,需要把Type7 LSA转化为Type5 LSA以便在整个OSPF网络中通告。
P-bit(Propagate bit)用于告知转化路由设备该条Type7 LSA是否需要转化。
缺省情况下,转换路由设备的是NSSA区域中Router ID最大的区域边界路由设备(ABR)。
只有P-bit置位并且FA(Forwarding Address)不为0的Type7 LSA才能转化为Type5 LSA。FA用来表示发送的某个目的地址的报文将被转发到FA所指定的地址。
区域边界路由设备产生的Type7 LSA不会置位P-bit。
在NSSA区域中,可能同时存在多个ABR,为了防止路由环路产生,边界路由设备之间不计算对方发布的缺省路由。
配置NSSA区域时需要注意下列几点:
1、骨干区域不能配置成NSSA区域。
2、如果要将一个区域配置成NSSA区域,则该区域中的所有路由设备都要配置NSSA区域属性。
3、虚连接不能穿过NSSA区域。
18、OSPF Totally NSSA区域
Totally NSSA区域与NSSA区域特征一样,不同的是Totally NSSA区域不允许AS内区域间Type3 LSA进入。
图27 NSSA区域和Totally NSSA区域
如图27所示,假设Area 2原来作为一个Stub区域运行,但是有个外部网络需要通过Area 2接入到这个OSPF网络,也就是需要将自治系统外部路由引入并传播到整个OSPF自治系统中。此时可以在RouterA上将外部路由注入到OSPF自治系统,但是这样RouterA将成为ASBR,因此,Area 2也就不是Stub区域了。针对这种场景,OSPF定义了NSSA区域。
相比于Stub区域,NSSA区域能够将自治系统外部路由引入并传播到整个OSPF自治系统中,同时又不会学习来自OSPF网络其它区域的路由。
在NSSA区域中,为保证到自治系统外的路由可达,NSSA区域的ABR将生成一条缺省路由,并发布给NSSA区域中的其他路由器。
在NSSA区域中,可能同时存在多个ABR,为了防止路由环路产生,边界路由器之间不计算对方发布的缺省路由。
19、OSPF区域间环路及防环方法
OSPF在区域内部运行的是SPF算法,这个算法能够保证区域内部的路由不会成环。然而划分区域后,区域之间的路由传递实际上是一种类似距离矢量算法的方式,这种方式容易产生环路。
为了避免区域间的环路,OSPF规定直接在两个非骨干区域之间发布路由信息是不允许的,只允许在一个区域内部或者在骨干区域和非骨干区域之间发布路由信息。因此,每个ABR都必须连接到骨干区域。
图28 OSPF区域间环路
假设OSPF允许非骨干区域之间直接传递路由,则可能会导致区域间环路。如图28所示,骨干区连接到其他网络的路由信息会传递至Area 1。假设非骨干区之间允许直接传递路由信息,那么这条路由信息最终又被传递回去,形成区域间的路由环路。为了防止这种区域间环路,OSPF禁止Area 1和Area 3,以及Area 2和Area 3之间直接进行路由交互,而必须通过骨干区域进行路由交互。这样就能防止区域间环路的产生。
发表评论