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在易操作和扩展性方面有明显的优势。
来源:中国移动设计院技术通讯
- 本站声明:本站原创文章仅代表作者观点,不代表SDNLAB立场。转载须注明来自 SDNLAB并附上本文链接。
- 本文链接:http://www.sdnlab.com/16784.html
SDN关键技术-Segment Routing协议简介的更多相关文章
- GRE 协议简介
1. 协议简介 gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络 ...
- 解读:20大5G关键技术
解读:20大5G关键技术 5G网络技术主要分为三类:核心网.回传和前传网络.无线接入网. 核心网 核心网关键技术主要包括:网络功能虚拟化(NFV).软件定义网络(SDN).网络切片和多接入边缘计算(M ...
- Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)
作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复 Go 即可查看清晰知识大图! 导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的 ...
- 小小知识点(二十七)20大5G关键技术
5G网络技术主要分为三类:核心网.回传和前传网络.无线接入网. 核心网 核心网关键技术主要包括:网络功能虚拟化(NFV).软件定义网络(SDN).网络切片和多接入边缘计算(MEC). 1 网络功能虚拟 ...
- Go 开发关键技术指南 | 敢问路在何方?(内含超全知识大图)
作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 Go 开发关键技术指南文章目录: 为什么你要选择 Go? Go 面向失败编程 带着服务器编程金刚经走进 2020 年 敢问路在何方? Go 开发指南大图 ...
- 5G关键技术评述
业内重大事件: 张 平:无线通信领域专家,北京邮电大学教授,博士生导师,现任北京邮电大学无线新技术研究所(WTI)所长.泛网无线通信教育部重点实验室主任以及中德软件研究所副所长.张平教授是国家宽带无 ...
- JavaWeb:Web与HTTP协议简介
JavaWeb:Web与HTTP协议简介 Web的概念 什么是Web: Web是网络上使用最广泛的分布式应用架构. 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息. 三个特征: 用HTM ...
- 实时视频应用之QoS关键技术分析
转自:http://www.aiweibang.com/m/detail/104476372.html?from=p 随着WebRTC标准的逐步推广,实时音视频通讯技术受到越来越多公司和技术人员的关注 ...
- <脱机手写汉字识别若干关键技术研究>
脱机手写汉字识别若干关键技术研究 对于大字符集识别问题,一般采用模板匹配的算法,主要是因为该算法比较简单,识别速度快.但直接的模板匹配算法往往无法满足实际应用中对识别精度的需求.为此任俊玲编著的< ...
随机推荐
- freemarker 展示数据列表并传值给后台
select id="initiatorId" name="initiatorId"> <#if initiato ...
- MSP430G2553电子时钟实验
用msp430g2553控制1602液晶显示时间,并能够通过按键设置时间.我做了正计时和倒计时两种模式 /*********************************************** ...
- 如何在struts2中实现下载?
<a href="${pageContext.request.contextPath}/download?filename="+filename>点击下载</a& ...
- Java线程—-Runnable和Callable的区别和联系
Java 提供了三种创建线程的方法 1.继承Thread接口 public class Thread2Thread { public static void main(String[] args) { ...
- Unity合并选中物体的Mesh
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; pu ...
- ios错误ignoring file xxx missing required architecture x86_64 in file
错误ignoring file xxx missing required architecture x86_64 in file 解决方法: 1.在Project target里“Architectu ...
- WinForm开发----关闭window窗体最好的办法
最近有一人问道,如何切换窗体.一想到这,我就想,不就是new一个form,然后就show么? 可是我发现,当你控制某个属性的时候,不是不能控制,只是很麻烦而已.有没有好的办法?当然有,咋办? 最简单最 ...
- Hibernate 表连接hql语句
现有两个表 user 表 和 VIPcard 表 UserVo user VIPcardVo 中含有 UserVo user select v from VIPCardVo v left join ...
- JAVA面试题——JAVA编程题1(2015.07.22)
实现代码很简单: package com.xiaozan.shopping; import java.util.Arrays; public class ShoppingCart { ...
- WINDOWS的用户和用户组说明
1.基本用户组 Administrators 属于该administators本地组内的用户,都具备系统管理员的权限,它们拥有对这台计算机最大的控制权限,可以执行整台计算机的管理任务.内置的系统管理员 ...