随着设备数量的增多,每个设备需要维护与其他设备的邻居关系,并收集他们的链路状态信息,这导致了LSDB的急剧增长。庞大的LSDB占用了大量的存储空间,给网络设备带来了存储压力。运行SPF算法的复杂度也随之增加,因为每次LSDB发生变化都需要重新计算最短路径树,这给网络设备带来了较大的计算负担。
大型网络中拓扑结构的变化频繁,这导致网络处于不断的“动荡”之中,大量的OSPF协议报文在网络中传递,降低了网络的带宽利用率。
OSPF协议通过将自治系统划分成不同的区域来解决LSDB频繁更新的问题,提高网络的利用率。在OSPF中,区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。本文将详细介绍OSPF区域划分。
区域划分
在OSPF中,区域是指将网络中的路由器逻辑上划分为不同的部分,每个部分称为一个区域。区域通过区域号来标识,以便于路由器之间的区域边界划分和路由信息的交换。区域的边界是设备而不是链路,因此一个设备可以同时连接多个区域。
区域划分的作用
- 减少LSDB的大小: 区域划分可以将LSDB分散到不同的区域中,减少每个区域内的LSDB大小,降低存储开销。
- 减少LSA的传播范围: 每个区域内的路由器只需维护与本区域相关的LSA,避免了不必要的LSA传播,减轻了网络负担。
- 提高网络稳定性: 区域之间的LSA传播受到区域边界路由器(ABR)的控制,减少了网络中的泛洪,提高了网络的稳定性和可靠性。
- 优化路由计算: 在不同区域内进行路由计算,可以减少计算范围,提高路由计算的效率,加快收敛速度。
普通区域
在OSPF中,普通区域是指缺省情况下的区域类型,包括标准区域和骨干区域。
标准区域
标准区域是最通用的区域类型,传输区域内、区域间和外部路由信息。
标准区域负责管理特定范围内的路由信息,包括与其他OSPF路由器的邻居关系建立、链路状态信息传输等。
骨干区域
骨干区域是连接所有其他OSPF区域的中央区域,通常用Area 0表示。
骨干区域负责区域之间的路由信息传输,非骨干区域之间的路由信息必须通过骨干区域来转发。
骨干区域内的所有路由器必须能够相互通信,以确保整个网络的稳定性。
所有非骨干区域内的路由器都必须与骨干区域内的至少一个路由器建立邻居关系,以确保区域间路由信息的传递。
💡记忆小技巧:标准区域负责传输区域内、区域间和外部路由信息,而骨干区域则是连接所有其他OSPF区域的中央区域,负责区域间路由信息的传输。为确保网络的连通性和稳定性,骨干区域必须保持连通,并且所有非骨干区域都必须与骨干区域保持连通。
Stub区域
在OSPF网络中,Stub区域是一种特殊的区域类型,其ABR不传播自治系统外部路由,从而减少路由表规模和路由信息传递的数量。
Stub区域的特点
- Stub区域的ABR不传播自治系统外部路由,只传播缺省路由。
- 设备的路由表规模和路由信息传递的数量会大大减少,从而提高网络的效率。
- 降低网络的复杂性,减轻网络设备的负担,提高网络的稳定性和可靠性。
- 在自治系统的边界位置,作为非骨干区域存在,为保证到自治系统外的路由可达,Stub区域的ABR会生成一条缺省路由并发布给Stub区域中的其他非ABR设备。
Totally Stub区域
Totally Stub区域是Stub区域的子类型,ABR只发布Type3缺省路由,不发布自治系统外部路由和区域间的路由。
严格限制了路由信息的传播范围,进一步减少了路由表规模和路由信息传递的数量。
对于一些对路由表规模和网络资源要求极高的场景,如资源有限的小型网络或者对网络性能要求较高的场景,Totally Stub区域可以有效地降低网络的复杂性,提高网络的性能和稳定性。
骨干区域不能配置成Stub区域,Stub区域内不能存在ASBR。
虚连接不能穿过Stub区域,这是因为虚连接需要跨越不同区域的边界,而Stub区域的特性是不允许传播自治系统外部路由,因此虚连接不能通过Stub区域。
华为和思科设备配置
华为设备(以华为VRP系统为例)
配置Stub区域
# 进入OSPF进程配置模式
[Router] ospf 1
# 配置区域0为Stub区域
[Router-ospf-1] area 0 stub
# 结束OSPF配置
[Router-ospf-1] quit
# 保存配置
[Router] save
配置Totally Stub区域
# 进入OSPF进程配置模式
[Router] ospf 1
# 配置区域0为Totally Stub区域
[Router-ospf-1] area 0 stub no-summary
# 结束OSPF配置
[Router-ospf-1] quit
# 保存配置
[Router] save
思科设备(以思科IOS系统为例)
配置Stub区域
# 进入OSPF进程配置模式
Router(config)# router ospf 1
# 配置区域0为Stub区域
Router(config-router)# area 0 stub
# 结束OSPF配置
Router(config-router)# end
# 保存配置
Router# write memory
配置Totally Stub区域
# 进入OSPF进程配置模式
Router(config)# router ospf 1
# 配置区域0为Totally Stub区域
Router(config-router)# area 0 stub no-summary
# 结束OSPF配置
Router(config-router)# end
# 保存配置
Router# write memory
💡记忆小技巧:Stub区域是一种特殊的OSPF区域类型,其ABR不传播自治系统外部路由,从而减少了路由表规模和路由信息传递的数量。Totally Stub区域是Stub区域的一种严格限制类型,仅允许传播Type3缺省路由,进一步减少了路由信息的传播范围。
NSSA区域
NSSA(Not So Stubby Area)区域是Stub区域的一种变形,与Stub区域有许多相似之处,但也有一些不同之处。
NSSA区域
- NSSA区域不允许存在Type5 LSA,而允许引入自治系统外部路由。
- 携带自治系统外部路由信息的Type7 LSA由NSSA的ASBR产生,仅在本NSSA内传播。
- 当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,然后泛洪到整个OSPF域中。
- 允许NSSA区域引入自治系统外部路由,同时减少了LSA的传播范围,提高了网络的稳定性和效率。
Totally NSSA区域
Totally NSSA区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。
对路由信息的传播范围进行了严格限制,进一步降低了网络的复杂性。
对于一些对网络资源要求严格的场景,如资源有限的小型网络或对网络性能要求极高的场景,Totally NSSA区域可以有效地降低网络的负载,提高网络的性能和可靠性。
所有域间路由都必须通过NSSA区域的ABR才能发布,因为NSSA区域的ABR负责将Type7 LSA转换为Type5 LSA并传播到整个OSPF域中。
虚连接不能穿过NSSA区域,因为虚连接需要跨越不同区域的边界,而NSSA区域的特性是不允许发布自治系统外部路由。
华为和思科设备配置
华为设备(以华为VRP系统为例)
配置NSSA区域
# 进入OSPF进程配置模式
[Router] ospf 1
# 配置区域0为NSSA区域
[Router-ospf-1] area 0 nssa
# 结束OSPF配置
[Router-ospf-1] quit
# 保存配置
[Router] save
配置Totally NSSA区域
# 进入OSPF进程配置模式
[Router] ospf 1
# 配置区域0为Totally NSSA区域
[Router-ospf-1] area 0 nssa no-summary
# 结束OSPF配置
[Router-ospf-1] quit
# 保存配置
[Router] save
思科设备(以思科IOS系统为例)
配置NSSA区域
# 进入OSPF进程配置模式
Router(config)# router ospf 1
# 配置区域0为NSSA区域
Router(config-router)# area 0 nssa
# 结束OSPF配置
Router(config-router)# end
# 保存配置
Router# write memory
配置Totally NSSA区域
# 进入OSPF进程配置模式
Router(config)# router ospf 1
# 配置区域0为Totally NSSA区域
Router(config-router)# area 0 nssa no-summary
# 结束OSPF配置
Router(config-router)# end
# 保存配置
Router# write memory
💡记忆小技巧:NSSA区域是一种特殊的OSPF区域类型,允许引入自治系统外部路由,但不允许存在Type5 LSA。Totally NSSA区域则是NSSA区域的一种严格限制类型,不允许发布自治系统外部路由和区域间的路由。