何晓明,卢泉,邢亮
(1.中国电信股份有限公司广州研究院,广东 广州 510630;2.中国电信集团公司,北京 100032)
分段路由网络研究及其在流量工程中的应用
何晓明1,卢泉1,邢亮2
(1.中国电信股份有限公司广州研究院,广东 广州 510630;2.中国电信集团公司,北京 100032)
分段路由网络是对 IP 路由技术的继承和创新,在实现网络虚拟化、快速重路由、网络可编程、负载均衡和流量工程等方面具有独特优势。 深入研究了分段路由的实现机制,全面介绍和剖析了 IGP 和 BGP 支持分段路由网络的协议扩展,探讨了分段路由在运营商网络中典型应用场景的流量工程实现。 随着技术的成熟和标准的完善,分段路由网络将具有广阔的应用前景。
分段路由;流量工程;路由协议;SDN 控制器
为 IP 报文指定转发路径、而不是按照传统 IP 网络的最 短 路 径 转 发 的 网 络 能 力 ,称 为 基 于 源 路 由 网 络 (the source packet routing in networking,SPRING)[1]。 SPRING 的核心思想是由报文头部维护策略状态,无需转发路径的中间节点维护策略状态,这样可大大简化网络为维护策略状态信息所需复杂信令协议的支持。SPRING 有助于实现网络虚拟化 、快速重路由(fast reroute,FRR)、网 络 可 编 程 、OAM、负 载 均 衡 和 流 量 工 程 等 网 络 功 能 。MPLS (multi-protocol label switching,多 协 议 标 签 交 换 )作 为 一 种 成 熟 可 商 用 的标签交换技术,已经在各大运营商网络得到广泛部署,主要用于提供二/三层 VPN 服务。然而,MPLS 支持流量工程 及 快 速 重 路 由 需 要 更 为 复 杂 的 信 令 协 议 ,如 CR-LDP[2]、RSVP-TE[3]等 ,网 络 设 备 需 要 维 护 每 条 LSP 的 状 态 信 息 ,设备开销大,存在严重的扩展性问题,因此,除了某些特殊应用 (如为骨干网少数关键节点和链路提供局部保护)外,一般极少使用。尽管采用独立的路径计算单元(path computation element,PCE)替 代 边 缘 入 口 设 备 (label edge router,LER)选 择 TE LSP 可 以 大 大 减 轻 设 备 控 制 面的负担(维护流量工程数据库需要足够多的存储,路径计算 需 要 消 耗 大 量 计 算 资 源 )[4],已 部 分 体 现 了 SDN 思 想 ,但网络设备仍需运行 RSVP-TE 等信令来维护每条 LSP 的状态信息,对控制面的功能要求高。
SDN 近年来受到广泛关注,并成为运营商、设备制造商、学术界研究和应用的热点领域。根据开放网络基金组织 (Open Networking Foundation,ONF)对 SDN 的 定 义 ,在SDN 架构中,控制平面和数据平面解耦,网络智能和状态逻辑集中,底层网络基础设施抽象于上层应用。SDN 终极目标是简化网络设备的复杂性,实现网络虚拟化和网络应用的开放可编程,快速提供业务部署。当前最具革命性的SDN 技 术 当 属 由 ONF 主 导 的 OpenFlow 协 议 , 基 于OpenFlow 的 SDN 通 过 集 中 的 SDN 控制器发现和维护 全网拓扑信息,根据自定义策略为每一跳转发设备下发流转发表,底层转发设备依据流表实现业务流的转发、过滤和丢弃等动作。然而,OpenFlow 网络当前仍面临流表的扩展性、硬件芯片技术制约网络转发性能、新旧设备共存及网络 演 进 等 问 题[5,6]。由 IETF 主 导 的 I2RS 工 作 组 希 望 在 继 续保留分布式路由优势的同时,仍可通过应用来改变路由决策[7]。实践已经证明,传统路由协议如 OSPF、ISIS、BGP 在大规模网络(如 Internet)取得了巨大 成 功 。通过对 传 统路由协 议进行扩展改良,能够适应网络应用和业务创新发展,从而实现现有网络基础设施向 SDN 的平滑演进。
SPRING 的 目 标 与 IETF 主 导 的 基 于 I2RS 的 SDN 是一致的,其目的在于通过对传统 IGP、BGP 进行扩展和改进,进而简化网络设备的复杂性,更好地实现网络弹性和可编程、网络负载均衡和流量工程、网络虚拟化等功能,为业务提供最佳适配。
本 文全面介 绍 和 剖析 IGP 和 BGP 支 持 分 段路 由 网络的协议扩展,并分析了分段路由网络的 OAM 机制,同时探讨分段路由在运营商网络中典型应用场景的流量工程实现。
由 Cisco 发 起 的 分 段 路 由 (segment routing,SR)网 络 是一种 基于源路 由 网 络,目前 正 由 IETF 的 SPRING 工 作组进 行 标 准 化 。 根 据 IETF“分 段 路 由 结 构 ”draft[8]的 定 义 ,分 段路由是指主机或网络边缘入口节点为 IP 报文添加一个包含一串按序排列的、被称为“分段”的指令列表的报文头部,中间节点根据报头列表中的顶层段标识进行 IP 报文的逐跳转发。分段路由的思想是把报文流经过的一条端到端 的 路 径 划 分 成 多 个 分 段 ,每 一 分 段 以 段 标 识(SID)来 标识。对于 MPLS 网络,“分段路由结构 ”draft定义了 5 种段标 识 :IGP 段 标 识 、BGP peer 段 标 识 、LDP LSP 段 标 识 、RSVP-TE LSP 段 标 识 和 BGP LSP 段 标 识 。 对 IGP SID 而言 ,可 以 是 节 点 标 识 (node SID)、地 址 前 缀 标 识 (prefix SID),也可以是邻接标识(Adj-SID)。对于纯 IPv6 网络,SID编码成 IPv6 地址,为支持分段路由功能,IETF 专门定义了一 种 新 的 IPv6 路 由 扩 展 头 部[9]。
在 每 个 分 段 里 , 转 发 设 备 根 据 转 发 表 (forwarding information base,FIB)查 找 段 标 识 对 应 的 下 一 跳 ,最 终 转 发到该段标识的发起者。由于 SID 是通过 IGP 向全网通告,这样,IP 报文在每个分段里都按照 ECMP 感知的最短路径优 先 (shortest path first,SPF)算 法 进 行 转 发 。由 一 串 段 标 识列表指定的端到端路径通常由 SDN 控制器根据网络资源的利用情况以及业务需求等因素来确定,当然也可手工配置。网络设备只需支持 OSPF、ISIS 等 基本路由 协 议,无需通过信令协议来维护报文流的状态信息,极大地简化了网络设备的复杂性。
2.1 分段路由的 IGP 扩展
在一个 IGP 拓扑域里,分段路由网络通过一串按序排列的分段标识灵活指定了一条端到端的转发路径,这些段标识通过链路状态路由协议 (如 OSPF 或 ISIS)向全网通告。一个 prefix SID 通 常 代 表 多 跳 路 径 ,具 有 全 局 唯 一 性 ;而一个 Adj-SID 在 多 数情况下 是 一个单跳 路 径 ,一 般 只具有本地意义。为了通告各种 SID,ISIS 和 OSPFv3 在链路状态 协 议 数 据 单 元 (label switched path,LSP)分 别 为 它 们 定义 了 新 的 TLV[10,11]。由 于 OSPFv2 协 议 采 用 固 定 格 式 的 链 路状 态 通 告 (link-state advertisement,LSA)报 文 ,为 了 支 持 新特 性 ,OSPFv2 在 RFC7684 专 门 定 义 了 2 个 新 的 opaque LSA:OSPFv2 扩 展 prefix opaque LSA 和 OSPFv2 扩 展 link opaque LSA,并 且分别为 它 们各自增 加 了 一个新的 TLV:OSPFv2 扩 展 prefix TLV 和 OSPFv2 扩 展 link TLV,用 于 通告 附 加 的 前 缀 和 链 路 属 性 。以 下 介 绍 OSPFv2 协 议 扩 展[12]与 SID 通告相关的几个重要的 TLV。
(1)SID/标签 TLV
SID/标 签 TLV 用 于 通 告 前 缀 和 链 路 关 联 的 SID 或 标签,SID/标签 TLV 格式如图 1 所示。
图1 SID/标签 TLV 格式
SID/label字段含义:若长度字段设置为 3,那么 SID/label值 最 右 边 的 20 bit代 表 一 个 标 签 ;若 长 度 字 段 设 置 为4,则 SID/label值 代 表 32 bit的 SID。
(2)prefix SID TLV
prefix SID TLV 是 OSPFv2 扩 展 prefix TLV 或 OSPFv2扩 展 prefix range TLV 的 子 TLV,用 于 通 告 前 缀 绑 定 的 SID属 性 。prefix SID TLV 格 式 如 图 2 所 示 。
图2 prefix SID TLV 格 式
flags 字 段 :8 bit,定义 如 图 3 所 示 的 标 志 位 。
图3 prefix SID TLV flags 标 志 位
NP 标志位:no-PHP 标志。若设置为 1,则次末跳向下一 跳 转 发 报 文 时 不 应 该 弹 出 prefix SID;若 设 置 为 0,则 次末 跳 必 须 弹 出 prefix SID,这等同于 MPLS 网 络 中 的 次 末 跳弹出机制。
M 标志位:映射服务器标志。若设置为 1,该 SID 由映射服务器通告。
E 标 志 位 :explicit-null标 志 。若 设 置 为 1,prefix SID 发起 者 的 上 游 邻 居 在 转 发 报 文 前 必 须 用 一 个 explicit-null值(对 于 IPv4 地 址 为 0)代替 prefix SID。
V 标 志 位 :值/索 引 标 志 。若 设 置 为 1,则 prefix SID携 带 一 个 绝 对 值 (SID );若 设 置 为 0,prefix SID 代 表 一 个索引。
L 标 志 位 :本 地/全 局 标 志 。若 设 置 为 1,则 prefix SID携带的值或索引具有本地意义;若设置为 0,则具有全局意义。
其他标志位:保留,这些标志位发送时必须置 0,接收时忽略。
MT-ID:由 RFC4915 定义的多拓扑 ID。
algorithm:一 个 字 节 字 段 ,标 识 prefix SID 关 联 的 路 径选择算法。IGP 扩展目前定义了两种路径选择算法:当该字段置“0”时,表示缺省基于度量的最短路径优先(SPF)算法,允许任何节点根据本地路径选择策略来改变基于缺省SPF 选路;当该字段置“1”时,表示沿路径的所有节点必须遵循严格 SPF 算法,不允许本地策略改变路径选择。
(3)Adj-SID TLV
Adj-SID 是 OSPFv2 扩 展 link TLV 中 一 个 可 选 的 子TLV,用于标识一条或一组单向链路。Adj-SID 格式如图 4所示。
图4 Adj-SID 格式
flags 字 段 :8 bit,定 义 标 志 位 如 图 5 所 示 。
图5 Adj-SID TLV flags 标 志 位
B 标志位:备份标 志 ,若 置“1”,该 Adj-SID 标识的链 路符合链路保护条件。
V 标 志 位 :值/索 引 标 志 ,若 置 “1”,则 该 Adj-SID 携 带一个绝对值;若置“0”,则该 Adj-SID 代表一个索引。
L 标 志 位 :本 地/全 局 标 志 。若 设 置 为 1 ,则 prefix SID携带的值或索引具有本地意义;若设置为 0,则具有全局意义。
S 标 志 位 :链 路 组 标 识 ,若 置 “1”,则 prefix SID 表 示 一个链路组,流量经由一组链路负载分担转发到邻居节点。
MT-ID:由 RFC4915 定义的多拓扑 ID。
weight字段:用于流量在一组并行链路间的负载均衡权重,这对于一组非等速链路是很有用的。
2.2 分段路由的 BGP 扩展
由于 IGP 扩展对 SID 的通告只局限于单个 IGP 域 ,只能 获 取 IGP 域 内 的 链 路 状 态 数 据 库 (link state database,LSDB) 和 流 量 工 程 数 据 库 (traffic engineering database,TED),因此,单纯使用 IGP 不足以 构 建 跨多个 IGP 域或 跨AS域的分段路由网络。为了满足某些需要跨域拓扑可视的 应 用 需 求 ,IETF 正 在 标 准 化 的 BGP-LS[13]允 许 BGP 携 带链路状态信息。 BGP-LS 定义了一种新的 BGP 网络层可达信 息 (network layer reachability information,NLRI)编 码 格 式及一种新的 BGP-LS 属性,节点、链路及前缀这 3 种关键的链路状态对象分别被编码在 NLRI中,与这些链路状态对象关联的属性被编码在 BGP-LS 属性中。图 6 展示了一种典型 的 跨 IGP 域 或 AS 域 的 部署场景 。在每个 IGP 域 中,一个或多个节点配置使能 BGP-LS,这些 BGP 发言者通过连接路由反射器(route reflector,RR)形 成 IBGP 全互联。这样,所有的 BGP 发言者(特别是 RR)都获取了全部 IGP 域的链路状态信息,外部部件如 SDN 控制器可以从 RR 获取全网链路状态信息。
类似 SDN 控制器这种外部部件,通过收集跨 IGP 域的分段路由来构建端到端的分段路径,指示 IP 报文按照指定的分段路径转发。
为 支 持 分 段 路 由 网 络 ,BGP-LS 扩 展 了 6 个 新 的BGP-LS 属 性 TLV :prefix SID TLV、Adj-SID,SR 能 力 TLV、SR 算 法 TLV 、IGP binding TLV 和 映 射 服 务 器 通 告 前 缀 与SID 绑 定 TLV[14]。限 于 篇 幅 ,不 再 详 细 介 绍 。
2.3 分段路由的域间多出口工程 BGP 扩展
为 了 解 决 域 间 多 出 口 工 程 (egress peer engineering,EPE)问 题 ,BGP-LS 扩 展[15]定 义 了 3 种 BGP peering SID:peer-node-SID;peer-Adj-SID;peer-set-SID。peer-node-SID 用于标识 BGP 会话邻居(peer),peer-Adj-SID 用于标识 BGP 会话的本地接口或互联链路,peer-set-SID 用于标识远端 AS 的所有 peer。由于域间多出口连接性描述基于链路和远端 peer/AS, 因 此 ,可 以 重 用 BGP-LS 中 的 link NLRI 通 告 BGP peering SID 的 可 达 性 ,并 定 义 了 一 种 新 的 protocol-ID,用 于区分 link NLRI携带的 EPE 描述信息与 IGP 链路状态信息。
(1)BGP-LS link NLRI
BGP-LS 定 义 了 用 于 携 带 EPE 描 述 消 息 的 link NLRI格式,如图 7所示。
图6 跨域链路状态信息收集
图7 链路 NLRI格式
本 地 节 点 描 述 符 (local node descriptor)TLV 必 须 包 含3 个 消 息 :BGP router ID、AS、BGP-LS 标 识 。
远 端 节 点 描 述 符 (remote node descriptor,RND)TLV 可以包含两个消息:BGP router ID、AS。
链 路 描 述 符 (link descriptor)TLV 包含的消息跟通告的peering SID 相 关 ,若 通 告 peer-node-SID 或 peer-set-SID,链路描述符 TLV 必须包含 BGP 会话的本地接口地址和 peer接口地址;若通告 peer-Adj-SID,链路描述符 TLV 必须包含4 byte 的 链 路 本 地 标 识 符 和 4 byte 的 0 值 ,可 以 包 含 BGP会话的本地接口地址或 peer接口地址。
(2)BGP-LS 扩展 link 属性
BGP-LS 扩 展 link 属 性 定 义 的 peer-node-SID TLV、peer-Adj-SID TLV 和 peer-set-SID TLV,它 们 都 具 有 如 图 8所示的格式。
图8 BGP peering SID 格 式
flags 字段:8 bit,定义标志位如图 9 所示。
图9 flags 标志位
V 标 志 位 :若 置 “1”,Adj-SID 携 带 一 个 绝 对 值 ,缺 省置位。
L 标 志 位 :若 置“1”,Adj-SID 携 带值具有 本 地意义,缺省置位。
其余 bit,必须置“0”。
weight字段意义同图 5,用于链路负载均衡。
为了便于理解,以图 10 为例,对分段路由的 BGP 扩展操作做进一步说明。
图10 EPE 拓扑示意
图10 中,假定为出口节点 C 及 peer D、H、E 及其接口分配如下地址。
· 链 路 CD 中 连 接 节 点 C 的 接 口 地 址 :1.0.1.1/24,连接节点 D 的接口地址:1.0.1.2/24。
· 链 路 CH 中 连 接 节 点 C 的 接 口 地 址 :1.0.2.1/24,连接节点 H 的接口地址:1.0.2.2/24。
· 链路组 CE的两条并行链路中上一条连接节点 C的 接 口 地 址 :1.0.3.1/24,连 接 节 点 E 的 接 口 地 址 :1.0.3.2/24。
· 链路组 CE的两条并行链路中下一条连接节点 C的 接 口 地 址 :1.0.4.1/24,连 接 节 点 E 的 接 口 地 址 :1.0.4.2/24。
· 链路组 CE的两条并行链路中上一条连接节点 C的链路本地标识符:0.0.0.1.0.0.0.0。
· 链路组 CE的两条并行链路中下一条连接节点 C的链路本地标识符:0.0.0.2.0.0.0.0。
· 节点 E 用于 eBGP 多跳连接的 loopback (环 回)地址:1.0.5.2/32。
· 节 点 C 的 loopback 地 址 :3.3.3.3/32, 并 为 其 分 配SID:64。
· 节 点 C、D、E、H 的 BGP router-ID 分 别 为 :3.3.3.3,4.4.4.4,5.5.5.5,6.6.6.6。
同时,出口节点 C 配置 3 种 BGP peering SID 如下所示。
· 为 peer D、H、E 分 配 的 peer-node-SID 分 别 为 :1012、1022、1052。
· 为连接到 peer E 的 上 、下 链 路 分 配 的 peer-Adj-SID为 1032 和 1042。
· 为 连 接 到 AS3 的 peer H 和 E 分 配 的 peer-set-SID为 1060。
· 为节点 C 配置的本地 BGP-LS 标识为 10000。
BGP-LS 更 新 消 息 由 节 点 C 产 生 , 并 通 过 iBGP 或eBGP 向邻居通告。
下 面 描 述 出 口 节 点 C 通 告 上 述 BGP peering SID 的BGP-LS 扩展。
①为 peer D 通 告 的 peer-node-SID(1012)
BGP-LS link NLRI 包 含 :
· 本 地 节 点 描 述 符 (BGP router ID、AS、BGP-LS 标识):3.3.3.3 ,AS1,10000;
· 远 端 节 点 描 述 符 (BGP router ID、AS):4.4.4.4,AS2;
· 链路描述 符 (本地接口 地 址 和 peer 接 口 地 址 ):1.0.1.1,1.0.1.2。
BGP-LS link 属 性 包 含 peer-node-SID(1012)
②为 peer H 通告的 peer-node-SID(1022)和 peer-set-SID(1060)
· 本 地 节 点 描 述 符 (BGP router ID、AS、BGP-LS 标识):3.3.3.3 ,AS1,10000;
· 远 端 节 点 描 述 符 (BGP router ID、AS):6.6.6.6,AS3;
· 链路描述 符 (本地接口 地 址 和 peer 接 口 地 址 ):1.0.2.1,1.0.2.2。
BGP-LS link 属 性 包 含 peer-node-SID (1022)和peer-set-SID(1060)。
③为 peer E 通告的 peer-node-SID(1052)和 peer-set-SID(1060)
· 本 地 节 点 描 述 符 (BGP router ID、AS、BGP-LS 标识):3.3.3.3 ,AS1,10000;
· 远 端 节 点 描 述 符 (BGP router ID、AS):5.5.5.5,AS3;
· 链路描述 符 (本地接口 地 址 和 peer 接 口 地 址 ):3.3.3.3,1.0.5.2。
BGP-LS link 属 性 包 含 peer-node-SID (1052)和peer-set-SID(1060)。
④为连接到节点 E 的上一条链路通告的 peer-Adj-SID(1032)
· 本 地 节 点 描 述 符 (BGP router ID、AS、BGP-LS 标识):3.3.3.3 ,AS1,10000;
· 远 端 节 点 描 述 符 (BGP router ID、AS):5.5.5.5,AS3;
· 链路描述 符 (本地接口 标 识 和 peer 接 口 地 址 ):0.0.0.1.0.0.0.0 ,1.0.3.2。
BGP-LS link 属性包含 peer-Adj-SID(1032)。
⑤为连接 到节点 E 的下一条链路通告的 peer-Adj-SID(1042)
· 本 地 节 点 描 述 符 (BGP router ID、AS、BGP-LS 标识 ):3.3.3.3 ,AS1,10000;
· 远 端 节 点 描 述 符 (BGP router ID、AS):5.5.5.5,AS3;
· 链 路 描述符 (本 地接 口 标 识 和 peer 接 口 地 址 ):0.0.0.2.0.0.0.0 ,1.0.4.2。
BGP-LS link 属性包含 peer-Adj-SID(1042)。
2.4 分段路由的 OAM 机制
根据“分段路由结构”draft的定义,分段路由能够直接应 用 于 MPLS 数 据 平 面 :段 标 识 (SID)等 同 于 20 bit MPLS标签,分段路由头部等同于 MPLS 标签栈。由于现有的MPLS 架构需要 LDP 或 RSVP 等特定控制平面协议的支持,而分段路由结构中标签的分发基于 IGP 的泛洪机制,分段路由这种技术特点引发了不同于传统 MPLS 网络 LSP故障检测和隔离的考虑。
“分 段 路 由 网 络 的 OAM 需 求 ”draft[16]对 OAM 需 求 提出了全面的描述,包括:
· SR 的 OAM 必须支持按需(on-demand)和连续性故障诊断功能;
· SR 的 OAM 报文必须准确跟随数据平面的流量路径;
· SR 的 OAM 报文必须有能力发现并执行等价多径路 径 (equal cost multipath,ECMP) 和 非 等 价 多 径 路径 (unequal cost multipath,UCMP);
· SR 的 OAM 报文必须有能力发现并执行可用路径,而不仅仅只执行最佳路径;
· SR 的 OAM 报 文 必 须 有 能 力 检 测 到 任 何 基 于node-SID 或 Adj-SID 路径转发失败;
· SR 的 OAM 必须有能力由 SR 域中任意节点发起到其他节点的连通性检测和连续性检查;
· 当出现连续性检查失败时,SR 的 OAM 可以支持快速故障定位以隔离故障节点;
· SR 的 OAM 应具有由集中控制器发起故障诊断的能力;
· 当集中控制器发起 OAM 检测时,必须有能力向 SR域中任何边缘节点警示对应的路径或业务失败,收到警示的节点可以采取本地保护行动或弹出提示性消息;
· SR 的 OAM 必须有能力使用主动或被动方式测量报文丢失、报文时延或时延抖动等性能指标。
为了检验 SR 网络的路径(包括节点和链路)有效性,IETF 制 定 了 SR 网 络 中 使 用 MPLS 数 据 平 面 的 LSP ping/trace 测 试 规 范[17],该 草 案 对 SR 网 络 存 在 问 题 进 行 阐 明 ,同时 在 target FEC stack TLV 定 义 了 3 个 新 的 SID 子 TLV:IPv4 IGP-prefix segment ID;IPv6 IGP-prefix segment ID;IGP-adjacency segment ID,用 于 解 决 SR 网 络 路 径 有 效 性 可能 存 在 的 问 题 。 另 外 ,draft-ietf-spring-oam-usecase[18]还 提 出了一种可扩展的 MPLS 数据平面监视系统,并给出了应用场景,这进一步丰富了 SR 网络中的 OAM 机制。
由于分段路由是在网络边缘入口节点为 IP 报文添加一个包含一串按序排列 SID 列表的报文头部,中间节点只需 根 据 报 头 列 表 中 的顶 层 SID 进 行 IP 报 文 的 逐 跳 转 发 。所有路径选择的策略状态信息都由入口节点维护,中间节点无需运行复杂信令协议来维护每流的状态信息,大大简化了网络设备的复杂度, 同传统基于 MPLS 流量工程相比,具有良好的扩展性和路径选择的灵活性。因此,SR 实现网络的负载均衡和流量工程具有独特优势。下面从 3个应用场景分别描述 SR 在负载均衡和流量工程中的应用。
3.1 IGP 域内负载均衡
传统 IP 网络基于最短路径转发报文,导致网络流量分布极度不均衡,一部分链路严重拥塞,而另一部分链路长期处于轻载状态。无 法 通 过 IGP metric 调整来达到全网负载均衡的目的。图 11 中,用户终端连接 R1,访问的内容源连接 R2,假定拓扑中所有链路的 metric 值 都 相 等 。用户访 问 站 点 1.1.0.0/16 的 全 部 流 量 最 终 经 过 最 短 路 径 R1-R2到达目的站点,其他链路无法承载流量,处于空闲状态。这种情形在现实网络中普遍存在。这个问题在 SR 网络中可以得到轻松解决。
在 SR 网络中,假设为 R2、R3、R4、R5 的环回地址分配的 node-SID 分别 为 102、103、104、105,并 通过 IGP 扩展向全网通告。这样,网络中所有节点的 FIB 都维护着这些SID 的标签转发信息。网络中的入口节点 R1 通过规划流量路径(一般由 SDN 控制器负责),可以基于多种流分类策略(如接入端口、源地址、报文五元组等)为 IP 报文添加带有 SID 列表的头部。例如,为 VIP 流选择 R1-R2 的最短路径 ,VIP 报 文 采用缺省 方 式转发,不 携 带包含 SID 列表的头部;为来自端口 1 的报文流选择路径 R1-R3-R2,添加带 有 SID 列 表 为 {103}的 头 部 ;为 源 自 端 口 2 的 报 文 流 选择 路 径 R1-R4-R5-R2, 添 加 带 有 SID 列 表 为 {104,105}的 头部。入口 节点 R1 通 过合理规 划 流量路径 ,可 实 现流量在所有链路负载分担,达到全网流量均衡的效果。
图11 SR 实现 IGP 域内负载均衡
3.2 骨干网双平面流量工程
随着互联网应用的飞速发展,过去几年建成的骨干网难以支撑互联网流量的爆炸式增长,各大运营商纷纷建设骨干网新平面,以承接汹涌而来的数字洪流。由于新老平面通常属于独立的自治域,无法实现两个平面的网络拓扑及流量数据的共享。采用 SDN 控制器可以收集跨域链路状态数据及流量工程数据,并根据新、老平面资源使用效率来动态调度城域网流量的合理分配,实现骨干网双平面流量工程。SDN 控制器与各个 AS 域中的边缘节点建立BGP 会话,通过 BGP-LS 收集各个 AS 域的链路状态数据及流量工程数据,并根据需要为边缘入口节点的不同报文流选择流路径。入口节点还可以支持路径计算单元协议(path computation element protocol,PCEP),为 特 定 业 务 流向 SDN 控制器请求路径选择。
图12 中,城域 网 A 与城域 网 B 之间的互 访 流量通过新、老平面进行疏导。各个自治域都支持 SR,图 12 中各自治 域 的边缘节点 RA、RB、R1、R2、R3、R4 以 BGP-LS 方 式 向SDN 控制器通告链路状态及流量工程数据,RA 为连接新平面的入口节点 R1 的链路分配的 Adj-SID 为 9001; 为连接老平 面的 入 口 节点 R2 的 链 路 分 配 的 Adj-SID 为 9002;新平 面 的 出 口 节 点 R3 为 自 身 的 环 回 地 址 分 配 的 node-SID为 103;旧平面的出口节点 R4 为自身的环回地址分配的node-SID 为 104。假设城域网 A 的用户和业务地址包 含 2个 地 址 段 :1.1.0.0/16 和 1.2.0.0/16,RA 为 这 2 个 地 址 段 的业务流向SDN 控制器请求路径选择。SDN 控制器根据这 2个地址段承载的流量大小,并结合新、旧平面的网络资源利用情况,为 地 址 段 1.1.0.0/16 的 流 量 指 定 新 平 面 路 由 ,下 发的 路 径 标 签 为{9001,103};为 地 址 段 1.2.0.0/16 的 流 量 指 定旧平面路由,下发的路径标签为{9002,104}。RA 为源地址属于 1.1.0.0/16 地 址 段 的 报 文 添 加 路 径 标 签 为 {9001,103}的头部,为源地址属于 1.2.0.0/16 地 址 段 的 报 文 添 加 路 径 标签为{9002,104}的头部 ,报 文 流 在新、老 平 面遵 循ECMP 感知的最短路径转发到出口节点。这样,城域网 A去往城域网 B的流量便实现了新、老平面的负载分担。
图12 SR 实现骨干网双平面流量工程
3.3 域间多出口流量工程
在运营商骨干网与城域网及数据中心跨域互联中,通常存在多出口流量 均衡问题 。传统采 用 BGP 路由策 略 来解决,存在配置复杂、流量调度不够灵活等局限,并且难以实现基于源地址的流量优化调度。 第 2.3 节 详 细 描 述 了 分段路由专门针对 EPE 的 BGP 扩展。下面以图 10 所示的 EPE拓扑示意图为例,分析 SR 在多出口流量工程中的应用。
图12 中,出口节点 C 通过 BGP-LS 方式向 SDN 控制器 通 告 BGP peering SID 关 联 的 域 间 拓 扑 连 接 关 系 。同 时 ,节 点 C 的 FIB 维 护 BGP peering SID 转 发 信 息 见 表 1。
表1 节 点 C 的 FIB 维 护 BGP peering SID 转 发 信 息
为了确定目的网络的可达性,SDN 控制器需要收集域间 peer通告所有可用路径,一种方式是利用 BGP 扩展支持 的 ADD-path 能 力[19]。支 持 ADD-path 能 力 的 节 点 C 将 向SDN 控制器通告相同网络前缀的所有 BGP 路由,如图 10中节点 C 接收到的包含前缀 L/8 的 BGP 路由有:
· L/8 next-hop 1.0.1.2 AS path {AS 2,4};
· L/8 next-hop 1.0.2.2 AS path {AS 3,4};
· L/8 next-hop 1.0.5.2 AS path {AS 3,4}。
SDN 控制器还需收集 IGP 域内链路状态拓扑信息,这可以通过 BGP-LS 方式来实现。
当 SDN 控制器获取了域内和域间完整的网络拓扑信息后,就可以根据策略规划流量出口工程。
EPE 策 略 可 表述为携 带 2 个 SID 的 列表 :第 一 个 IGP prefix SID 用 于 标 识 选 择 的 出 口 节 点 ;第 二 个 BGP peering SID 用于标识选择的域间 peer。 SDN 控制器可以为目的前缀 L/8 选择如下路径:
· 出 口 节 点 C 及 域 间 peer D:{64,1012};
· 出 口 节 点 C 及 域 间 peer H:{64,1022};
· 出 口 节 点 C 及 域 间 peer E:{64,1052};
· 出 口 节 点 C 及 连 接 域 间 peer E 的 上 一 条 链 路 :{64,1032};
· 出 口 节 点 C 及 连 接 域 间 peer E 的 下 一 条 链 路 :{64,1042};
· 出 口 节 点 C 到 AS3 的任一条链路:{64,1060}。
SDN 控制器还可以指定 IGP 域内的显式路径,如到达目的地的 IP 报文必须经过节点 B 转发。假定节点 B 为自身的环回地址分配 SID 为 62,即可为目的前缀 L/8 选择一条 SID 列表为{62,64,1 012}路径。
3.4 试验验证
目前,Cisco 应用于运营商网 络 从 边缘、汇聚到 核 心的ASR、NCS 及 CRS 全系列路由器都已支持分段路由技术。为验证其设备支持分段路由的功能和性能,选用了ASR9000 (IOS-XR 5.2)、NCS6000 (IOS-XR 6.1.1)、CRS-3(IOS-XR 6.1.1)3 种 型 号 设 备 混 合 组 网 ,在实验室搭建了如图3所示拓扑测试环境。图 3中所有互联链路带宽都为10 Gbit/s。并根据第 3.1 节 的 描 述 配 置 网 络 参 数 ,全网运行OSPF 协议,在 R1 查看 LFIB 见表 2。
表2 在 R1 查看 LFIB
测 试 仪 表 的 3 个 10 Gbit/s 端 口 分 别 同 入 口 R1 的 端口 1、2、3 相连,用于发送测试流,其中,R1 的端口 3 模拟接收 VIP 流。测 试 仪 表 的 1 个 40 Gbit/s 端 口 同 出 口 R2 相连,配置为目标网络,用于接收测试流。测试仪表同时向每个 端 口 发 送 9 Gbit/s 流 量 ,并 通 过 40 Gbit/s 端 口 进 行 流 量回收,经过 24 h 的长期测试,测试结果无分组丢失现象。这完全验证了流量在所有链路负载分担,实现全网流量均衡。
同时,试验也验证了分段路由技术实现流量工程仅需路由设备支持基本的 IGP 扩展,设备配置较简单。而传统基于 MPLS 流量工程需要网络支持更多的信令协议,如LDP、RSVP-TE 等,因此大大简化了网络运维的复杂度。由于分段路由无需中间设备维护流状态,仅需边缘入口设备对报文头部携带标签列表指示的流量转发路径进行编程,对流数目的支持具有良好的扩展性,非常适合运营商大规模网络的流量工程。
分段路由通过对 IGP 和 BGP 进行协议扩展实现段标识/标签的分发,网络节点维护段标识/标签的转发信息表。边缘入口节点为报文流维护策略状态信息,无需中间节点维护每报文流的策略状态信息,即可实现 IP 报文按指定路径在一个 IPG 域内甚至跨域的端到端转发,极大地简化了网络设备的复杂性。分段路由是对现有网络技术的继承和发展,并能实现同现有网络基础设施的互操作和平滑演进,在网络虚拟化如二/三层 VPN 实现、网络节点及链路保护、负载均衡和流量工程等方面显示出了独特的优越性。分段路由思想一经提出,便引起了网络界的极大兴趣,并得到设备制造商大力支持,目前正成为 IETF 的一项甚为活跃的标准化工作。由于分段路由技术的标准化工作起步较晚,目前还未达到成熟和完善阶段,特别是在 OAM、网络安全 、与 现 有 网 络 (包 括 MPLS、IPv6)互 操 作 等 诸 多 方 面[20]还 有许多工作要做。可以大胆预言,分段路由与 SDN 的结合,能够很好地实现网络的可编程性,进一步增强网络适配业务能力,为实现运营商大规模网络流量工程奠定基础。
[1] PREVIDI S,FILSFILS C,DECRAENE B,et al.SPRING problem statement and requirements [J].Der Orthop de,2007,36(4):360-4.
[2] FAMOUSSI B,ANDERSON L,CALLON R,et al.Constraint-based LSP setup using LDP[J].Work in Progress Internet Draft,2002,38(2):295-305.
[3] AWDUCHE D,BERGER L,SWALLOW G,et al.RSVP-TE:extensions to RSVP for LSP tunnels[S].RFC 3209,2001.
[4] FARREL A,VASSEUR J P,ASH J.A path computation element (PCE)based architecture [C]//IETF RFC,April 3-9,2006,London,UK.New Jersey:IEEE Press,2006.
[5] 何晓明,冀 晖,毛 东峰,等. 电 信 IP 网向 SDN 演 进 的探 讨[J].电信科学,2014,30(6):131-137. HE X M,JI H,MAO D F,et al.Telecom IP network to the exploration of the evolution of SDN [J].Telecommunication Science,2014,30(6):131-137.
[6] 王熙.撬动 2500 亿元市场的 SDN 技术为何依然难落地[EB/OL].(2016-04-13) [2016-04-20]. http://www.cww.net.cn/tech/html/2016/4/13/20164121826402633.htm. WANG X.Leveraged $250 billion market SDN why technology is still difficult to be born [EB/OL]. (2016-04-13)[2016-04-20]. http://www.cww.net.cn/tech/html/2016/4/13/20164121826402633. htm.
[7] HARES S,CHEN M.Summary of I2RS use case requirements[EB/OL]. (2016-02-16)[2016-04-05].http://www.ietf.org./.
[8] FILSFILS C,PREVIDI S,DECRAENE B,et al.Segment routing architecture [EB/OL]. (2016-03-06)[2016-04-05].http://www.segment-routing.net/home/ietf.
[9] PREVIDI S,FILSFILS C,FIELD B,et al.IPv6 segment routing header (SRH)[EB/OL]. (2016-02-11)[2016-04-05].http://www. ietf.org./.
[10]PREVIDIS, FILSFILS C, BASHANDY A, etal.IS-IS extensions for segment routing [EB/OL]. (2016-01-20)[2016-04-05].http://www.ietf.org./.
[11]PSENAK P,PREVIDI S,FILSFILS C,et al.OSPFv3 extensions for segment routing [EB/OL]. (2016-02-08)[2016-04-05].http://www.ietf.org./.
[12]PSENAK P,PREVIDI S,FILSFILS C,et al.OSPF extensions for segment routing [EB/OL]. (2016-03-17)[2016-04-05].http://www.ietf.org./.
[13]GREDLER H,MEDVED J,PREVIDI S,et al.North-bound distribution of link-state and TE information using BGP[EB/OL].(2016-02-11)[2016-04-05].http://www.ietf.org./.
[14]PREVIDI S,PSENAK P,FILSFILS C,et al.BGP link-state extensions for segment routing [EB/OL]. (2016-03-09)[2016-04-05].http://www.ietf.org./.
[15]PREVIDI S,FILSFILS C,RAY S,et al.Segment routing egress peer engineering BGP-LS extensions [EB/OL]. (2016-02-15)[2016-04-05].http://www.ietf.org./.
[16]KUMAR N, PIGNATARO C, AKIYA N, etal.OAM requirements for segment routing network [EB/OL]. (2016-02-01)[2016-04-05].http://www.ietf.org./.
[17]KUMAR N,SWALLOW G,PIGNATARO C,et al.Label switched path (LSP)ping/trace for segment routing networks using MPLS dataplane[EB/OL]. (2016-02-07)[2016-04-05].http://www.ietf.org./.
[18]GEIB R,FILSFILS C,PIGNATARO C,et al.A scalable and topology-awareMPLS dataplanemonitoringsystem [EB/OL].(2016-02-09)[2016-04-05].http://www.ietf.org./.
[19]WALTON D,RETANA A,CHEN E,et al.Advertisement of multiple paths in BGP[EB/OL]. (2016-03-11)[2016-04-05].http://www.ietf. org./.
[20]FILSFILS C,PREVIDI S,BASHANDY A,et al.Segment routing interoperability with LDP [EB/OL]. (2016-03-21)[2016-04-05]. http://www.ietf.org./.
Study on segment routing network and its application in traffic engineering
HE Xiaoming1,LU Quan1,XING Liang2
1.Guangzhou Research Institute of China Telecom Co.,Ltd.,Guangzhou 510630,China 2.China Telecommunications Corporation,Beijing 100032,China
Segment routing network is the inheritance and innovation of IP routing technology,which has many unique advantages in the realization of network virtualization,fast re-routing,network programming,load balancing and traffic engineering,and so on.Segment routing mechanism was studied in depth,and the protocol extensions of interior gateway protocols (IGP)and border gateway protocol (BGP)for segment routing were introduced and analyzed in detail.Furthermore,the realization of traffic engineering for segment routing in typical application scenarios of the operator networks was explored.With the maturity of technology and standardization,segment routing network will promise to have broad application prospects.
segment routing,traffic engineering,routing protocol,SDN controller
TN919.21
:A
10.11959/j.issn.1000-0801.2016179
何晓明(1968-),男,博士,中国电信股份有限公司广州研究院高级工程师,主要从事数据网络研究和支撑工作,研究兴趣包括网络架构、 协议、 流量 工程、SDN/NFV等,已发表论文 30 余篇,申请专利 26 项,获授权专利 10余项。
卢泉(1969-),女,中国电信股份有限公司广州研究院高级工程师,主要从事数据网络研究和支撑工作。
邢亮(1978-),男,中国电信集团公司网络运行维护事业部数据处工程师,主要从事数据网运行维护管理工作。
2016-04-14;
:2016-06-14