Skip to main content

3. OSPF段路由MPLS数据平面YANG模块 (OSPF Segment Routing over MPLS YANG Module)

本节介绍用于MPLS数据平面上OSPF段路由扩展的完整YANG模块。

模块结构 (Module Structure)

ietf-ospf-sr-mpls YANG模块扩展了OSPF基础YANG模型 [RFC9129],并与段路由基础模块 [RFC9020] 集成。它支持OSPFv2 [RFC8665] 和 OSPFv3 [RFC8666]。

模块头部 (Module Header)

module ietf-ospf-sr-mpls {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-sr-mpls";
prefix ospf-sr-mpls;

import ietf-routing {
prefix rt;
reference
"RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)";
}

import ietf-segment-routing-mpls {
prefix sr-mpls;
reference
"RFC 9020: YANG Data Model for Segment Routing";
}

import ietf-ospf {
prefix ospf;
reference
"RFC 9129: YANG Data Model for the OSPF Protocol";
}

organization
"IETF LSR - Link State Routing Working Group";

contact
"WG Web: `https://datatracker.ietf.org/wg/lsr/`
WG List: <mailto:[email protected]>

Editor: Yingzhen Qu
<mailto:[email protected]>
Editor: Acee Lindem
<mailto:[email protected]>
Editor: Jeffrey Zhang
<mailto:[email protected]>
Editor: Ing-Wher Chen
<mailto:[email protected]>";

description
"此YANG模块定义了用于MPLS数据平面上OSPF段路由(SR)扩展的
配置和运行状态。

此YANG模块符合RFC 8342中描述的网络管理数据存储架构(NMDA)。

版权所有 (c) 2025 IETF Trust及代码作者。保留所有权利。

允许以源代码和二进制形式进行再分发和使用,无论是否修改,
前提是遵守IETF Trust关于IETF文档的法律规定中规定的修订版BSD许可证
(https://trustee.ietf.org/license-info)。

此YANG模块版本是RFC 9903的一部分;
完整法律声明请参见RFC本身。";

revision 2025-12 {
description
"初始版本。";
reference
"RFC 9903: A YANG Data Model for OSPF Segment Routing
over the MPLS Data Plane";
}
}

关键数据节点 (Key Data Nodes)

段路由全局配置 (Segment Routing Global Configuration)

SRGB配置:

  • 路径 (Path): /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/segment-routing/srgb
  • 类型 (Type): 包含lower-bound和upper-bound叶节点的容器
  • 描述 (Description): 定义段路由全局块 (Segment Routing Global Block) 范围

SRLB配置:

  • 路径: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/segment-routing/srlb
  • 类型: 包含lower-bound和upper-bound叶节点的容器
  • 描述: 定义段路由本地块 (Segment Routing Local Block) 范围

MSD配置:

  • 路径: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/segment-routing/msd
  • 类型: uint8
  • 描述: 节点可以施加的最大SID深度 (Maximum SID Depth)

区域级配置 (Area-Level Configuration)

段路由启用:

  • 路径: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/areas/area/segment-routing/enabled
  • 类型: boolean
  • 默认值: false
  • 描述: 在区域内的所有接口上启用SR-MPLS

接口级配置 (Interface-Level Configuration)

邻接段标识符配置 (Adjacency-SID Configuration):

  • 路径: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/areas/area/interfaces/interface/segment-routing/adjacency-sid
  • 类型: 容器
  • 内容:
    • value: SID值或索引
    • neighbor: 邻居路由器ID (用于多路访问网络)
    • flags: 保护和值/索引标志

TI-LFA配置:

  • 路径: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/areas/area/interfaces/interface/fast-reroute/ti-lfa
  • 类型: 容器
  • 内容:
    • enable: 启用/禁用TI-LFA
    • node-protection: 启用节点保护

运行状态数据 (Operational State Data)

OSPFv2 LSA扩展

模块使用SR相关TLV扩展OSPFv2 LSA:

扩展前缀不透明LSA (Extended Prefix Opaque LSA):

