1. 从一次路由表膨胀说起:特殊区域到底在解决什么问题
先讲一个我实际遇到的组网场景。前几年给一家连锁零售企业做核心网络改造,总部在A市,下辖二十多个门店,每个门店一台路由器,通过运营商专线和总部核心交换机互联。刚开始业务规模小,OSPF单区域跑得很欢快,所有门店设备都在Area 0里,问题也不明显。后来门店越开越多,总部的核心设备上还接入了ERP、CRM、银联、监控平台等一大堆外部网络的静态路由,这些路由通过路由重发布全部引入到了OSPF。结果门店那些低配路由器开始频繁告警,CPU长时间跑满,OSPF邻居一天能抖好几次,门店结账POS机动不动就断网。
打开设备一看,问题非常清楚:门店路由器内存不到256MB,但OSPF的LSDB里存了整整两百多条Type 5外部LSA和几十条Type 3区域间LSA。每次外部链路变化,所有路由器都要重新泛洪、重新跑SPF算法,低配设备根本扛不住。
这就是OSPF特殊区域存在的根本意义——不是所有路由器都需要知道全网的每一条外部路由。门店接入路由器只需要知道"怎么到达总部、怎么到达其他门店",至于总部连了哪些银联专线、哪些监控平台,对它们来说毫无意义。特殊区域就是把这些"没有意义的路由信息"在区域边界上裁掉,让内部路由器维护最小的LSDB,跑最轻的SPF。
这个优化逻辑放在考试里属于OSPF基础,但放在真实项目里就是能不能保住网络稳定的关键。HCIP-Datacom-Core Technology的OSPF部分对特殊区域的考法非常细,不像HCIA那样只问你stub区域能不能配ASBR,而是会给出具体组网拓扑,让你判断该用哪种特殊区域、外部路由会以什么LSA类型出现在哪台设备上、默认路由该如何通告。接下来我把这四种特殊区域挨个拆开讲。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 四种特殊区域的原理拆解与适用取舍
2.1 Stub区域:把外部路由挡在门外
Stub这个词的直译是"残桩、短截线",在OSPF里形容"末梢"再形象不过。一个区域如果只作为网络的末端存在,区域内的路由器不需要了解OSPF自治系统外部的路由信息,那这个区域就可以配置为Stub区域。
Stub区域的规则有四条,每条都值得展开说:
第一,Stub区域不允许Type 4和Type 5 LSA进入。Type 5是外部路由的载体,Type 4是ASBR的定位信息,两者都是给"外部路由"服务的。把这两个类型的LSA挡在区域外,区域内的LSDB里就只剩Router LSA、Network LSA和Type 3的Summary LSA,SPF的计算范围大幅缩减。
第二,Stub区域内的路由器不能存在ASBR。这个很好理解,ASBR是外部路由的引入者,一定会产生Type 5 LSA,这和第一条矛盾。所以考试经常在这里设坑:如果一个Area 1里有路由重发布配置,那Area 1就不可能配成Stub。
第三,Stub区域不能是骨干区域Area 0。骨干区域是OSPF的枢纽,所有非骨干区域的流量都要经过Area 0转发,如果Area 0变成了Stub,外部路由怎么传?所以这条是硬约束。
第四,虚连接不能穿越Stub区域。虚连接的本质是让非骨干区域和骨干区域之间有逻辑通路,需要通过普通区域的LSA传递信息,Stub区域把外部LSA都挡了,虚连接自然无法建立。
Stub区域的ABR会自动向区域内下发一条Type 3的默认路由(0.0.0.0/0),这样区域内的路由器即使没有外部路由明细,也能通过默认路由把流量送出去。
2.2 Totally Stub区域:连区域间路由都省了
Totally Stub是在Stub基础上进一步裁剪——不只是Type 4和Type 5,连Type 3的区域间LSA也一并挡在外面,只保留ABR下发的那条默认路由。区域内路由器维护的LSDB只剩本区域内部的Router LSA和Network LSA,SPF计算范围被压缩到极致。
配置上有一个特别容易误解的地方:Totally Stub是在ABR上使用stub no-summary命令实现的,而区域内的其他路由器只需要配置stub即可。
no-summary的含义是"ABR不再向该区域通告Type 3的Summary LSA",这个参数只在ABR上生效。如果你在区域内的普通路由器上配了stub no-summary,设备会直接报错或者不生效,因为非ABR路由器根本没有生成Summary LSA的职责。
Totally Stub适合那种"纯末端"场景:区域里只有用户终端接入,没有任何跨区域的业务访问需求,去往外部的流量全部走默认路由。零售门店、小型分支办公室就属于典型场景。
2.3 NSSA区域:网开一面,让外部路由以Type 7身份进入
Stub区域的最大限制是区域内不能有ASBR,但现实场景里经常遇到"这个区域虽然是末梢,但它自己需要引入外部路由"的情况。比如一个分公司区域,有自己的服务器网段,有一段静态路由指向第三方专线。这个区域既不想接收全公司的外部路由明细,又需要把自己本地的外部路由发布出去。
NSSA(Not-So-Stubby Area,非完全末梢区域)就是为这种场景设计的。NSSA区域仍然拒绝普通的Type 5 LSA进入,但允许区域内的ASBR产生一种新的LSA类型——Type 7 LSA(NSSA External LSA)。Type 7 LSA在NSSA区域内传播,到了NSSA的ABR上会被转换成Type 5 LSA,再向其他区域通告。
这里有一个考试高频细节:Type 7转Type 5时,转换后的Type 5 LSA的AdvRouter(通告路由器)是谁?答案是执行转换动作的ABR,而不是原来的ASBR。也就是说,外部所有区域看到的这条外部路由,通告者变成了ABR,外部路由器不关心真正的ASBR是谁。
NSSA还有一个很容易踩的坑:ABR不会自动向NSSA区域内下发默认路由。在Stub区域中,ABR自动下发默认路由;但在NSSA中,这条默认路由需要手动配置nssa default-route-advertise才会产生。
原因在于NSSA区域允许Type 7 LSA,如果ABR自动下发默认路由,会和外部的Type 7路由在语义上产生混乱,所以设计上让管理员显式控制。
2.4 Totally NSSA区域:Type 3也别进来
Totally NSSA是Stub禁用Type 3和NSSA允许Type 7的合体——ABR上配置nssa no-summary之后,区域间路由Type 3 LSA同样被挡在外面,ABR会自动下发一条Type 3默认路由,同时区域内的ASBR仍然可以通过Type 7 LSA发布外部路由。
这种区域适合"分公司既需要本地注入外部路由,又不希望被全公司的区域间路由明细塞满"的场景。LSDB里保留的LSA类型极少,但该有的出口能力都在。
为了帮助记忆,我整理了一个对照表,也是HCIP考试里非常喜欢考的一类题:
| 区域类型 | Type 1/2 | Type 3 | Type 4 | Type 5 | Type 7 | 默认路由下发方式 |
|---|---|---|---|---|---|---|
| 普通区域 | 允许 | 允许 | 允许 | 允许 | 不允许 | 不自动下发 |
| Stub区域 | 允许 | 允许 | 不允许 | 不允许 | 不允许 | ABR自动下发Type 3默认路由 |
| Totally Stub | 允许 | 不允许 | 不允许 | 不允许 | 不允许 | ABR自动下发Type 3默认路由 |
| NSSA区域 | 允许 | 允许 | 不允许 | 不允许 | 允许 | 需手动配置default-route-advertise |
| Totally NSSA | 允许 | 不允许 | 不允许 | 不允许 | 允许 | ABR自动下发Type 3默认路由(配no-summary后) |
这张表如果你能默写出来,OSPF特殊区域的原理题基本不会丢分。
3. 华为设备上的特殊区域配置与验证:以连锁门店组网为例
3.1 Stub区域完整配置过程
回到文章开头那个连锁零售的案例。改造方案是:总部核心路由器保留在Area 0,每个门店划分为一个独立的Area,区域类型选Totally Stub。这样每个门店路由器只需要维护本区域内部的路由和一条默认路由,LSDB从两百多条缩到几条。
先看拓扑简化描述:
code复制总部核心(AR1, Router-ID 1.1.1.1)——Area 0
|
| 专线
|
门店出口路由器(AR2, Router-ID 2.2.2.2)——Area 1(Totally Stub)
|
|
门店接入交换机(AR3/AR4, Router-ID 3.3.3.3)
AR1作为总部核心,同时也是连接门店区域的ABR。配置如下:
code复制# AR1配置:创建Area 1,配置为Totally Stub
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 10.0.0.0 0.0.0.255
area 0.0.0.1
stub no-summary
network 192.168.1.0 0.0.0.255
AR2是门店出口路由器,连接总部和门店内部,它也是Area 1的ABR,同样需要配置:
code复制# AR2配置:连接总部的接口属于Area 0,连接门店的接口属于Area 1
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 192.168.1.0 0.0.0.255
area 0.0.0.1
stub
network 172.16.0.0 0.0.0.255
AR3、AR4是门店内部路由器,配置和AR2的Area 1部分一致:
code复制ospf 1 router-id 3.3.3.3
area 0.0.0.1
stub
network 172.16.1.0 0.0.0.255
network 172.16.2.0 0.0.0.255
配置中有两个关键点必须注意:
第一,区域内所有路由器都要配置stub。只要有一台路由器没配,两台设备之间的OSPF邻居状态就会卡在ExStart阶段,DBD报文协商就一直不成功。这是OSPF特殊区域配置后最常见的故障,没有之一。
第二,no-summary只在ABR上配置。AR1和AR2作为连接多个区域的路由器需要配,AR3、AR4是纯区域内路由器,只需要stub。
配置完验证。在AR3上执行display ospf lsdb:
code复制 OSPF Process 1 with Router ID 3.3.3.3
Area 0.0.0.1
Link State Database
Type Router Links Adv Router Age Seq#
Router 3.3.3.3 2 3.3.3.3 189 0x80000004
Router 4.4.4.4 2 4.4.4.4 175 0x80000003
Router 2.2.2.2 3 2.2.2.2 162 0x80000005
Network 172.16.2.2 2 2.2.2.2 158 0x80000002
Summary 0.0.0.0 1 1.1.1.1 120 0x80000002
LSDB里只有Router、Network和一条Summary默认路由,外部路由的Type 5 LSA一条都没有。再看OSPF路由表:
code复制display ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter
172.16.0.0/24 1 Stub 172.16.1.1 2.2.2.2
172.16.1.0/24 1 Stub 172.16.1.1 3.3.3.3
172.16.2.0/24 1 Stub 172.16.2.2 3.3.3.3
0.0.0.0/0 10 Stub 192.168.1.2 1.1.1.1
门店设备只有本区域路由加一条默认路由,SPF计算量降到了原来的几十分之一。改造上线后,门店路由器CPU占用率从接近100%降到了10%以内,一整天观察下来再也没有OSPF邻居抖动。
3.2 NSSA场景配置:分公司需要引导外部专线路由
再升级一下场景。假设某分公司内部有两条专线分别连到银行和税务系统,这两条都是静态路由,需要重发布进OSPF。分公司区域划分在Area 2,这时就不能配Stub了,因为Stub不允许ASBR存在,而重发布静态路由的路由器会成为ASBR。
正确选择是NSSA区域。配置如下:
分公司出口路由器(ASBR+ABR双重身份):
code复制# 配置静态路由并引入OSPF
ip route-static 10.200.0.0 255.255.255.0 100.64.0.2
ospf 1 router-id 5.5.5.5
area 0.0.0.2
nssa
network 172.20.0.0 0.0.0.255
import-route static
# 如果希望NSSA区域内的路由器也可以访问外部,还需要下发默认路由
area 0.0.0.2
nssa default-route-advertise
总部侧连接Area 2的ABR上配:
code复制ospf 1 router-id 1.1.1.1
area 0.0.0.2
nssa
如果在ABR上配nssa no-summary,就变成了Totally NSSA,区域间的Type 3明细也不会进来,只保留ABR下发的默认路由和NSSA区域自己产生的Type 7路由。
验证时重点看LSA的转换过程。在总部Area 0的路由器上执行display ospf lsdb,能看到分公司那条外部路由以Type 5 LSA存在,AdvRouter是执行转换的ABR,而这个ABR可能是总部设备自身,也可能是另一个ABR。如果分公司的出口路由器同时接到两个ABR,那么谁来做Type 7到Type 5的转换,是通过选举机制决定的——Router ID大的ABR胜出。这个细节在HCIP考试的大题里经常以"请判断转换者是谁"的形式出现。
4. HCIP-Datacom考试的高频考点与易错陷阱
特殊区域在HCIP-Datacom-Core Technology考试里的出题密度相当高,而且特别喜欢出"判断正误"和"场景选型"两类题型。我把复习过程中踩过的坑和课上总结的考点按优先级列一下。
4.1 高频考点清单
考点一:特殊区域对LSA类型的阻挡关系。 这是最基础的考法,但不直接问你"Stub能挡住哪些LSA",而是反过来给一台LSDB里只有Type 1/2/3的路由器截图,问你它位于什么区域。或者给你一个只有Type 1/2/3和Type 7的LSDB,问你这是什么区域(Totally NSSA)。把那张对照表记熟,这类题就是送分题。
考点二:默认路由的通告行为。 Stub和Totally Stub是ABR自动下发默认路由;NSSA默认不下发,必须手动配置default-route-advertise;Totally NSSA在配置no-summary后自动下发Type 3默认路由。考试会考"NSSA区域中ABR是否会向区域内下放Type 3默认路由"这种判断,默认答案是不下放,除非管理员显式配置。
考点三:特殊区域的硬性约束。 骨干区域不能配置特殊区域,虚连接不能穿越特殊区域,Stub区域不能存在ASBR。这三个约束几乎每年必考,基本都是以"以下哪些说法正确"的多选题出现,选项会把这三条和一条正确选项混在一起。
考点四:Type 7转Type 5的机制。 包括转换者选举规则(Router ID大的ABR负责转换)、转换后AdvRouter的变化、以及"只有区域边界路由器才能执行转换"这个前提。同时还要知道,Type 5转换成Type 7不会发生——外部路由不能反向进入NSSA区域。
考点五:区域间路由汇总和外部路由汇总。 汇总命令的位置有严格区分:abr-summary在ABR上做区域间汇总,asbr-summary在ASBR上做外部路由汇总。如果配反了,命令直接不生效,而且汇总后的路由通告范围完全不同。
4.2 易错点排查链路
考试还有一个常见考法,是给你一段故障描述让你定位问题。比如:
"区域1配置为Stub后,区域内一台路由器与ABR邻居状态停在ExStart,无法建立Full关系,为什么?"
排查链路是这样的:
第一步,检查区域内所有路由器的OSPF Area属性是否一致。Stub区域的所有路由器必须都配stub,只要有一台没配,双方在DBD协商阶段发现Option字段不匹配,邻居关系就卡在ExStart。
第二步,检查有没有设备在Stub区域里做了路由重发布。如果区域里有一台路由器配置了import-route,它就会以ASBR身份产生Type 5 LSA,在Stub区域中这是不允许的,邻居协商同样会失败。
第三步,检查虚连接是否穿越了这个区域。如果区域内的某台设备配置了虚连接,那么它必须参与骨干链路的信息传递,Stub不允许,也会导致邻居状态异常。
这套排查思路在考试里比单独记结论更容易拿分,因为题干通常不会直接告诉你"区域内配置不一致",而是用一句故障描述引导你定位。
4.3 和其他OSPF特性的组合考法
考试中还会把特殊区域和过滤、认证、汇总组合起来考,增加复杂度。常见组合:
- 在启用特殊区域的ABR上同时做
filter-policy路由过滤,问区域内LSDB和路由表的变化差异。注意:filter-policy import只影响本设备的路由表,不影响LSDB;而ABR上过滤Type 3 LSA,才会让区域内路由器的LSDB缺失对应路由。 - 在特殊区域上叠加认证,问认证配置的作用范围。OSPF认证分为区域认证和接口认证,区域认证配置在Area视图下,区域内所有接口统一生效;接口认证配置在接口视图下,仅对该接口生效。两者同时配置时,接口认证优先级更高。
5. 常被忽略的"其他特性":虚连接、路由汇总、过滤与认证
标题里"及其他特性"几个字经常被备考的人一笔带过,但实际考试和现网排查里,这些特性组合起来能玩的坑比特殊区域本身还多。逐个梳理。
5.1 虚连接:应急方案,不是常规设计
虚连接用于解决"非骨干区域无法直接和Area 0相连"的问题。最典型场景是把两个Area 0隔开的情况——比如公司合并,两个原有OSPF网络的骨干区域无法直接物理连通,必须经过一个中间的普通区域,这时在中间区域的两台ABR之间创建虚连接,使两个Area 0在逻辑上连通。
配置命令:
code复制# 在两台ABR上分别配置
ospf 1 router-id 1.1.1.1
area 0.0.0.1
vlink-peer 2.2.2.2 # 对端ABR的Router-ID
虚连接有几条和特殊区域相关的硬性规则:
- 虚连接只能穿越普通区域,不能穿越Stub、Totally Stub、NSSA、Totally NSSA任何一类特殊区域。
- 虚连接两端的设备必须是ABR,且必须有接口连接到同一个普通区域。
- 虚连接上不能感知认证的默认设置,区域认证如果是明文,虚连接需要单独配置认证方式,否则邻居起不来。
我在实际运维中用过一次虚连接,是老厂区网络改造时新老核心设备之间的过渡方案。整体感受是:能解决紧急问题,但不要让虚连接成为长期方案,它毕竟是在普通链路上虚拟出骨干关系,排查路径时会多一层逻辑跳跃,比天然骨干链路难维护得多。
5.2 路由汇总的两类位置
OSPF路由汇总分两类,位置完全不同,效果也完全不同。
第一类,区域间路由汇总,在ABR上配置。Area 1里有172.16.0.0/24、172.16.1.0/24、172.16.2.0/24三个网段,ABR向Area 0通告时,可以只通告一条172.16.0.0/22:
code复制ospf 1 router-id 1.1.1.1
area 0.0.0.0
abr-summary 172.16.0.0 255.255.252.0
注意这个命令是在Area 0视图下配置的,效果是"向Area 0通告路由时进行汇总"。如果ABR同时连接Area 2,想让Area 2也收到汇总路由,那么Area 2下也要执行这条命令。
第二类,外部路由汇总,在ASBR上配置。ASBR引入了多条外部路由,向OSPF域内通告时只通告一个汇总网段:
code复制ospf 1 router-id 5.5.5.5
asbr-summary 10.200.0.0 255.255.252.0
考试里常考区分:abr-summary影响Type 3 LSA,asbr-summary影响Type 5 LSA。汇总后如果存在黑洞路由风险,还需要结合null 0路由配合使用,这是项目里比较讲究的做法。
5.3 LSA过滤的两种维度
OSPF的过滤可以从"路由表维度"和"LSDB维度"两个层面做,考试最爱考二者的区别。
路由表维度使用filter-policy import,只影响本设备的OSPF路由表,不影响LSDB。也就是说,你过滤掉某条路由后,你的LSDB里仍然有这个信息,SPF仍然会计算它,只是不放进路由表。这种过滤适合在一台设备上做局部策略控制,不会影响其他设备。
LSDB维度则需要在ABR上过滤Type 3 LSA。华为设备上,ABR可以通过filter-policy export结合ACL实现:
code复制acl number 2000
rule 5 permit source 172.16.0.0 0.0.3.255
ospf 1 router-id 1.1.1.1
area 0.0.0.1
filter-policy 2000 export
这样配置后,匹配ACL的Type 3 LSA不会从Area 1中通告出去,其他区域的路由器在LSDB层面就完全看不到相关路由,比路由表过滤更彻底。
还有一个容易被忽略的工具是silent-interface,接口配置为静默后,OSPF不会在该接口上发送Hello报文,也不会接收和转发OSPF报文,但该接口所在网段仍会作为直连路由被通告进OSPF。这个特性在保护核心设备CPU资源时非常有用——比如核心交换机和终端之间不需要建立OSPF邻居,把终端侧接口设为silent-interface即可。
5.4 OSPF认证:从明文到HMAC-SHA256
OSPF认证的作用是防止非法设备接入OSPF域内,篡改路由信息。现在现网里基本不用明文认证了,HMAC-SHA256是主流。
接口认证配置:
code复制interface GigabitEthernet 0/0/1
ospf authentication-mode hmac-sha256 key-id 1 plain Huawei@123
区域认证配置:
code复制ospf 1 router-id 1.1.1.1
area 0.0.0.0
authentication-mode hmac-sha256 key-id 1 plain Huawei@123
区域认证比接口认证好在配置量小,Area内所有接口统一生效。但有一个坑:如果区域内某台设备的某个接口单独配置了不同的认证模式,该接口的邻居会起不来,因为对端收到的认证字段不匹配,报文被直接丢弃。排错时优先检查两端认证是否完全一致,包括key-id和密钥,否则会出现OSPF邻居一直停留在Down或者反复Init的情况。
6. 我在现网部署中的几条经验与收尾建议
文章最后说几句实在的,算不上什么系统的总结,就是几个踩坑之后沉淀下来的习惯动作。如果你正在备考HCIP-Datacom或者准备动手规划一个多区域OSPF网络,这几条应该能帮你少折腾几个晚上。
第一,配置任何特殊区域之前,先在纸上把区域内路由器清单列出来,逐一标注"是否配置了ASBR功能""是否承载虚连接""是否直接连接外部网络"。只要有一项命中,这个区域就不能是Stub类型,老老实实选NSSA或者Totally NSSA。这样做的价值在于,OSPF邻居协商失败的时候,你不会对着配置发呆,而是心里清楚到底是区域属性不匹配还是ASBR冲突。
第二,所有特殊区域相关的命令变更,尽量在变更窗口内一次性完成,不要今天加一台明天的。因为区域内只要有一台设备的区域类型和其他设备不一致,整段区域的OSPF邻居都会中断,影响面是整个区域的业务。我见过一个运维同事在生产网络上给一台新设备配了普通区域,试图接入一个Totally Stub区域,结果那条链路上的业务中断了两个小时。设备型号不同没有关系,但OSPF的Option字段对区域类型的匹配是硬性的。
第三,验证特殊区域配置是否成功,不要只看OSPF邻居状态是不是Full。Full只能说明设备间能交互路由信息,不能说明区域内LSDB是否真的符合预期。应该用display ospf lsdb查看区域内出现的LSA类型,再配合display ospf routing确认默认路由是否按预期下发,两道命令看完才算数。特别是NSSA场景,Type 7 LSA的条目在LSDB里长什么样、在哪个ABR转成了Type 5,都得看到实物才有把握。
我在备考HCIP-Datacom-Core Technology时,OSPF特殊区域这部分前后看了三遍才把原理和命令完全对上号,原因就在于一开始只记结论,不深究"为什么这个区域不允许出现这种LSA"。等到在真实项目里手把手配置并排障一次之后,这些知识点才算真正长在了身上。所以我的建议一直是:考试刷题是手段,把它放到一个真实网络拓扑里跑一遍,配置、验证、破坏、再排障,走完这一整圈你才算真的学会OSPF特殊区域。
