logo.png/

Datapass

数通
当前位置:首页 > 誉天学堂 > 数通 > OSPF特殊区域选错,全网路由震荡?一文讲透Stub、NSSA的选路陷阱

OSPF特殊区域选错,全网路由震荡?一文讲透Stub、NSSA的选路陷阱

  • 2026/03/31

上期我们详细讲解了OSPF的六种LSA类型,理解了每类LSA的作用和泛洪范围。但在实际网络部署中,随着网络规模的扩大,LSDB(链路状态数据库)会急剧膨胀,给设备带来沉重的计算和存储负担。

为了解决这一问题,OSPF引入了特殊区域(Special Area)的概念。特殊区域通过对LSA泛洪范围的限制,大幅减少区域内LSDB的大小,同时通过下发缺省路由来保证网络连通性,实现了性能与功能的平衡

01    区域概念回顾

在深入特殊区域之前,先快速回顾OSPF的区域划分:

✦ 骨干区域(Area 0):OSPF网络的中心,所有非骨干区域必须直接连接到骨干区域

✦ 非骨干区域(Area非0):连接在骨干区域上的普通区域

特殊区域正是由非骨干区域配置而成,骨干区域不能配置为特殊区域。

特殊区域的本质

特殊区域的本质就是拦截特定类型的LSA,并通过ABR(区域边界路由器下发缺省路由来替代被拦截的LSA,从而保证该区域内的路由器依然能够访问区域外的网络。

02    OSPF四大特殊区域详解

OSPF共支持四种特殊区域:Stub区域、Totally Stub区域、NSSA区域、Totally NSSA区域。

1.Stub区域(末梢区域)

定义与机制

✦ 允许泛洪:1类LSA、2类LSA、3类LSA

✦ 禁止泛洪:4类LSA、5类LSA

✦ ABR行为:自动下发缺省的3类LSA(指向ABR自身)

ASBR区域内不允许存在ASBR

典型问题:等价缺省路由导致的次优路径

image.png


Stub区域等价缺省路由导致次优路径


场景描述:如上图所示拓扑:

✦ Area 1配置为Stub区域

✦ AR2和AR3都是连接Area 0和Area 1的ABR

✦ AR1在Area 0中引入外部路由1.1.1.1/32

✦ 链路开销:AR1-AR2=100,AR1-AR3=10,AR2-AR4=1,AR3-AR4=1

问题分析:
由于Stub区域禁止4、5类LSA泛洪,AR4无法直接学习到外部路由1.1.1.1/32的明细信息。AR2和AR3作为ABR,都会向Area 1下发缺省的3类LSA(开销分别为100+1=101和10+1=11?实际上缺省路由的开销就是ABR自身计算的开销值)。

在默认情况下,AR4会学到两条等价的缺省路由(如果开销相同),或者虽然开销不同但选路后依然可能产生次优路径。当AR4访问1.1.1.1/32时,如果选择经过AR2的路径:

✦ AR4 → AR2 → AR1(实际开销:1 + 100 = 101)

✦ 而最优路径应为:AR4 → AR3 → AR1(实际开销:1 + 10 = 11)

解决方案:

image.png


最佳实践:在Stub区域规划时,建议只保留一个ABR或通过精心设计链路开销来避免等价缺省路由带来的次优路径问题。

2. Totally Stub区域(完全末梢区域)

定义与机制

✦ 允许泛洪:1类LSA、2类LSA、缺省3类LSA

✦ 禁止泛洪:3类LSA(普通区域间路由)、4类LSA、5类LSA

✦ ABR行为:下发缺省的3类LSA,用于访问所有区域外网络

✦ ASBR:区域内不允许存在ASBR

与Stub区域的对比

✦ Stub区域:允许3类LSA泛洪,可学习到其他区域的路由明细

✦ Totally Stub区域:禁止3类LSA泛洪,通过一条缺省路由访问所有其他区域

适用场景

✦ 网络规模大,希望最大化减少LSDB

✦ 区域内设备性能有限

✦ 区域内设备只需访问外部网络,不关心具体路由细节

3. NSSA区域(Not-So-Stubby Area,非纯末梢区域

定义与机制

✦ 允许泛洪:1类LSA、2类LSA、3类LSA、7类LSA

✦ 禁止泛洪:4类LSA、5类LSA

 ABR行为:自动下发缺省的7类LSA

✦ ASBR:区域内允许存在ASBR,外部路由以7类LSA形式引入

7转5机制

NSSA区域的核心机制是7类LSA与5类LSA的转换:

1.区域内:ASBR引入外部路由,以7类LSA形式在NSSA区域内泛洪

2.跨区域传递:ABR将7类LSA转换为5类LSA,泛洪到其他区域

3.多ABR场景:由Router ID最大的ABR执行7转5操作

4.ADV Router变化:转换后,5类LSA的Advertising Router改为执行转换的ABR的RID

典型问题一:多ABR场景下的次优路径

image.png


NSSA区域多ABR导致的次优路径


场景描述:如上图所示:

✦ Area 1配置为NSSA区域

✦ AR4作为ASBR,引入外部路由4.4.4.4/32

✦ AR2和AR3都是连接Area 0和Area 1的ABR

✦ AR3的Router ID大于AR2,负责执行7转5

问题分析:
由于AR3执行7转5,5类LSA的Advertising Router变为AR3的RID。当AR1访问4.4.4.4/32时:

✦ 根据5类LSA计算到ASBR(AR3)的路径

✦ 实际最优路径应为:AR1 → AR2 → AR4

✦ 但由于ASBR被“隐藏”为AR3,AR1可能选择:AR1 → AR3 → AR4(次优)

解决方案:转发地址(Forwarding Address)

7类LSA在产生时携带转发地址,7转5后转发地址继续保留。转发地址的取值规则(详见上期LSA文章):

✦ 正常情况:FA = ASBR到达外部路由的下一跳地址(当满足特定条件时)

✦ 转发地址的作用:其他区域路由器优先通过FA访问外部路由,绕过隐藏ASBR带来的次优路径

典型问题二:FA缺失导致的环路

image.png


7转5后FA缺失导致的环路


场景描述:如上图所示:

✦ AR1引入外部路由192.168.1.0/24

✦ AR3执行7转5时,通过命令清除了转发地址

✦ AR2在骨干区域学习到不携带FA的5类LSA,在NSSA区域学习到7类LSA

✦ AR2修改了到达AR1的开销(使AR2到AR1的路径更优)

问题分析:
当AR2需要访问192.168.1.0/24时:

1.AR2查询路由表,选择不携带FA的5类LSA(因为5类LSA优先级高于7类)

2.5类LSA指向ASBR(AR3),下一跳指向AR4

3.报文到达AR3后,AR3查询路由表,发现7类LSA指向ASBR(AR1),下一跳指向AR2

4.环路形成:AR2 → AR4 → AR3 → AR2

根本原因:7转5后FA缺失,导致不同区域的路由器对外部路由的下一跳认知不一致。image.png


7类LSA的FA规则(重要!)

image.png


关键原则:7转5后必须确保FA存在,否则可能引发路由环路!

4. Totally NSSA区域(完全非纯末梢区域)

定义与机制

✦ 允许泛洪:1类LSA、2类LSA、缺省3类LSA、7类LSA

✦ 禁止泛洪:3类LSA(普通区域间路由)、4类LSA、5类LSA

✦ ABR行为:同时下发缺省的3类LSA和缺省的7类LSA

✦ ASBR:区域内允许存在ASBR

缺省路由来源

Totally NSSA区域内的路由器会学到两种缺省路由:

1.缺省的3类LSA:用于访问其他区域的区域间路由

2.缺省的7类LSA:用于访问其他区域的外部路由

与其他区域的对比

image.png


03    特殊区域配置示例

Stub区域配置(华为设备)
image.png
Totally Stub区域配置
image.png

NSSA区域配置
NSSA区域配置
image.png


    Totally NSSA区域配置

    image.png

    04    特殊区域选择指南

    决策流程图

    是否需要区域内引入外部路由?

        ├─ 否 → 设备性能是否充足?

        │        ├─ 是 → 普通区域

        │        └─ 否 → 是否需要其他区域路由明细?

        │                 ├─ 是 → Stub区域

        │                 └─ 否 → Totally Stub区域

        └─ 是 → 是否需要其他区域路由明细?

                 ├─ 是 → NSSA区域

                 └─ 否 → Totally NSSA区域

    选择建议


    image.png


    0
    5
        最佳实践与避坑指南

    1. Stub/Totally Stub区域

    ✅ 推荐:只保留一个ABR,避免等价缺省路由

    ✅ 推荐:合理规划链路开销,确保缺省路由选路最优

    ⚠️ 注意:区域内不能配置ASBR,否则邻居无法建立

    2. NSSA/Totally NSSA区域

    ✅ 推荐:确保7转5后的5类LSA携带转发地址

    ✅ 推荐:多ABR场景下,关注Router ID大小对7转5的影响

    ⚠️ 注意:ABR上引入外部路由不会产生FA,需特别关注

    ⚠️ 注意:缺省的7类LSA不携带FA,需评估影响

    3. 通用原则

    ✦ 骨干区域不能配置为特殊区域

    ✦ 虚链路不能穿越特殊区域

    ✦ 特殊区域内的所有路由器必须统一配置(否则邻居无法建立)

    06    排错命令速查

    image.png


    07    总结

    特殊区域是OSPF协议在大规模网络部署中的重要优化手段:

    1.Stub区域:拦截外部路由,通过缺省3类LSA访问外部网络

    2.Totally Stub区域:进一步拦截区域间路由,最大化减少LSDB

    3.NSSA区域:在Stub基础上支持ASBR,通过7类LSA引入外部路由

    4.Totally NSSA区域:在NSSA基础上拦截区域间路由,进一步优化

    核心要点:

    ✦ 特殊区域的本质是用缺省路由换取LSDB精简

    ✦ 转发地址(FA) 是多ABR场景下避免次优路径和环路的关键

    ✦ 7转5机制 是NSSA区域的核心,需确保FA正确携带


    下期预告:我们将深入探讨OSPF的高级特性,包括路由汇总、虚链路、以及各种认证方式的配置与应用。

    返回列表
    上一篇:
    下一篇:
    小白速藏丨网络工程师HCIA-Datacom阶段100个知识点
    免费试听
    姓名
    电话
    城市
    咨询课程