我们都知道OSPF路由器协议是基于SPF算法计算最优路径,当用于SPF算法的LSDB的越大,那么路由器的计算压力就越大,对于一些性能不佳的OSPF路由器来说,如何尽可能的减小LSDB规模也就成了OSPF设计时要考虑到的问题,为了进一步优化LSDB,减少非骨干区域的链路状态信息,OSPF在非骨干区域定义了四种特殊区域:Stub区域,完全Stub区域,Nssa区域,完全Nssa区域。当对于一些性能不佳的边缘设备,我们可以采用配置特殊区域的方式来减轻设备的计算压力,维护设备的稳定。本文是基于读者对OSPF有一定了解的基础之上,通过实验引入的方式,重点分析OSPF特殊区域的工作原理及特点。
一、实验案例
1.1实验描述
本次实验的拓扑来源于XX企业的部分边缘网络结构,R1、R2、R3、R5均运行OSPF路由协议,进程号为10,R1和R2设备运行在Area 1区域;R2和R3设备运行在Area 2区域;R2和R5运行在Area 0区域,R5和R6之间运行静态路由协议,R3和R4之间运行静态路由协议,在R5和R3设备上将静态路由分别引入OSPF区域进行路由的重发布,由于R1和R3设备性能较差,为了更好的运行OSPF路由协议,准备将Area 1和Area 2区域配置成特殊区域,用来减轻设备计算的压力,网络拓扑结构如<图1 :XX企业部分边缘拓扑>。
图1 :XX企业部分边缘拓扑
1.2 IP地址信息规划
1.3 网络设备部分配置
R1设备:
ospf 10 router-id 1.1.1.1
area 0.0.0.1
network 10.1.12.0 0.0.0.255
R2设备:
ospf 10 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 10.1.25.0 0.0.0.255
area 0.0.0.1
network 10.1.12.0 0.0.0.255
area 0.0.0.2
network 10.1.23.0 0.0.0.255
R3设备:
ip route-static 4.4.4.4 255.255.255.255 10.1.34.4
ospf 10 router-id 3.3.3.3
import-route static
area 0.0.0.2
network 3.3.3.3 0.0.0.0
network 10.1.23.0 0.0.0.255
R4设备:
ip route-static 0.0.0.0 0.0.0.0 10.1.34.3
R5设备:
ip route-static 6.6.6.6 255.255.255.255 10.1.56.6
ospf 10 route-id 5.5.5.5
import-route static
area 0.0.0.0
network 5.5.5.5 0.0.0.0
network 10.1.25.5 0.0.0.0
R6设备:
ip route-static 0.0.0.0 0.0.0.0 10.1.56.5
二、特殊区域的分析
2.1 Stub区域
2.1.1 Area1 LSDB分析
我们可以通过display ospf lsdb的命令查看现R1的链路状态数据库,在<图2 : R1设备的LSDB>中我们可以看到LSDB中有1类、2类、3类、4类、5类LSA,这几类LSA共描述了OSPF区域内、区域间、区域外的路由。
图2 : R1设备的LSDB
2.1.2 Stub区域的关键配置
此时我们为了减少R1设备的LSDB信息,减轻R1设备的计算工作量,我们可以将Area 1配置为Stub区域。
R1:ospf 10
area 0.0.0.1
Stub
R2:ospf 10
area 0.0.0.1
Stub
2.1.3 Stub区域的关键内容分析
我们可以通过display ospf lsdb的命令查看R1的链路状态数据库,在<图3 :R1设备的LSDB>中我们可以发现Stub区域内已经不存在4类和5类lSA,只存在1类、2类和3类LSA。看到这里我们会思考一个问题,既然Area1内已经没有4类LSA和5类LSA,那么R1是怎么去访问外部AS路由的呢?我们对比图3.11和3.13就可以得出,LSDB中新增一条三类LSA的默认路由且Adv为2.2.2.2,则R1设备访问外部路由就是通过R2设备下发的默认路由访问外部路由的。
图3 :R1设备的LSDB
我们可以试想,如果我们想在R1上引入外部路由,那么是否可行呢?我们可以在设备R1上引入直连,我们会发现OSPF的LSDB并没有任何变化,说明在Stub区域内是不允许引入外部AS的路由的。
2.1.4 Stub区域总结
2.2 完全Stub区域
2.2.1 完全Stub区域的关键配置
R1:ospf 10
area 0.0.0.1
stub no-summary
R2:ospf 10
area 0.0.0.1
stub no-summary
2.2.2 完全Stub区域的关键内容分析
通过Stub区域的分析,我们还希望能够进一步减少LSDB的条目信息,于是我们将整个区域配置成了完全Stub区域,在<图4:R1设备的LSDB>中我们可以发现完全Stub区域在普通Stub区域的基础上也不允许区域间路由(三类LSA)在本区域内传播。完全stub区域内的路由器对其他区域及自治系统外部的访问需求是通过本区域ABR所产生的三类LSA缺省路由实现的。由此可见完全Stub区域相对于Stub区域更近一步的简化了LSDB。
图4:R1设备的LSDB
2.2.3 完全Stub区域总结
2.2.3 Stub区域和完全Stub区域存在的问题
根据OSPF路由协议对Stub和完全Stub区域的规定,这两个区域是不能引入外部路由的,这样虽然避免大量外部路由对Stub区域设备资源的消耗,降低了Stub区域路由设备的压力,但是,对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和完全 Stub区域就不能满足需求了。所以,需要NSSA区域和完全 NSSA区域。
2.3 Nssa区域
2.3.1 Area2 LSDB分析
我们可以通过display ospf lsdb的命令查看现R3的链路状态数据库,在<图5:R3设备的LSDB>中我们可以看到LSDB中有1类、2类、3类、4类、5类LSA,这几类LSA共描述了OSPF区域内、区域间、区域外的路由。
图5:R3设备的LSDB
2.3.2 Nssa区域关键配置
R1:ospf 10
area 0.0.0.2
Nssa
R2:ospf 10
area 0.0.0.2
Nssa
3.3.3 Nssa区域的关键内容分析
我们可以通过display ospf lsdb的命令查看现R3的链路状态数据库,在<图6:R3设备的LSDB>中我们可以发现Nssa区域内和Stub区域一样,已经不存在4类和5类lSA,但是Nssa区域存在1类、2类、3类和7类LSA。为了让NSSA区域内的路由器能够通过骨干区域到达AS外部,NSSA区域的ABR设备R2会自动向该区域注入一条缺省路由,该路由采用7类LSA描述。
其实当R3将外部静态路由4.4.4.4引入NSSA区域时,R3作为ASBR生成7类LSA在Area 2内泛洪;Area 2内的路由器依然会收到R3注入的3类LSA,并计算出到达其他区域的区域间路由。Nssa区域和Stub两者的差别在于,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由。
图6:R3设备的LSDB
我们可以通过display ospf lsdb的命令查看现R2关于的链路状态数据库,在<图7:R2设备的LSDB>中我们可以看到在Area 0和Area 1中并不存在七类Nssa LSA,只有在Area2中才存在七类Nssa LSA,并且关于R3设备引入的静态路由4.4.4.4在Nssa以外的区域均以5类LSA进行传递,也就是在R2设备上发生了七类LSA转5类LSA的现象。
图7:R2设备的LSDB
3.3.4 Nssa区域总结
2.4 完全Nssa区域
2.4.1 完全Nssa区域的关键配置
R1:ospf 10
area 0.0.0.2
Nssa no-summary
R2:ospf 10
area 0.0.0.2
Nssa no-summary
2.4.2 完全Nssa区域的关键内容分析
Totally NSSA区域和NSSA区域类似,只是Totally NSSA区域的ABR会阻挡3类LSA进入该区域,因此R2设备不会将区域间路由注入Area2,我们可以看到在<图8:R3设备的LSDB>中只会存在一条3类LSA的默认路由。
图8:R3设备的LSDB
2.4.3 完全Nssa区域的总结
四、总结
读到这里,相信大家对OSPF的特殊区域有了一定的了解,实际上OSPF通过对边缘区域的3类、4类、5类和7类LSA的控制来缩减LSDB规模,从而降低路由计算的复杂度,使得OSPF路由器不会产生很大的计算压力。这样既能完成路由计算,又可以加快收敛速度,在边缘结构网络中用处较多。
以上就是今天的文章内容,如有疏漏之处,请读者朋友指正。
本期作者:
熊亮,深信服云计算认证专家(SCCE-C),产业教育中心资深讲师
云计算/路由交换认证专家,擅长企业级云网络架构、云架构设计、云容灾等技术;曾负责并参与金融、医疗等政企行业企业级云网络架构设计、私有云架构设计、企业级云迁移、云容灾等方案设计与实施;作为特聘讲师为多家央企、大中型企业、高校进行分布式存储架构实践、云计算架构深度解析、私有云架构设计、MPLS VPN骨干网络架构设计等技术方向授课,具有丰富的云计算一线实战经验以及技术转化和输出能力。