关于虚连接(Vlink)在穿越 NSSA 区域时的失效原理

从 RFC 2328 的设计哲学来看,这并非随意的限制,而是源于 LSA 泛洪机制区域定义的本质冲突。

  • LSA 泛洪冲突: Vlink 的建立依赖于 单播 Hello 报文 ,但其维护逻辑链路的状态需要交换 Type-4 LSA (ASBR Summary LSA)。
    • 在 Stub 或 NSSA 区域中,协议明确规定 禁止泛洪 Type-4 和 Type-5 LSA
    • 如果允许 Vlink 穿越 NSSA,当 Vlink 一端的路由器重发布外部路由时,产生的 Type-4 LSA 无法在 Transit Area(即该 NSSA)内传输,导致 Vlink 对端的路由器无法获知 ASBR 的位置,打破了 OSPF 数据库的一致性。
  • 路由汇总的逻辑矛盾: Stub/NSSA 区域通常依赖 ABR 下发的缺省路由(Type-3 0.0.0.0)来寻址。而 Vlink 要求 Transit Area 必须拥有去往 Vlink 对端(ABR)的明细路由。如果区域属性强制过滤了这些信息,Vlink 将无法计算出物理下一跳。

2. 避坑指南:GRE 隧道引发的“路由递归”

使用 GRE 隧道连接不连续区域时,最经典的故障就是 隧道接口状态反复震荡(Up/Down flap)

产生原理:

  1. 隧道建立: 路由器 A 和 B 通过物理路径学习到对方的公网地址(Tunnel Source/Destination),建立 GRE 隧道。
  2. OSPF 邻居: 在 GRE 隧道接口上使能 OSPF,并将其划入 Area 0。
  3. 递归产生: A 通过隧道从 B 学习到 B 的物理接口地址路由(或者更优的明细路由)。此时,根据路由优先级,A 认为去往 B 的最优路径竟然是 指向 Tunnel 接口
  4. 隧道崩溃: 为了维持 Tunnel,必须先到达 Destination 地址;但 Destination 地址现在的下一跳是 Tunnel 自己。

    逻辑闭环: $Tunnel \rightarrow Destination \rightarrow Tunnel$

  5. 链路震荡: 隧道因为找不到有效的物理路径而 Down 掉,OSPF 随之断开。OSPF 断开后,原本通过隧道学习的路由消失,物理路径路由重新浮现,隧道再次 Up。如此往复。

解决方案:

  • 精确宣告: 严禁将 Tunnel 的源/目的物理地址所在的网段宣告进通过该 Tunnel 建立邻居的 OSPF 进程。
  • 策略路由/静默接口: 确保底层物理可达性路由通过不同的协议或进程传递,实现底层(Underlay)与业务层(Overlay)的彻底分离。

3. HCIE 考点延展:虚连接的特殊性

在 VRP 系统中,Vlink 还有两个值得注意的技术细节:

  • 无生存时间限制: Vlink 上传递的 LSA,其 LS Age 字段在传输时会增加一个特殊的偏移量,且通常会被设置为 DoNotAge (DNA),以减少跨区域的维护开销。
  • 接口开销: Vlink 的 Cost 值等于它在 Transit Area 内穿越的所有物理链路的 Cost 之和。

进阶思考

在当前的 SD-WAN 或大二层网络设计中,我们已经很少使用 Vlink。你是否想了解在 EVPN 或 VXLAN 架构下,如何利用 BGP EVPN 来规避这些复杂的 OSPF 区域连接限制?