OSPF多区域四厂商对比实战
专题-网络配置 · 第07篇 日期:2026-08-10
全文
开篇:静态路由配完了,网络一变大就崩?
上周我们讲完静态路由(本系列前一篇)——小网、分支、末梢,几条命令写死,稳如老狗。
但现实是:企业网络会长大。分支从 3 个变 30 个,网点从 1 层变 3 层,链路今天通明天断。这时候还靠手填静态路由?光是"新增一个网段要改多少台设备"就够网工加班一个月。
这就需要动态路由登场。而企业网里最主流、最该先吃透的,就是 OSPF。
今天这篇,继续做网工圈最有价值的事:把华为、新华三 H3C、锐捷、思科四家的 OSPF 多区域命令放在一起逐条对比。重点不是"怎么配单区域",而是——网络一大,为什么必须划多区域、怎么划才不翻车。
一、为什么从"单区域"升级到"多区域"?
OSPF 默认所有设备塞进同一个 Area(区域)。网小没问题,网一大 three 个隐患直接爆:
- LSDB 暴涨:每台路由器都要存全网的链路状态数据库。设备一多,内存吃不消。
- SPF 计算风暴:任意一条链路抖一下,全网重算最短路径,CPU 直接打满。
- 故障域太大:一个角落的链路翻动,牵动整个 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 0 或 area 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命令用的是反掩码,不是子网掩码。/24→0.0.0.255,/30→0.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 1下nssa - 锐捷/思科:
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。- 对照:
/24→0.0.0.255,/30→0.0.0.3,/16→0.0.255.255。
坑4:ABR 没正确连接 Area 0
- 非骨干区必须和 Area 0 直连。中间隔了别的区域 → 学不到骨干路由,只能上虚链路补。
- 规划阶段就避免,让每个非骨干区物理/逻辑直连骨干。
坑5:Stub 区域配置不一致
- 区域内只要有一台没配
stub,邻居起不来(E 位不一致)。 - Stub 区不能放 ASBR;要引入外部路由请改 NSSA。