上期,我们讲解了OSPF的几种LSA,分别是Router LSA、Network LSA、Network-summary LSA、ASBR-summary LSA、AS-external LSA、NSSA LSA,在知道几种LSA的用途和泛洪范围后,今天我们来了解下OSPF的特殊区域。

再说特殊区域之前,要先回顾下OSPF的区域概念。OSPF区域分为骨干区域(area 0)和非骨干区域,而特殊区域就是由非骨干区域变化得来的,其目的是为了减少区域内的LSDB大小,提高设备的处理性能。其本质就是通过下发缺省路由来代替3类LSA或5类LSA。

OSPF存在四种特殊区域,分别是Stub区域(末梢区域)、Totally-stub(完全末梢区域)、NSSA区域(非纯末梢区域)、Totally-NSSA区域(完全非纯末梢区域),下面具体来介绍每种特殊区域的相关情况。

Stub区域:该区域不允许4类LSA、5类LSA的泛洪,但是允许1类LSA、2类LSA、3类LSA的泛洪,当其他区域有引入的外部路由,Stub区域的ABR会自动下发缺省的3类LSA用于该区域路由器访问其他区域的外部路由。当然特殊区域也会存在问题,以stub区域为例。


ospf存根区域的特点 ospf的区域类型_ospf避免环路


如上图所示,OSPF拓扑存在两个区域,一个是骨干区域(区域0),一个是非骨干区域(area 1)且该非骨干区域配置为了特殊区域(Stub 区域)。AR1在区域0中,AR4在区域1中,AR2和AR3是ABR。AR1和AR2之间的开销是100,AR1和AR3之间的开销是10,AR2和AR4之间的开销是1,AR3和AR4之间的开销是1。因为Stub 区域是不允许4类LSA、5类LSA泛洪的,所以AR4在访问其他区域的外部路由时,需要使用ABR下发的缺省3类LSA计算出的缺省路由(每一个ABR都会产生一条缺省的3类LSA),综合以上条件即AR4上会学到两条等价的缺省路由。

AR1上现由一条外部路由1.1.1.1/32,并且引入进了OSPF。那么当AR4去访问这条外部路由时,会有等价的两台路径即负载分担,那么去往AR2的哪部分流量走到就是次优路径。

解决办法:

①可以在AR2和AR4之间修改OSPF的开销值,让AR4优选AR3的缺省LSA

②可以在AR4上对下一跳为AR3的路由修改权重值(权重缺省值为255,值越小,优先级越高)

③如果允许的情况下可以在AR4上配置静态路由(缺省LSA计算的路由优先级默认为150)

Totally-stub区域:该区域不允许3类LSA、4类LSA、5类LSA泛洪,允许1类LSA、2类LSA、缺省3类LSA泛洪,当其他区域有引入外部路由和其他区域的区域间路由,Totally-stub区域的ABR会下发缺省的3类LSA,用于该区域路由器访问其他区域的外部路由和区域间路由。

NSSA区域:该区域不允许4类LSA、5类LSA的泛洪,但是允许1类LSA、2类LSA、3类LSA、7类LSA的泛洪。NSSA区域可以存在ASBR,即外部路由以7类LSA的形式引入,当7类LSA泛洪进骨干区域和其他非骨干区域时,要转换为5类LSA(实际上7类LSA就是5类LSA的变形,本质上都是外部路由信息)。当其他区域有引入的外部路由,NSSA区域的ABR会自动下发缺省的7类LSA用于该区域路由器访问其他区域的外部路由。


ospf存根区域的特点 ospf的区域类型_缺省路由_02


如上图所示,AR4所在区域为NSSA区域且引入了外部路由4.4.4.4/32。当其他区域的路由器(AR1)访问NSSA引入的外部路由,此时NSSA区域的ABR会讲引入的7类LSA转为5类LSA。如果存在多个ABR,就由Router-id大的路由器执行7转5,并且5类LSA的ADV Router会修改为执行7转5路由器的RID。

由于该5类LSA的ADV Router的改变会隐藏真正ASBR的位置,所以如果直接通过ADV查找外部路由则容易产生次优路径。如图中所示AR3执行7转5操作后,AR1访问4.4.4.4/32就会走开销更大的路径。

解决办法:当7类LSA引入时就会携带转发地址(上期LSA有所描述),7转5后会继续携带转发地址,当其他区域的路由器访问该5类LSA时会优先查找转发地址进行访问,这样就可以避免次优路径。


ospf存根区域的特点 ospf的区域类型_OSPF_03


如上图所示,AR1引入一条外部路由192.168.1.0/24,由于AR3执行7转5操作时同时使用命令将转发地址清楚。会导致AR2可以在骨干区域学到不携带转发地址的5类LSA,可以在NSSA区域学习到7类LSA,并且AR2修改了到达AR1的开销,所以AR2会使用5类LSA去访问192.168.1.0/24(即骨干区域AR2——AR4——AR3)到达AR3后,AR3去往外部路由要将报文发送给AR2,以此会形成环路。

这个问题是由操作配置引起的,即7转5后不携带转发地址产生的问题。因此得知为避免此类现象,7转5后一定要有转发地址的存在。

哪7类LSA一定携带转发地址吗?

缺省的7类LSA是不携带转发地址的;在NSS区域的ABR上引入的路由是不携带转发地址的。

Totally-NSSA区域:该区域不允许3类LSA、4类LSA、5类LSA的泛洪,但是允许1类LSA、2类LSA、缺省3类LSA、7类LSA的泛洪。该区域也可以存在ASBR,和NSSA区域相同要由ABR执行7转5的操作。当其他区域有引入外部路由和其他区域的区域间路由,Totally-NSSA区域的ABR会下发缺省的3类LSA和缺省的7类LSA,用于该区域路由器访问其他区域的外部路由和区域间路由。