实验前言
网络规模很大造成LSDB非常庞大,占据了大量存储空间,影响了网络性能。配置OSPF将自治系统划分为不同的区域以解决这样的问题。
OSPF
通过划分区域可以减少网络中
LSA
的数量,而可能对于那些位于自治系统边界的非骨干区域的低端路由器来说仍然无法承受,所以可以通过
OSPF
的特殊区域特性进一步减少
LSA
数量和路由表规模。
在模拟器上,拉三台模拟设备路由器做OSPF的特殊区域Stub、Totally Stub、NSSA、 Totally NSSA四种区域的基础实验,进行学习与分析。
基础配置如下:
AR1
AR2
quit
import-route direct |
在AR2上使用display ip routing-table protocol ospf命令查看,可看到有两条外部路由。
在AR3上查看LSDB。因在AR1和AR3上做了直连路由引入,AR1、AR3成为了ASBR,产生五类LSA。(AdvRouter标识的router id是谁,该LSA就是谁产生的)
查看AR2的ospf的LSDB,分析一下LSA。
五类LSA是AR1、AR3产生的,描述到达AS外部的路由;向普通区域中泛洪,所以AR1、AR2、AR3都可以看到。
(在骨干区域0中,因为在AR1做了外部路由引入,使得AR1成为ASBR,产生两条五类LSA,那么AR2会将这两条五类LSA传到普通区域1中,所以在AR3的OSPF的LSDB中可以看到这两条五类LSA。
提醒:做实验时,引入外部路由命令是import-route direct(引入直连路由,10.1.12.0网段也是AR1的直连路由)
四类LSA是由ABR(AR2)产生;描述从该ABR(AR2)到达OSPF路由域中各个ASBR的路由;
通告给除ASBR所在区域的其他相关区域。
所以看到区域0的LSDB,四类LSA是描述如何到达ospf路由域中AR3(ASBR)的路由;区域1的LSDB,四类LSA是描述如何到达ospf路由域中AR1(ASBR)的路由
三类LSA由ABR(AR2)产生,描述区域内某个网段的路由。
Stub区域
通过OSPF的特殊区域特性进一步减少LSA数量和路由表规模。将普通区域Aare1配置为Stub区域。
[AR2]ospf
[AR3]ospf |
邻居会断掉,重新建立邻居关系,再次查看AR3的数据库会发现4、5类LSA都没有了,有1条缺省的3类LSA。为什么?
在该实验Stub区域中的ABR(AR2)不向stub区域内传播它收到的外部路由(如4、5类LSA),使得stub区域中AR3的LSDB、路由表规模大大减小,为了使得stub区域能够到达外部,AR2将生成一条缺省路由(3类LSA)发布给stub区域中的路由器(AR3)。
也就是说配置Stub区域后,所有自治系统外部路由均由一条三类的默认路由代替。
没有10.1.1.0/24网段,但是能ping通,通过默认路由实现。
这时候分别查看AR1、AR2 的LSDB。AR2不向stub区域内传播它收到的外部路由。但会下发一条缺省3类路由,所以AR3上的LSDB仅有可能存在一、二、三类LSA,一条缺省的三类LSA。
查看AR3的ospf路由
配置Stub区域时要注意以下几点:
骨干区域不能被配置为
Stub
区域。
如果要将一个区域配置成
Stub
区域,则该区域中的所有路由器必须都要配置成
Stub
路由器。(AR2是该区域的ABR、AR3配置成Stub路由器)
Stub
区域内不能存在
ASBR
,自治系统外部路由不能在本区域内传播。(AR3不是ASBR,不产生5类LSA)
虚连接不能穿越
Stub
区域建立。
Totally Stub区域
在完全Stub区域中ABR(AR2)配置。
与Stub
区域配置的区别在于,在
ABR(AR2)
上需要追加
no-summary
参数,配置如下。
[AR2]ospf [AR2-ospf-1]area 1 [AR2-ospf-1-area-0.0.0.1]stub no-summary |
再看AR3的ospf数据库上只存在 一条缺省三类路由跟一类LSA。
Totally Stub区域不允许外部路由(四类、五类LSA)和区域间路由(三类LSA)在本区域内传播;
Totally
Stub
区域访问其他区域及自制系统外部
是通过本区域ABR所产生的三类LSA缺省路由实现的。
这样看来,自治系统外部、其它的OSPF区域的网络发生变化,Totally Stub区域内的路由器是不直接受影响。
Stub、Totally Stub解决了末端区域维护过大LSDB带来的问题,但是对某些特定的场景,并不是最佳解决方案。
因为OSPF规定Stub区域是不能引入外部路由的,这样就可以避免大量外部路由引入造成设备资源消耗。但对于需要引入外部路由又要避免外部路由带来的资源消耗场景,那Stub、Totally Stub区域就不满足需求了。接着往下看:
NSSA区域
NSSA区域能够引入外部路由,同时也不会学习来自OSPF网络其他区域引入的外部路由.
[AR2]ospf [AR2-ospf-1]area 1
[AR2-ospf-1-area-0.0.0.1]undo stub [AR3]ospf [AR3-ospf-1]area 1
[AR3-ospf-1-area-0.0.0.1]undo stub 重新建立邻居 |
可以看到AR3上自产生的有2条七类LSA,还有AR2传过来的1条缺省七类LSA和一条三类LSA。接着再看AR2的OSPF的数据库。
七类LSA由NSSA区域中的ASBR(AR3)产生,用于描述NSSA区域引入的外部路由信息(开始实验时在AR3上使用import-route direct,引入直连路由,10.1.23.0/24、10.3.3.0/24网段都是AR3的直连网段。
在AR2的LSDB数据库中,可以看到3条五类LSA(其中2条是AR1产生的,剩下的1条是AR2产生的),那么这1条五类LSA AR2是如何产生?接着再看看AR2的OSPF的数据库。
同时在AR1的OSPF的数据库中可以看有AR2传过来的五类LSA。
因为七类LSA只能在始发的NSSA区域内泛洪,并且不能直接进入Area 0;
AR2的五类LSA是这样来的:在NSSA区域中的ABR(AR2)收到AR3传过来的七类LSA时,会有选择将其转换成五类LSA,以便将外部路由信息通告到OSPF网络的其他区域。
提醒:当NSSA区域中有多个ABR时,进行七类LSA与五类LSA转换的是router id最大的ABR。
NSSA区域的ABR会阻挡其他区域引入的外部路由,NSSA区域内不会存在四类、五类LSA,为了让NSSA区域内的路由器(AR3)能够通过骨干区域到达AS外部,NSSA区域的ABR(AR2)自动向该区域注入一条缺省路由,该路由采用7类LSA描述,所以在AR3上可以看到该路由。并通过其访问外部。
如果说不想有域间路由(10.1.12.0/24)的话,配置totally stub
Totally Stub区域
[AR2]ospf [AR2-ospf-1]area 1 [AR2-ospf-1-area-0.0.0.1]nssa no [AR2-ospf-1-area-0.0.0.1]nssa no-summary |
在AR3的ospf数据库上可以看到,既有三类缺省LSA,也有七类缺省LSA(域间路由优于外部路由 )。
Totally NSSA区域的ABR会阻挡三类LSA进入该区域,所以,AR2不会将区域间路由传给Aare 1(Totally NSSA),即在AR3的LSDB中,会看到一条描述缺省路由的三类LSA。
当三类和七类LSA通告路由的网络位和掩码相同的情况下,OSPF优选三类LSA通告的路由加到路由表里,所以优选缺省三类LSA放入路由表。