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/索引/标签
- 前缀段标识符子TLV (Prefix-SID Sub-TLV)
扩展链路不透明LSA (Extended Link Opaque LSA):
- 扩展链路TLV
- 邻接段标识符子TLV (Adj-SID Sub-TLV)
- 标志: B标志, V标志, L标志, G标志, P标志
- 权重
- SID/标签
- 邻接段标识符子TLV (Adj-SID Sub-TLV)
路由器信息不透明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模块定义 (包括所有数据节点、扩展和通知) 请参考:
- 官方RFC文本: RFC 9903
- YANG模块仓库: IANA YANG Parameters
注意: 完整的YANG模块代码 (约600多行) 包括每个数据节点的详细描述、约束和参考。网络运营商应使用YANG验证工具确保配置符合模块的约束。
实现考虑 (Implementation Considerations)
OSPFv2与OSPFv3的差异
虽然两个协议支持相同的SR概念,但LSA编码不同:
- OSPFv2: 使用不透明LSA (类型9/10/11)
- OSPFv3: 使用带TLV编码的E-LSA
YANG模块提供统一的配置接口,抽象了这些差异。
互操作性 (Interoperability)
在OSPF网络中部署SR-MPLS时:
- SRGB一致性: 确保所有节点具有兼容的SRGB范围
- 算法支持: 验证所有节点支持相同的SR算法
- MSD广播: 正确配置和广播MSD值
- Prefix-SID唯一性: 避免域内SID冲突
迁移策略 (Migration Strategies)
对于迁移到SR-MPLS的网络:
- 增量部署: 最初在节点子集上启用SR
- 与LDP共存: SR-MPLS可以在过渡期间与LDP共存
- 映射服务器: 为尚未支持SR的节点使用SR映射服务器
- 监控: 持续监控SR路径建立和流量流动