OSPF多区域四厂商对比实战

专题-网络配置 · 第07篇 日期:2026-08-10


全文

开篇:静态路由配完了,网络一变大就崩?

上周我们讲完静态路由(本系列前一篇)——小网、分支、末梢,几条命令写死,稳如老狗。

但现实是:企业网络会长大。分支从 3 个变 30 个,网点从 1 层变 3 层,链路今天通明天断。这时候还靠手填静态路由?光是"新增一个网段要改多少台设备"就够网工加班一个月。

这就需要动态路由登场。而企业网里最主流、最该先吃透的,就是 OSPF

今天这篇,继续做网工圈最有价值的事:把华为、新华三 H3C、锐捷、思科四家的 OSPF 多区域命令放在一起逐条对比。重点不是"怎么配单区域",而是——网络一大,为什么必须划多区域、怎么划才不翻车


一、为什么从"单区域"升级到"多区域"?

OSPF 默认所有设备塞进同一个 Area(区域)。网小没问题,网一大 three 个隐患直接爆:

  1. LSDB 暴涨:每台路由器都要存全网的链路状态数据库。设备一多,内存吃不消。
  2. SPF 计算风暴:任意一条链路抖一下,全网重算最短路径,CPU 直接打满。
  3. 故障域太大:一个角落的链路翻动,牵动整个 OSPF 域收敛。

多区域的本质 = 把一张大网切成几张小网,通过 ABR(区域边界路由器)互联:

  • LSDB 只在区域内完整,区域间只传汇总路由 → 内存、CPU 都降下来。
  • 某区域的链路抖动,被 ABR 挡在区域边界,不波及全网。
  • 还能做路由汇总、特殊区域(Stub),进一步优化。

经验法则:设备 ≤ 几十台、拓扑简单 → 单区域(Area 0)够用;设备多、跨楼层/跨楼宇/跨分支、需要隔离故障域 → 上多区域。


二、OSPF 多区域核心概念(先搞懂这 4 个词)

  • Area 0(骨干区域):OSPF 的"主动脉",必须有且唯一。所有非骨干区域必须和 Area 0 直接相连(或被虚链路连上)。
  • ABR(区域边界路由器):同时连着 Area 0 和某个非骨干区域的路由器,负责在区域间传路由。它是多区域的"开关"。
  • 区域内路由(Intra-Area):同一个 Area 内的路由,Type-1/2 LSA。
  • 区域间路由(Inter-Area):跨 Area 的路由,由 ABR 用 Type-3 Summary LSA 通告。

四种常见区域类型(进阶时必用):

区域类型 特点 典型用途
普通区域 收发所有 LSA 默认
Stub(末节) 不收外部路由(Type-5),自动给默认路由 末梢分支,减表项
Totally Stub(完全末节) 只留 Area 内 + 一条默认路由 极致精简末梢
NSSA 能引入外部路由但不收别人的外部路由 需要在边缘做 NAT/引入又想隔离

三、四厂商基础 OSPF 进程创建对比

以"设备 Loopback 1.1.1.1 作 router-id,把 192.168.1.0/24 宣告进 Area 0"为例。

华为:

