OSPF多区域的基本概念
OSPF(Open Shortest Path First)是一种基于链路状态的动态路由协议,支持多区域划分以实现层次化网络设计。多区域通过将大型网络分割为多个逻辑区域,减少路由表规模、优化SPF计算并提高网络稳定性。区域0(Area 0)是骨干区域,其他非骨干区域必须直接或间接连接到骨干区域。
OSPF路由器角色
- 内部路由器(IR):所有接口属于同一区域,仅维护本区域LSDB。
- DR(指定路由器) 和 BDR(备份指定路由器)
- DR 和 BDR 之外的路由器称为 DR Other
- 区域边界路由器(ABR):连接多个区域,维护各区域的LSDB并汇总区域间路由。
- 自治系统边界路由器(ASBR):引入外部路由(如RIP、静态路由),生成Type 5或Type 7 LSA。
OSPF多区域的优势
- 减少LSDB规模:每个区域仅维护本区域的链路状态数据库(LSDB),降低内存和CPU消耗。
- 限制LSA泛洪范围:LSA(链路状态通告)仅在区域内传播,区域间通过ABR汇总路由。
- 提高收敛速度:区域内部拓扑变化不会触发其他区域的SPF计算。
OSPF多区域配置要点
- 区域划分:确保非骨干区域与Area 0直接相连,虚链路(Virtual Link)仅作为临时解决方案。
- 路由汇总:在ABR上配置区域间路由汇总(
area X range
命令),减少Type 3 LSA数量。 - 特殊区域配置:
- 末节区域:ABR需配置
area X stub
,区域内所有路由器需一致启用该特性。 - NSSA:使用
area X nssa
命令,并可选配置no-summary
禁止Type 3 LSA。
- 末节区域:ABR需配置
OSPF选路原则
- 按照路由类型的优先级选择
- 区域内路由(Intra Area)
- 区域间路由(Inter Area)
- 第一类外部路由(Type1 External)
- 第二类外部路由(Type2 External)
- 在类型相同的情况下,选择路由开销(Cost)较小的路由
OSPF路由汇总
① 区域间路由汇总(在 ABR 上做)
把 Area 1 里的 10.1.0.0/24–10.1.255.0/24 汇总成 10.1.0.0/16 通告进 Area 0:
router ospf 1
area 1 range 10.1.0.0 255.255.0.0
位置:ABR(同时连接 Area 0 和 Area 1 的路由器)。
② 外部路由汇总(在 ASBR 上做)
把该路由器重分发进 OSPF 的多条静态外部路由 172.16.0.0/24–172.16.255.0/24 汇总成 172.16.0.0/16:
router ospf 1
summary-address 172.16.0.0 255.255.0.0
位置:ASBR(做了
redistribute static
或其他协议的路由器)。
LSA类型
四种OSPF特殊区域
前置说明如下(命令以思科设备演示)
加完全:禁止 Type-3 LSA(区域间汇总路由)
加非纯:允许本区域以 Type-7 LSA 的方式引入少量外部路由,由 ABR 转成 Type-5 泛洪到其它区域。
末梢区域
! ===== ABR =====
router ospf 1
router-id 10.0.0.1
network 10.1.0.0 0.0.0.255 area 1
network 10.0.0.0 0.0.0.255 area 0
area 1 stub ! 关键字
!
! ===== 区域内路由器 IR =====
router ospf 1
router-id 10.0.0.11
network 10.1.1.0 0.0.0.255 area 1
area 1 stub ! 关键字
!
完全末梢区域
! ===== ABR =====
router ospf 1
router-id 10.0.0.1
network 10.1.0.0 0.0.0.255 area 1
network 10.0.0.0 0.0.0.255 area 0
area 1 stub no-summary ! 多一个 no-summary
!
! ===== IR =====
router ospf 1
router-id 10.0.0.11
network 10.1.1.0 0.0.0.255 area 1
area 1 stub ! 与 Stub 写法完全一样
!
非纯末梢区域
! ===== ABR =====
router ospf 1
router-id 10.0.0.1
network 10.1.0.0 0.0.0.255 area 1
network 10.0.0.0 0.0.0.255 area 0
area 1 nssa ! 关键字
!
! ===== IR =====
router ospf 1
router-id 10.0.0.11
network 10.1.1.0 0.0.0.255 area 1
area 1 nssa ! 关键字
!
完全非纯末梢区域
! ===== ABR =====
router ospf 1
router-id 10.0.0.1
network 10.1.0.0 0.0.0.255 area 1
network 10.0.0.0 0.0.0.255 area 0
area 1 nssa no-summary ! 多一个 no-summary
!
! ===== IR =====
router ospf 1
router-id 10.0.0.11
network 10.1.1.0 0.0.0.255 area 1
area 1 nssa ! 与其它 NSSA 成员写法一致
!