基于OSPF特殊区域和LSA的教学设计与实践
2020-06-05章丽玲
章丽玲
(湖北第二师范学院 计算机学院,武汉 430205)
OSPF(Open Shortest Path First Protocol,开发最短路径优先协议)是一种基于链路状态路由算法的动态路由协议,其典型特点是:支持CIDR、手动路由汇总、收敛时间快、不会产生路由环路等。OSPF协议中涉及的概念较多,其中最为复杂和难懂的两个主要的概念为:OSPF的特殊区域和LSA类型,它们是OSPF最核心最底层的知识,只有掌握了这两个基本概念,才能算是真正意义上理解了OSPF这个协议。本文将针对OSPF特殊区域和LSA类型进行教学设计和实践,让学生能够高效理解并掌握OSPF协议。
1 理解OSPF多区域概念
为了适应大规模网络,OSPF协议通过将OSPF网络划分为不同区域,以提高路由的可靠性和网络的可扩展性。多域OSPF将自治系统划分为若干个相对独立的区域,其中一个为骨干区域,其他为非骨干区域,每个非骨干区域与骨干区域相连并通过骨干区域交换自治系统的路由信息,即下文所提到的各种LSA。有了多域的概念后,路由器的类型分为内部路由器(Internal Routers,IR)、骨干路由器(Backbone Routers,BR)、区域边界路由器(Area Border Routers,ABR)和自治系统边界路由器(Autonomous System Boundary Routers,ASBR)。
2 理解LSA
LSA(Link-State Advertisement)链路状态通告,是在OSPF邻居之间传递的路由信息,OSPF路由器之间相互学习到的路由信息均是通过LSA学习到的。LSA的类型有7种,其中6类LSA为组成员LSA,MOSPF(组播OSPF)通过允许路由器用它们的链路状态数据库为转发数据流建立组播分发树来增强OSPF的功能,在本文不做详细的描述,其他类别的LSA的特征详解见表1 LAS类型特征描述。
3 理解OSPF的特殊区域
根据OSPF原理,当网络拓扑发生变化后,相关路由器会立即发送链路状态通告LSA信息,使拓扑结构的变化很快扩散到整个OSPF网络。为了减少LSA在区域间的泛洪的数据量,提高网络性能,非骨干区域进一步划分为标准区域(Standard Area)、末节区域(Stub Area)、完全末节区域(Totally Stub Area)、次末节区域(Not-So-Stubby Areas)和完全次末节区域(Totally Not-So-Stubby Areas)五种类型。
为了使学生能够正确掌握特殊区域对不同LSA类型泛洪信息的过滤规则,笔者设计如下实验进行验证。
表1 LAS类型特征描述
4 特殊区域与LSA的洪泛范围实验设计
4.1 实验拓扑
实验拓扑图如图1:图中共划分了4个区域,路由器R3为外部自治系统路由器,连接外部网络10.1.0.0/16。
图1 特殊区域与LSA的洪泛范围实验拓扑图
4.2 路由器各接口的IP地址分配
表2为各个路由器接口IP地址分配表
表2 路由器接口IP地址分配表
4.3 实验步骤:
(1) 在GNS3模拟器中,搭建拓扑,按图配置各台路由器接口的IP 地址。
(2) 配置各个路由器ID,发布OSPF路由。
·路由器R1的配置
R1(config)#router ospf 1
R1(config-router)#network 10.254.254.12 0.0.0.3 area 2
R1(config-router)#network 1.1.1.0 0.0.0.255 area 2
#路由器R2的配置
R2(config)#router ospf 1
R2(config-router)#network 10.254.254.0 0.0.0.3 area 1
R2(config-router)#network 5.5.5.0 0.0.0.255 area 1
·路由器ABR1的配置
ABR1(config)#router ospf 1
ABR1(config-router)#network 10.254.254.0 0.0.0.3 area 1
ABR1(config-router)#network 10.254.254.4 0.0.0.3 area 0
·路由器ABR2的配置
ABR2(config)#router ospf 1
ABR2(config-router)#network 10.254.254.8 0.0.0.3 area 0
ABR2(config-router)#network 10.254.254.12 0.0.0.3 area 2
·路由器ABR3的配置
ABR3(config)#router ospf 1
ABR3(config-router)#network 10.254.254.8 0.0.0.3 area 0
ABR3(config-router)#network 10.254.254.4 0.0.0.3 area 0
ABR3(config-router)#network 10.254.254.16 0.0.0.3 area 3
·路由器ASBR1的配置
ASBR1(config)#router ospf 1
ASBR1(config-router)#network 10.254.254.16 0.0.0.3 area 3
ASBR1(config)#ip route 10.1.0.0 255.255.0.0 10.254.254.22
·在ASBR1中进行静态路由重发布,将该静态路由注入到OSPF中。
ASBR1(config-router)#redistribute static subnets
(3)用Show ip route 命令查看各路由器路由表情况,用Show ip ospf database 命令查看各路由器的链路状态数据库情况。
R1的路由表如图2,该路由表中有两条直联路由,学习到了 5条 “O IA”路由,学习到了一条到达10.1.0.0/16 的“O E2” 路由。
图2 路由器R1的路由表
路由器R2的路由表如图3,该路由表中有两条直联路由,学习到了5条 “O IA”路由,学习到了一条到达10.1.0.0/16 的“O E2” 路由。
图3 路由器R2的路由表
路由器ABR3的路由表如图4,该路由表中有三条直联路由,学习到了4条 “O IA”路由,学习到了一条到达10.1.0.0/16 的“O E2” 路由。
路由器ASBR1的路由表如图5,该路由表中有3条直联路由,发布了一条目的网络为10.1.0.0/16的静态路由,学习到六条“O IA”路由。
图4 路由器ABR3的路由表
图5 路由器ASBR1的路由表
从实验结果可知,各个路由器均学习到了不同网段的路由,其中“O” 条目是通过1类LSA学习到的,“O IA”条目是通过3类LSA和4类LSA学习到的,“O E2”条目是通过5类LSA 学习到的。为了减少LSA的泛洪量,将标准区域配置成特殊区域。
(4)将区域1配置成末节区域(Stub Area)配置命令如下:
R2(config-router)#area 1 stub
ABR1(config-router)#area 1 stub
采用show ip route命令查看路由器R2的路由表,配置成Stub区域后,R2路由表的变化情况如图6。
图6 Stub区域的R2路由器的路由表
对比图3和图6,发现配置成Stub Area 末节区域后,少了O E2 的路由条目,多了一条O*IA的路由条目,可以验证对于末节区域来说,路由器屏蔽了4、5、7类LSA,但会自动下发一条默认路由到达外部自治系统的网络。
(5)将区域2配置成完全末节区域,配置命令如下:
R1(config-router)#area 2 stub no-summary
ABR2(config-router)#area 2 stub no-summary
采用show ip route命令查看路由器R1的路由表,配置成Totally Stub区域后R1的路由表如图4-7.
图7 Totally Stub区域的R1路由器的路由表
对比图2和图7两次路由器R1的路由表,发现路由表R1的条路数明显减少,只有2条直联路由和一条默认路由,原因是完全末节区域会屏蔽3、4、5、7类LSA,因此,学习不到相关的路由条目,但会用一条默认路由指向区域外网络。
(6)将区域3设置成次末节区域(Not-So-StubbyArea,NSSA),配置命令如下:
ASBR1(config-router)#area 3 nssa
ABR3(config-router)#area 3 nssa
采用show ip route命令查看路由器ABR3的路由表,配置成NSSA区域后ABR3的路由表如图8。
对比图4和8会发现在ABR3路由表中O E2 的路由条目变成了O N2 的路由条目,原因是7类LSA只在NSSA区域内泛洪,并且可以被ABR转换为5类LSA消息,通过7类LSA学到的路由在路由表中用符号”N”表示。
图8 NSSA区域的ABR3路由器的路由表
(7)把区域3配置成完全次末节区域,配置命令如下:
ABR3(config-router)#area 3 nssa no-summary
查看ASBR1的路由表情况如图9,对照图5,发现把区域3配置成完全末节区域后,ASBR1的路由器的路由表条目明显减少,所有的“O IA”条目都没有了,取而代之的为一条O*IA的默认路由条目,原因是完全末节区域屏蔽了3、4、5类LSA,并且会自动下发一条默认路由指向区域外网络。
图9 Totally NSSA区域的ASBR1路由器的路由表
4.4 实验结果分析
通过实验结果可知,特殊区域的配置可以减少路由器上LSDB的大小和路由表条目,使网络的性能更优、更稳定。
骨干区域Backbone Area 0,本身是一个标准区域,负责连接非骨干区域,其他区域必须保证和骨干区域有直接的物理连接,如果没有,必须配置相应的虚链路,才能保证他们之间的互连。
Stub Area 区域,可以阻挡不必要的LSA4/5类信息进入本地区域,从而精简路由表。ABR会生成0/0的缺省路由通过进Stub区域内部。
Totally Stub Area区域是对Stub Area的改进,可以阻挡不必要的LSA3/4/5类信息进入本地区域,进一步精简路由表。
Not-So-Stubby Area 区域是Stub区域的变种,即想阻挡LSA5,自身又想引入外部路由;NSSA既阻挡了外部LSA5的进入,同时它的ASBR又可以引入外部路由LSA7,LSA7在NSSA内洪泛,通过ABR时转换为LSA5。
Totally NSSA是对NSSA区域的改进,进一步阻挡LSA3进入NSSA区域内,同时ABR自动生成0/0默认路由进入NSSA区域。OSPF区域的类型与LSA的洪泛范围如图10所示。
图10 OSPF区域类型与LSA的洪泛范围
5 总结
通过教学设计与实践,学生均能深入了解OSPF特殊区域和LSA类型之间的关系,能够熟练进行特殊区域的配置,同时,借助GNS3模拟仿真平台,学生能够自主搭建不同企业网络环境,开展创新实验,自主地把所学的知识应用到实践中。