南方數據技术观察
首页 行业新闻 教程 技术文章 AI 对话 官网 咨询与报价
首页 / 行业新闻

SRv6 微指令扩展:单 SID 承载六条微指令

SRv6 网络编程以 16 字节 SID 表达无状态业务,但单条指令只能携带一种行为。APNIC 系列第三篇提出微指令扩展,在不改动 RFC 8754 数据平面与控制平面的前提下,让每个 16 字节容器指令最多封装六个 16 位微指令(uSID),显著提升指令密度与编程灵活性。

容器指令结构与前缀分配

容器指令采用 BBBB:BBBB:::::: 格式,运营商在 SR 域内分配 /32 前缀 BBBB:BBBB::/32(每 B 为 4 位 nibble),亦支持 /16 与 /48 前缀长度。任意以该 32 位开头的 SRv6 指令即被识别为含微程序的容器指令。每个 uSID 占 16 位,微程序不足六条时,剩余位填 0x0000 标记为 End-of-Container。活动 uSID 由 BBBB:BBBB:/48 定位,执行完毕后指针自动前移至下一微指令。

数据平面与控制平面零改动

该扩展复用现有 SRv6 Segment Routing Extension Header(SRH,RFC 8754)数据平面与控制平面,无需协议变更。节点收到包含容器指令的报文时,按活动 uSID 查找本地微指令表执行对应行为(如转发、VPN、切片选路等),完成后将目的地址更新为下一 uSID,直至遇到 End-of-Container 或遍历完六条微指令。这种设计保持了 SRv6 无状态、源路由的核心特性,同时将单 SID 表达能力扩展六倍。

典型场景与部署取舍

微指令适合将多个简单动作(如进核心节点、选低时延切片、进 VPN 表、进业务设备)压缩进单一 SID,减少 SRH 开销与封装深度。但需注意:uSID 仅 16 位,全域唯一性依赖 BBBB:BBBB::/32 前缀规划,跨域互联需统一前缀分配策略;且微指令语义由本地节点定义,运维需建立 uSID 与行为的映射表。原文未给出具体部署规模或性能对比数据。

对网络工程师而言,微指令扩展在不升级硬件协议栈的前提下,把多跳业务逻辑压缩进单个 IPv6 目的地址,降低封装开销、简化 SRH 处理,是 SRv6 向大规模组网演进的关键一步。

原文: APNIC Blog(2020-05-15)|编译自 APNIC Blog,事实以原文为准。

来源:APNIC Blog

返回列表