【转】SDN 关键技术 — Segment Routing 协议简介

当前,SDN 作为一种新的网络架构,已经成为行业高度关注的热点。其倡导的开放式网络,代表了从网络应用适应网络能力向网络能力主动适配网络应用需求这个网络建设理念的改变。转发与控制分离、集中的控制层面、开放的网络编程接口是 SDN 网络架构的主要特征。

OpenFlow 作为最主要的 SDN 协议,希望以一种全新转发协议颠覆现有以 IP、MPLS 网络架构。但是,这种激进的演进方式没有得到设备厂家及电信运营商的支持,通过对现有网络协议进行扩展和优化,推动现有网络平滑演进,实现网络开放的目标才是更加可行的选择。

Segment Routing 就是这样的背景下,由 IETF 推动的支持 SDN 架构的新型路由转发协议。目前,Segment Routing 还处于草案阶段,但是已经形成了完整的体系架构,并得到了大部分设备厂家的支持。

1. Segment Rouging 介绍

Segment Routing 是一种源路由机制,用于优化 IP,MPLS 的网络能力。可以使网络获得更佳的可扩展性,并以更加简单的方式提供 TE、FRR、MPLS VPN 等功能。在未来的 SDN 网络架构中,Segment Routing 将为网络提供和上层应用快速交互的能力。

2. Segment Rouging 工作原理

和 MPLS 的网络类似,Segment Routing 也是以标签交换为基础的。但是和 MPLS 网络需要依靠 LDP,RSVP 等外部协议实现标签的分发、TE 等功能不同,Segment Routing 只是对现有的 IGP 协议进行简单的扩展,就可以实现 TE、FRR、MPLS VPN 等功能。

在 Segment Routing 的网络中,通过 Segment 表示网络前缀。在当前的 Segment Routing 草案中,定义了两种 Segment:Nodal Segment 和 Adjacency Segment。

  • Nodal Segment 是全局标签,每一个节点都会分配全局唯一的 Nodal Segment,通常使用 Loopback 接口的地址;
  • Adjacency Segment 是本地标签,在本地有效,用于表示特定的 SR 节点(不需要全局唯一)。
图 1 拓扑图
图 1 拓扑图

在图 1 所示的拓扑中,我们假定所有的路由器都启用了 IS-IS 或者 OSPF 协议,链路都有相同的 metric。每一个 SR 节点的都有自己的 Nodal Segment,并通过 IGP 协议通告其他节点。一个 SR 节点,通过 IS-IS 或者 OSPF 协议,可以自动建立起表示到其它 SR 节点最短转发路径的一组 segments(类似 MPLS 标签栈)。Adjacency Segment 则和通往某一邻接设备的下一跳节点相关联:

(1) 每一个节点都会将 loopback 地址作为自己全局标签(Nodal Segment),其他 SR 数据层面的节点都会接收这一信息。在图 1 中,节点 B 的 Nodal Segment 是 70,节点 S 和 R 就使用 70 来计算到达 B 的路径。

(2) 在图 1 中,F 为 B – F 之间的链路分配了 Adjacency Segment 10000(本地有效),并通过 IGP 通告出去。我们可以这样理解 Nodal Segment 和 Adjacency Segment 。管理者给网络分配了一个 Segment 地址块,我们从这个地址块中为每一个 SR 节点分配 Nodal Segment,以保证其全局唯一性。而 Adjacency Segment 是在这个地址块之外的,由每个节点自行分配的。

通过上述的示例,我们可以看到:通过将 Nodal Segment 和路由前缀相关联,我们可以通过最短路径到达任意节点,而转发路径是一条还是等价多路径负载分担,则取决于网络的 IGP 拓扑。

3.Segment Rouging 示例

我们通过两个具体的示例来看 Segment Rouging 的工作原理:

示例 1(图 2):节点 R 通告自己的 Nodal Segment 70 给所有的节点。如果 S 要到达 R,使用 Segment 70 进行选路(源路由),Segment 70 代表的转发路径集成了 IGP 协议的 ECMP 属性。在图 2 所示的报文转发过程中,S 为报文标记了 Segments 列表 {70},在节点 B 和 D,因为 R 是他们的直连节点,Segment 70 将从列表中弹出,然后按照 IGP 转发路径把报文发给 R 。

图 2 示例 1
图 2 示例 1

示例 2(图 3):通过使用 Adjacency Segment (Fig. 3),可以引导流量经过特定的节点和端口。在图 3 所示的网络拓扑中,如果 S 希望通过 B 和 D 之间的链路到达 R,那么我们在转发路径的源节点使用 { 71, 10000, 70 } 的 Segments 列表。首先 S 通过 IGP 路由把报文发给 71 所代表的 B 节点。当报文到达 A 节点时,因为 B 是 A 节点的下一跳,所以 A 节点会将 71 弹出,然后将报文发给 B。B 节点会根据 adj. segment 将报文发给 D,然后 D 使用 IGP 路径把报文转发到 R 。

图 3 示例 2
图 3 示例 2

Segment Routing 定义的 Segment 为 32 bit,在 MPLS 的环境中,使用最右侧的 20 Bit 最为标签值,MPLS 标签栈代表了 Segments 列表。Segment Routing 可以转发 IPv4 / IPv6 报文,并可以和 LDP、RSVP 等协议共同控制网络。

4.Segment Rouging 应用场景

(1) 提供快速重路由保护:SR 可以独立提供 FRR 保护,而不需要依靠 RSVP 协议(传统的 MPLS TE 需要部署 RSVP 协议)。

(2) 实施流量工程(Traffic Engineering),可以依据带宽、时延等网络参数,主流的定义基于 CoS 的服务策略。
(3) 应用于 SDN 网络架构:一个可编程的开放网络,应该是易操作的、可扩展的。和 LDP、RSVP 等协议相比,Segment Routing 在易操作和扩展性方面有明显的优势。

 

来源:中国移动设计院技术通讯

本站声明:本站原创文章仅代表作者观点,不代表 SDNLAB 立场。转载须注明来自 SDNLAB 并附上本文链接。
本文链接:http://www.sdnlab.com/16784.html
本文标签:技术 / tech

 

其他相关文章:

这篇文章对你有帮助吗?

相关文章

发表评论?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据