  • 扩展前缀TLV
    • 前缀段标识符子TLV (Prefix-SID Sub-TLV)
      • 标志: NP标志, M标志, E标志, V标志, L标志
      • 算法
      • SID/索引/标签

扩展链路不透明LSA (Extended Link Opaque LSA):

  • 扩展链路TLV
    • 邻接段标识符子TLV (Adj-SID Sub-TLV)
      • 标志: B标志, V标志, L标志, G标志, P标志
      • 权重
      • SID/标签

路由器信息不透明LSA (Router Information Opaque LSA):

  • SR算法TLV
  • SID/标签范围TLV
  • SR本地块TLV
  • SRMS偏好TLV

OSPFv3 LSA扩展

模块使用SR相关TLV扩展OSPFv3 E-LSA:

E-路由器LSA (E-Router LSA):

  • SR算法TLV
  • SID/标签范围TLV
  • SR本地块TLV

E-区域内前缀LSA (E-Intra-Area-Prefix LSA):

  • 前缀段标识符子TLV (Prefix-SID Sub-TLV) (类似于OSPFv2)

E-链路LSA (E-Link LSA):

  • 邻接段标识符子TLV (Adj-SID Sub-TLV)
  • LAN邻接段标识符子TLV (LAN Adj-SID Sub-TLV)
    • 邻居路由器ID
    • 标志和SID/标签

核心术语 (Core Terminology)

Prefix-SID (前缀段标识符)

与IP前缀关联的段标识符。Prefix-SID在SR域内是全局唯一的,代表到达前缀的ECMP感知最短路径。

关键属性:

  • 全局范围 (Global Scope): 使用SRGB标签范围
  • 算法 (Algorithm): 与特定算法关联 (例如SPF)
  • 节点SID (Node-SID): 当前缀是路由器环回地址时

Adjacency-SID (邻接段标识符)

表示到相邻路由器的特定邻接的段标识符。

关键属性:

  • 本地范围 (Local Scope): 使用SRLB或动态标签范围
  • 严格转发 (Strict Forwarding): 流量专门通过该邻接转发
  • 保护 (Protection): 可由备份路径保护

LAN Adjacency-SID (LAN邻接段标识符)

在多路访问网络 (LAN) 上使用的特殊形式的Adjacency-SID,同时标识本地接口和邻居路由器。

SRGB (段路由全局块)

SR域内为全局段保留的标签范围。所有节点应具有一致的SRGB配置以确保SR正常运行。

SRLB (段路由本地块)

为本地段保留的标签范围。SRLB标签仅具有本地意义,不在域范围内传播。

MSD (最大SID深度)

节点可以在数据包上施加的最大SID数量。此值被广播以帮助路径计算引擎确定可行的SR路径。

使用示例 (Usage Example)

完整配置示例请参见 附录A

完整模块定义 (Complete Module Definition)

完整的YANG模块定义 (包括所有数据节点、扩展和通知) 请参考:


注意: 完整的YANG模块代码 (约600多行) 包括每个数据节点的详细描述、约束和参考。网络运营商应使用YANG验证工具确保配置符合模块的约束。

实现考虑 (Implementation Considerations)

OSPFv2与OSPFv3的差异

虽然两个协议支持相同的SR概念,但LSA编码不同:

  • OSPFv2: 使用不透明LSA (类型9/10/11)
  • OSPFv3: 使用带TLV编码的E-LSA

YANG模块提供统一的配置接口,抽象了这些差异。

互操作性 (Interoperability)

在OSPF网络中部署SR-MPLS时:

  1. SRGB一致性: 确保所有节点具有兼容的SRGB范围
  2. 算法支持: 验证所有节点支持相同的SR算法
  3. MSD广播: 正确配置和广播MSD值
  4. Prefix-SID唯一性: 避免域内SID冲突

迁移策略 (Migration Strategies)

对于迁移到SR-MPLS的网络:

  1. 增量部署: 最初在节点子集上启用SR
  2. 与LDP共存: SR-MPLS可以在过渡期间与LDP共存
  3. 映射服务器: 为尚未支持SR的节点使用SR映射服务器
  4. 监控: 持续监控SR路径建立和流量流动