《重识云原生系列》专题索引:
注:本文主要转载自
OSPF(七)OSPF特殊区域之NSSA和Totally NSSA详解及配置_Skye_Zheng的博客-CSDN博客_nssa totally
在上一篇文章:《4.3.4.6 OSPF特殊区域之Stub和Totally Stub区域详解及配置》中,我们详细讲解了Stub区域的作用,以及配置,Stub区域消除了四类、五类LSA,Totally Stub区域更是将三类LSA也一并消除,只留下一条缺省的三类LSA。
本文主要介绍OSPF中的另外一种特殊区域:NSSA以及Totally NSSA区域。
如下图,当RTD和RTA同时连接到某一外部网络,RTA引入外部路由到OSPF域,RTD所在的Area 1为减小LSDB规模被设置为Stub或Totally Stub区域。这时,由于被配置了Stub或Totally Stub区域,RTD所有的数据都将从RTB走。
RTD访问外部网络的路径是“RTD->RTB->RTA->外部网络”,显然相对于RTD直接访问外部网络而言,这是一条次优路径。
OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由对Stub区域设备资源的消耗。
对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和Totally Stub区域就不能满足需求了。
所以为了解决这一问题,我们就有了一个新的特殊区域:NSSA和Totally NSSA区域。
OSPF NSSA区域(Not-So-Stubby Area)是在原始OSPF协议标准中新增的一类特殊区域类型。
NSSA区域和Stub区域有许多相似的地方。两者的差别在于,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由。
七类LSA是为了支持NSSA区域而新增的一种LSA类型,用于描述NSSA区域引入的外部路由信息。
七类LSA由NSSA区域的ASBR产生,其扩散范围仅限于ASBR所在的NSSA区域。
缺省路由也可以通过七类LSA来产生,用于指导流量流向其它自治域。
NSSA区域的ABR收到七类LSA时,会有选择地将其转换为五类LSA,以便将外部路由信息通告到OSPF网络的其它区域。
NSSA区域有多个ABR时,进行7类LSA与5类LSA转换的是Router ID最大的ABR。
将Area 1区域设置成NSSA区域,只要将RTB、RTD路由器做配置即可。
命令如下:
RTB:
[RTB]ospf
[RTB-ospf-1]area 1
[RTB-ospf-1-area-0.0.0.1]nssa
RTD:
[RTD]ospf
[RTD-ospf-1]area 1
[RTD-ospf-1-area-0.0.0.1]nssa
查看RTD的LSDB:
发现RTD路由器只包含一类、二类、三类LSA,以及七类LSA:NSSA 192.168.6.0 192.168.4.4 78 36 80000001 1
NSSA 192.168.7.0 192.168.4.4 80 36 80000001 1
NSSA 0.0.0.0 192.168.2.2 259 36 80000001 1
[RTD]dis ospf lsdb
OSPF Process 1 with Router ID 192.168.4.4
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 192.168.4.4 192.168.4.4 70 48 80000008 1
Router 192.168.2.2 192.168.2.2 207 36 80000005 1
Network 192.168.4.4 192.168.4.4 204 32 80000002 0
Sum-Net 192.168.5.0 192.168.2.2 259 28 80000001 3
Sum-Net 192.168.3.0 192.168.2.2 259 28 80000001 2
Sum-Net 192.168.2.0 192.168.2.2 259 28 80000001 1
Sum-Net 192.168.1.0 192.168.2.2 259 28 80000001 2
NSSA 192.168.6.0 192.168.4.4 78 36 80000001 1
NSSA 192.168.7.0 192.168.4.4 80 36 80000001 1
NSSA 0.0.0.0 192.168.2.2 259 36 80000001 1
查看OSPF路由表:
[RTD]dis ospf routing
OSPF Process 1 with Router ID 192.168.4.4
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
192.168.4.0/24 1 Transit 192.168.4.4 192.168.4.4 0.0.0.1
192.168.7.0/24 1 Stub 192.168.7.4 192.168.4.4 0.0.0.1
192.168.1.0/24 3 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
192.168.2.0/24 2 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
192.168.3.0/24 3 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
192.168.5.0/24 4 Inter-area 192.168.4.2 192.168.2.2 0.0.0.1
Routing for NSSAs
Destination Cost Type Tag NextHop AdvRouter
0.0.0.0/0 1 Type2 1 192.168.4.2 192.168.2.2
Total Nets: 7
Intra Area: 2 Inter Area: 4 ASE: 0 NSSA: 1
我们还可通过tracert命令验证数据路径,发现现在RTD访问外部网络从最优路径通过(RTD->RTF)
[RTD]tracert 192.168.6.1
traceroute to 192.168.6.1(192.168.6.1), max hops: 30 ,packet length: 40,press
CTRL_C to break
1 192.168.7.6 20 ms 20 ms 20 ms
2 192.168.6.1 10 ms 10 ms 20 ms
Totally NSSA与MSSA的区别:Totally NSSA不允许三类LSA在本区域内泛洪。(与Stub和Totally Stub的区别相同)
在NSSA区域中的ARB(也就是图中RTB),追加上no-summary参数即可。
RTB:
[RTB]ospf
[RTB-ospf-1]area 1
[RTB-ospf-1-area-0.0.0.1]nssa no summary
查看RTD的LSDB:
发现三类LSA汇总成一条缺省LSASum-Net 0.0.0.0 192.168.2.2 49 28 80000001 1
[RTD]dis ospf lsdb
OSPF Process 1 with Router ID 192.168.4.4
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 192.168.4.4 192.168.4.4 5 48 80000014 1
Router 192.168.2.2 192.168.2.2 12 36 80000008 1
Sum-Net 0.0.0.0 192.168.2.2 49 28 80000001 1
NSSA 192.168.6.0 192.168.4.4 78 36 80000001 1
NSSA 192.168.7.0 192.168.4.4 80 36 80000001 1
NSSA 0.0.0.0 192.168.2.2 259 36 80000001 1
搭建拓扑,并分配好网段,建议标记下来,以免出错。
根据分配好的网段,配置路由器所有接口的IP地址。以及PC的IP地址。
举个栗子:
[RTD]
[RTD]interface GigabitEthernet 0/0/0
[RTD-GigabitEthernet0/0/0]ip address 192.168.4.4 24
注意:这里我们分了三个区域:Area 0、Area 1、Area 2。需要在不同的区域下宣告邻居。
宣告邻居命令:network [相邻网段] [反子网掩码]
举个栗子:
RTA:
[RTA]ospf
[RTA]ospf 1
[RTA-ospf-1]area 0
[RTA-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[RTA-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[RTA-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
RTB:
[RTB]ospf
[RTB-ospf-1]areo 0
[RTB-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[RTB-ospf-1-area-0.0.0.0]area 1
[RTB-ospf-1-area-0.0.0.1]network 192.168.4.0 0.0.0.255
配置好了OSPF之后,可以先不着急继续往下配置,我们可以先检测一下OSPF是否配置正确。
检测命令:
步骤1:将外部路由用RIP协议进行配置。
RTF:
[RTF]rip
[RTF-rip-1]version 2 //版本2
[RTF-rip-1]network 192.168.6.0
[RTF-rip-1]network 192.168.1.0
[RTF-rip-1]network 192.168.7.0
步骤2:路由引入之前需要在RTF上将192.168.1.0/24、192.168.7.0/24网段用OSPF协议宣告邻居。同时将RTA上将192.168.1.0/24网段用RIP宣告。RTD上将192.168.7.0/24网段用RIP宣告。
RTF:
注意OSPF区域的变化
[RTF]ospf
[RTF-ospf-1]a 0
[RTF-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[RTF-ospf-1]a 1
[RTF-ospf-1-area-0.0.0.1]network 192.168.7.0 0.0.0.255
RTA:
[RTA]rip
[RTA-rip-1]v 2
[RTA-rip-1]network 192.168.1.0
RTD:
[RTD]rip
[RTD-rip-1]v 2
[RTD-rip-1]network 192.168.7.0
步骤3:外部路由引入。(详细解释可查看文章:OSPF(五)OSPF外部路由
RTA、RTD:
[RTA]ospf
[RTA-ospf-1]import-route rip
RTF:
[RTF]rip
[RTF-rip-1]
[RTF-rip-1]import-route ospf
检测命令:
这部分实验可对照上文,这里不再赘述。