前言
在1997年,MPLS网络的推出,其采用标签交换,一个标签对应一个用户数据流的方式,非常易于用户间数据的隔离,利用区分服务体系轻易地解决困扰传统IP网络的QoS/CoS问题,同时MPLS自身提供流量工程的能力,可以最大限度地优化配置网络资源,自动快速修复网络故障,提供高可用性和高可靠性。然而,为了满足越来越多的应用需求,MPLS技术在过去20多年一直在做加法,功能不断丰富的同时,也带来了实施和使用上的复杂性。
segment Routing的概念和技术体系在2013年首次提出,短短四年间已经获得了业界的广泛支持,并已经在国内外顶级运营商的网络中开始实际部署。Segment Routing的源路由和无状态特性,使得其成为SDN/NFV在IP网络上下一步发展的关键技术,其超大规模组网能力也是实现IP网络端到端运营调度和网络重构的基础。
Segment Routing是继MPLS之后,IP领域最重要的创新,得到了业界的广泛支持,并逐渐成为SDN的主流网络架构标准。
本文通过讲述Segment Routing的诞生、产生SR的驱动力、SR的工作方式、SR的相关基础概念以及SR的应用场景,带大家初步认识SDN网络新兴技术Segment Routing。
01什么是SR?
Segment Routing,分段路由是基于源路由理念而设计的在网络上转发数据包的协议,借助MPLS转发平面实现数据转发,Segment Routing将网络路径分成一个个段,并且为这些段和网络中的转发节点(Node)分配段标识ID,通过对段和网络节点进行有序的排列(Segment List),得到一条完整的转发路径。
02SR的诞生
关于SR命名的来源,传闻来源于SR项目组的一次罗马经历,SR名字由来于“通往罗马之路”,意大利语中SR即“Strade Romane”,也就是我们经常听到的“All roads lead to Rome”,“条条大路通罗马”,通过组合多条道路,罗马人可以去往罗马帝国内的任意地方。
Clarence Filsfils是Segment Routing技术的发明者和推动者,拥有超过 40 项相关专利;在思科工作的 20 年间,Clarence Filsfils 拥有极其丰富的创新、产业化、市场推广和实际部署经验,受到全球运营商、OTT 和大型企业客户的尊敬和信赖。
2012年,项目组成立
2015年,SR加速成熟,思科路由器支持SR-TE后,用户开始批量部署
2016年,国内外顶级电信运营商和互联网公司开始使用SR技术
2017年,Linux4.0正式版本开始支持SR
2018年,PFC标准:PFC8402,落实SR技术
03SR产生的驱动力
优雅的MPLS数据平面很少受到挑战,但是人们越来越明显地感觉到MPLS经典的控制平面(LDP、RSVP-TE)过于复杂,且缺乏可扩展性。
SR的技术优势,进一步驱动了SR应用的大规模部署应用。
04SR的工作方式
在SR项目的早期,SR项目组用飞机行李转运的行李标签向没有相关技术背景的人员解释,SR是如何工作的。以一个行李,从德国慕尼黑机场(MUC)到日本成田机场(NRT),途径美国亚特兰大机场(ATL)为例。
如上图,当一个包裹在始发机场给行李贴上一个标签“慕尼黑(MUC)à亚特兰大(ATL)à成田(NRT)”,这样的话,航空传输系统中的每个站点不需要再识别单个行李的完整路径,只需要识别几千个机场的代码,如MUC代表慕尼黑机场等,通过行李的标签代码,就可以按照标签将行李发往指定的目的地机场。
SR的做法其实完全相同,一个prefix Segment代表一个机场代码,报文中的segment代表着行李上的标签,源节点知道数据包的特定要求,按照此编码为segment列表,压入报头中,网络中的其他设备不需要知道此数据包的特定要求,只需要知道,怎么处理prefix segment即可。
上图中,当一个数据包从,Site_A需要转发到Site_B时,当Site_A为数据包压入一个(16002à28003à16006)segment-list时,当路径中的网络节点进行转发时,只需要按照标签顺序去转发数据包,并不需要关注数据包的来源等,最终流量会按照图中紫色虚线进行转发。
05SR相关概念
源路由
源路由器为要转发的数据包选择一个路径,并将其作为segment-list编码到数据包的包头中,网络中其余的路由器,执行编码的指令,并进行转发。
Segment Routing转发平面
MPLS转发平面
Segment-List体现为MPLS的标签
Segment Routing可以利用现有的MPLS数据平面
Segment即MPLS标签
可用于IPv4或IPv6地址簇
IPv6转发平面
Segment-List体现为路由扩展报头中的多个IPv6地址
全局Segment、本地Segment
Global Segment(全局Segment)
SR域中的每个节点都安装了该Segment的相关指令
在MPLS SR中体现为SRGB中的全局标签值
Local Segment(本地Segment)
- 只有该Segment的始发节点明白该Segment的相关指令
- MPLS SR中体现为本地分发的标签
以R1àR3的两条路径为例,蓝色路径中的{16002,16003},为全局segment,SR域中任一节点都明白Segment的相关指令,流量按照R1àR2àR3转发;红色路径中{16004,27003,16003},其中27003位本地segment,引导流量转发至R4连接R5的互联俩路中的其中一根链路,流量按照R1àR4à(27001对应链路)àR5àR3进行转发。
全局标签索引
Segment Routing控制平面
06SR的应用场景
SR应用的最终目标是实现通过应用驱动网络,应用提出网络需求àSDN规划路径à网络设备转发数据。
应用场景1:路径分离服务
路径选择就如同机场VIP通道服务,通过对路径的规划,使得重要的流量得到优先的转发保障。
1)无Segment Routing
R1àR2:只能通过负载均衡或强制单一路径
2)有Segment Routing
R1àR2:不同业务自由定义,动态规划,可以根据不同的业务需求定义不同的路径,保障关键业务的转发
应用场景2:路径质量规划
路径质量规划就如同地图导航,以从齐齐哈尔到海口为例,会有三条路径进行选择,我们可以根据自身需求,规划路径,如:时间最短、公里数最短、收费最少等,亦可选择不走高速,躲避拥堵等等;SR也可以根据网络延时、开销、带宽、抖动等为特定的业务需求选择特定的数据转发路径。
1)无Segment Routing
R1àR2:只能通过负载均衡或强制单一路径
2)有Segment Routing
R1àR2:不同业务自由定义,动态规划,可以根据不同的业务需求定义不同的路径,保障关键业务的转发
应用场景3:端到端统一数据平面
作者:江十一
,