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的网络类似,SegmentRouting也是以标签交换为基础的。但是和MPLS网络需要依靠LDP,RSVP等外部协议实现标签的分发、TE等功能不同,Segment Routing只是对现有的IGP协议进行简单的扩展,就可以实现TE、FRR、MPLS VPN等功能。
在Segment Routing的网络中,通过Segment表示网络前缀。在当前的Segment Routing草案中,定义了两种Segment:Nodal Segment和AdjacencySegment。
Nodal Segment是全局标签,每一个节点都会分配全局唯一的Nodal Segment,通常使用Loopback接口的地址。
Adjacency Segment是本地标签,在本地有效,用于表示特定的SR节点。(不需要全局唯一)
图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 Segment10000(本地有效),并通过IGP通告出去。
我们可以这样理解Nodal Segment和Adjacency Segment。管理者给网络分配了一个Segment地址块,我们从这个地址块中为每一个SR节点分配Nodal Segment,以保证其全局唯一性。而Adjacency Segment是在这个地址块之外的,由每个节点自行分配的。
通过上述的示例,我们可以看到:通过将Nodal Segment和路由前缀相关联,我们可以通过最短路径到达任意节点,而转发路径是一条还是等价多路径负载分担,则取决于网络的IGP拓扑。
3.Segment Rouging 示例
我们通过两个具体的示例来看SegmentRouging的工作原理:
示例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(图3):通过使用AdjacencySegment(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
Segment Routing定义的Segment为32bit,在MPLS的环境中,使用最右侧的20Bit最为标签值,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在易操作和扩展性方面有明显的优势。
来源:中国移动设计院技术通讯