当前,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在易操作和扩展性方面有明显的优势。
 
来源:中国移动设计院技术通讯

SDN关键技术-Segment Routing协议简介的更多相关文章

  1. GRE 协议简介

    1. 协议简介    gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络 ...

  2. 解读:20大5G关键技术

    解读:20大5G关键技术 5G网络技术主要分为三类:核心网.回传和前传网络.无线接入网. 核心网 核心网关键技术主要包括:网络功能虚拟化(NFV).软件定义网络(SDN).网络切片和多接入边缘计算(M ...

  3. Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)

    作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复 Go 即可查看清晰知识大图! 导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的 ...

  4. 小小知识点(二十七)20大5G关键技术

    5G网络技术主要分为三类:核心网.回传和前传网络.无线接入网. 核心网 核心网关键技术主要包括:网络功能虚拟化(NFV).软件定义网络(SDN).网络切片和多接入边缘计算(MEC). 1 网络功能虚拟 ...

  5. Go 开发关键技术指南 | 敢问路在何方?(内含超全知识大图)

    作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 Go 开发关键技术指南文章目录: 为什么你要选择 Go? Go 面向失败编程 带着服务器编程金刚经走进 2020 年 敢问路在何方? Go 开发指南大图 ...

  6. 5G关键技术评述

    业内重大事件: 张  平:无线通信领域专家,北京邮电大学教授,博士生导师,现任北京邮电大学无线新技术研究所(WTI)所长.泛网无线通信教育部重点实验室主任以及中德软件研究所副所长.张平教授是国家宽带无 ...

  7. JavaWeb:Web与HTTP协议简介

    JavaWeb:Web与HTTP协议简介 Web的概念 什么是Web: Web是网络上使用最广泛的分布式应用架构. 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息. 三个特征: 用HTM ...

  8. 实时视频应用之QoS关键技术分析

    转自:http://www.aiweibang.com/m/detail/104476372.html?from=p 随着WebRTC标准的逐步推广,实时音视频通讯技术受到越来越多公司和技术人员的关注 ...

  9. <脱机手写汉字识别若干关键技术研究>

    脱机手写汉字识别若干关键技术研究 对于大字符集识别问题,一般采用模板匹配的算法,主要是因为该算法比较简单,识别速度快.但直接的模板匹配算法往往无法满足实际应用中对识别精度的需求.为此任俊玲编著的< ...

随机推荐

  1. double check 解决单例模式的多线程并发问题

      最近被多线程问题(multi-thread issue)弄昏了头.以前虽然也知道系统里要考虑多线程问题,也无数次见到double-check的代码,但是由于自己碰到这方面的问题基本上就是从其他地方 ...

  2. 快速搭建一个成熟,强壮的App框架【转载】

    App框架搭建 招聘信息: iOS 研发工程师 iOS开发工程师 iOS开发实习工程师 新浪微博-Android开发工程师&iOS开发工程师 美术设计师(2D) UI设计师 cocos2dx手 ...

  3. Ext如何Gird中如何显示时间类型的列?

         rt,后台bean中的字段属性是Date类型,前台的model中的字段属性也设置为date类型,但是还是显示不出来,如何解决呢? 直接代码: grid中的COLUMN: Model中的定义:

  4. 初始化map和list的两种写法

    第一种方法(常用方法): //初始化List List list = new ArrayList(); list.add("string1"); list.add("st ...

  5. emacs的常用配置备份

    据说有人搞丢了自己的emacs的配置,然后一怒之下抛弃了emacs投身vim,我还是做个emacs配置的备份吧, 虽然我现在也算不上emacs的发烧友. 这里的配置大多是从网上参考的,最多的是下面的链 ...

  6. 谷歌宣称web组件才是web开发的未来

    谷歌宣称web组件才是web开发的未来 虽然今年的谷歌I/O大会没有出现像去年谷歌眼镜发布时直播疯狂跳伞这样的活动,但是上周仍然有不少产品推出.谷歌宣布对谷歌地图.搜索.安卓,以及其他 很多产品做出更 ...

  7. 64位win7环境eclipse集成svn后出现Failed to load JavaHL Library的解决办法

    http://lushuifa.iteye.com/blog/2038000

  8. mongodb 指南

    mongodb概述 mongodb安装 mongodb启动参数 mongodb权限体系 mongodb管理命令 mongodb备份恢复

  9. 转载 OS js oc相互调用(JavaScriptCore) ---js调用iOS ---js里面直接调用方法

    OS js oc相互调用(JavaScriptCore)   接着上节我们讲到的iOS调用js 下来我们使用js调用iOS js调用iOS分两种情况 一,js里面直接调用方法 二,js里面通过对象调用 ...

  10. 洛谷P2296 寻找道路==codevs3731 寻找道路

    P2296 寻找道路 题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点 ...