[HUAWEI] ospf 1 router-id 1.1.1.1
[HUAWEI-ospf-1] area 0
[HUAWEI-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

H3C(新华三):

[H3C] ospf 1 router-id 1.1.1.1
[H3C-ospf-1] area 0
[H3C-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

锐捷:

Ruijie(config)# router ospf 1
Ruijie(config-router)# router-id 1.1.1.1
Ruijie(config-router)# network 192.168.1.0 0.0.0.255 area 0

思科:

Cisco(config)# router ospf 1
Cisco(config-router)# router-id 1.1.1.1
Cisco(config-router)# network 192.168.1.0 0.0.0.255 area 0

第一眼差异:华为/H3C 用 ospf 1 进进程视图,在 area 0 子视图里写 network;锐捷/思科用 router ospf 1 进进程,把 area 0 写在 network 命令尾巴上。area 写在哪,是两家最大的分水岭。


四、四厂商命令差异速查表(⭐核心干货)

对比维度 华为 H3C 锐捷 思科
进入进程 ospf 1 ospf 1 router ospf 1 router ospf 1
进程号含义 本地有效(邻居间可不同) 同华为 本地有效 本地有效
设 router-id 创建时 ospf 1 router-id x 或进程下 router-id x 同华为 进程下 router-id x 进程下 router-id x
宣告方式 area 0 视图内 network ... 同华为 network ... area 0(area 在命令后) 同锐捷
掩码写法 反掩码 0.0.0.255 同华为 反掩码 0.0.0.255 反掩码 0.0.0.255
区域 0 写法 area 0area 0.0.0.0 同华为 area 0(network 后参数) 同锐捷
查看邻居 display ospf peer display ospf peer show ip ospf neighbor show ip ospf neighbor
删除进程 undo ospf 1 undo ospf 1 no router ospf 1 no router ospf 1

关键差异解读

  • 进程进入命令:华为/H3C 是 ospf 1,锐捷/思科是 router ospf 1——表面分水岭。
  • area 位置:华为/H3C 先 area 0 进子视图再 network;锐捷/思科在 network 后直接带 area 0。这是批量从华为迁到思科最容易被坑的地方。
  • 反掩码(wildcard)四家都一样network 命令用的是反掩码,不是子网掩码。/240.0.0.255/300.0.0.3。写错直接宣告失败。
  • router-id 必须全网唯一,建议显式配置,别依赖设备自动选举。

五、场景一:单区域起步(先让 OSPF 跑起来)

最简模型:全网都在 Area 0,三台设备互连。每台把直连网段宣告进 area 0 即可。

华为/H3C:

[HUAWEI] ospf 1 router-id 1.1.1.1
[HUAWEI-ospf-1] area 0
[HUAWEI-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

锐捷/思科:

Ruijie(config)# router ospf 1
Ruijie(config-router)# router-id 1.1.1.1
Ruijie(config-router)# network 192.168.1.0 0.0.0.255 area 0

单区域能跑,但请记住:只要设备多了,迟早要切多区域。别等到 LSDB 爆了才后悔。


六、场景二:多区域(ABR 连 Area 0 + Area 1)

经典拓扑:R1 是 ABR,左边连 Area 0(骨干 10.0.0.0/30),右边连 Area 1(用户网 192.168.1.0/24)。

R1(ABR)· 华为/H3C:

[HUAWEI] ospf 1 router-id 1.1.1.1
[HUAWEI-ospf-1] area 0
[HUAWEI-ospf-1-area-0.0.0.0] network 10.0.0.0 0.0.0.3
[HUAWEI-ospf-1] area 1
[HUAWEI-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255

R1(ABR)· 锐捷/思科:

Ruijie(config)# router ospf 1
Ruijie(config-router)# router-id 1.1.1.1
Ruijie(config-router)# network 10.0.0.0 0.0.0.3 area 0
Ruijie(config-router)# network 192.168.1.0 0.0.0.255 area 1

区域内部设备(只在 Area 1)· 华为/H3C:

[HUAWEI] ospf 1 router-id 2.2.2.2
[HUAWEI-ospf-1] area 1
[HUAWEI-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255

⚠️ 多区域铁律:非骨干区域(Area 1/2/…)必须和 Area 0 直接相连。如果 Area 1 和 Area 0 之间隔了别的区域,普通 OSPF 学不到路由,必须靠虚链路(virtual-link) 补救——但虚链路是"补丁"不是"设计",新网规划时务必让每个非骨干区直连骨干。


七、场景三:特殊区域(Stub / Totally Stub / NSSA)

末梢分支只想"安静地拿到路由",不需要知道全网细节 → 用 Stub 把外部路由挡在外面,自动补一条默认路由。

配置 Stub · 华为/H3C(区域内所有路由器都要配):

[HUAWEI-ospf-1] area 1
[HUAWEI-ospf-1-area-0.0.0.1] stub

完全末节(连区域间路由也压成默认):

[HUAWEI-ospf-1-area-0.0.0.1] stub no-summary

配置 Stub · 锐捷/思科:

Ruijie(config-router)# area 1 stub
Ruijie(config-router)# area 1 stub no-summary   ← 完全末节

NSSA(边缘要引入外部路由又想隔离别人外部路由):

  • 华为/H3C:area 1nssa
  • 锐捷/思科:area 1 nssa

⚠️ Stub 区域三连坑:① 区域内每台路由器都要配 stub,只要一台没配,邻居直接起不来(Hello 里 E 位不一致);② Stub 区域不能放 ASBR(不能引入外部路由),要引入就用 NSSA;③ Totally Stub 只在 ABR 上配 no-summary,内部设备只配 stub


八、验证命令对比

配置完不验证等于没配。

操作 华为 H3C 锐捷 思科
看邻居状态(Full?) display ospf peer / display ospf peer brief 同华为 show ip ospf neighbor show ip ospf neighbor
看 OSPF 路由 display ospf routing 同华为 show ip route ospf show ip route ospf
看链路状态库 display ospf lsdb 同华为 show ip ospf database show ip ospf database
看接口是否宣告 display ospf interface 同华为 show ip ospf interface show ip ospf interface

邻居状态必须到 Full:卡在 2-Way/ExStart/Exchange 都是异常。华为/H3C 看 display ospf peer 的 State 列;锐捷/思科看 show ip ospf neighbor 的 State 列。


九、排坑清单:5 个常见翻车场景

坑1:忘了建 Area 0(骨干区域)

  • OSPF 强制要求存在 Area 0,且非骨干区必须和它相连。
  • 把网段全宣告进 Area 1、没配 Area 0 → 路由学不全,跨区不通。
  • 解决:先 area 0 把骨干连起来,再挂非骨干区。

坑2:router-id 冲突或没配

  • router-id 全网必须唯一。冲突会导致邻居反复震荡、路由时有时无。
  • 华为/H3C 不配会自动选 Loopback 最大 IP(没有就选接口最大 IP);锐捷/思科同理。
  • 解决:显式 router-id,别赌自动选举。

坑3:反掩码写错(最高频)

  • network 用的是反掩码,不是子网掩码。把 255.255.255.0 当反掩码写进去 → 匹配不到任何接口,网段根本没宣告进 OSPF。
  • 对照:/240.0.0.255/300.0.0.3/160.0.255.255

坑4:ABR 没正确连接 Area 0

  • 非骨干区必须和 Area 0 直连。中间隔了别的区域 → 学不到骨干路由,只能上虚链路补。
  • 规划阶段就避免,让每个非骨干区物理/逻辑直连骨干。

坑5:Stub 区域配置不一致

  • 区域内只要有一台没配 stub,邻居起不来(E 位不一致)。
  • Stub 区不能放 ASBR;要引入外部路由请改 NSSA。

更多企业 IT 实战经验,请浏览本站技术博客,或联系我们获取方案支持。