一种基于MPLS的SDN业务隔离及选路的方法和装置
本申请要求于2017年3月30日提交中国专利局、申请号为201710202668.8、发明名称为“一种基于MPLS的SDN业务隔离及选路的方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,具体涉及一种基于MPLS的SDN业务隔离及选路的方法。本申请同时提供一种基于MPLS的SDN业务隔离及选路的装置。
背景技术
在传统网络中,点到点的二层业务的隔离封装通过VLAN/VXLAN(layer2)技术或者L2VPN(Layer2.5)技术实现。在传统设备里的实现是通过地址学习,协议交互来自动完成,用户的流量无感知的穿透网络。对传统设备的要求是设备必须支持复杂的协议,增加了设备的成本,同时对网络运维团队增加了运维复杂度。
SDN(Software Defined Network,软件定义网络),是一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。在SDN引入进来后,通过SDN控制器对支持OpenFlow的网络设备可以直接操作转发表。摒弃了转发层面复杂的协议,可以很简便的操作用户的流量流向。SDN网络提供的点到点二层业务对用户来说更透明,用户组网的更为自由和便捷。
SDN通过将设备的控制和数据转发解耦,使用集群式的软件控制器对设备集中控制,使得对网络的控制和维护工作能够简单的通过对控制面设备的操作实现,从而提高网络的管理效率,并使得转发面设备更为简单化,有利于实现转发设备的高性能和可重用性。
OpenFlow协议在SDN中起着重要作用,解决了传统协议的限制,在业务扩展性,与控制器交互的实时性上提供了可行的解决方案。在OpenFlowl.3中,定义了39个关键字。控制器可以决定使用什么方式来完成转发控制,比如先匹配用户接入的端口,vlan,IP地址,再决定相应的动作。
OpenFlow交换机,遵循OpenFlow协议,维护FlowTable并且按照FlowTable进行转发。通过控制器下发的特定流表,OpenFlow交换机通过将数据包中的各个字段和FlowTable中的规则的匹配结果,确定对该数据包的执行动作。
如图1所示,以一张SDN典型网络为例:
在一张SDN网络,网络的组成都是由OpenFlow Switch(简称OFS)互联组成,图1中有1个控制器controller,4个OpenFlow Switch,分别为:OpenFlow Switch-1、OpenFlowSwitch-2、OpenFlow Switch-3和OpenFlow Switch-4。controller与OpenFlow Switch之间通过控制网络相连。Controller具有控制所连接着的OpenFlow Switch的所有OpenFlow行为的权限,包含新增、删除、修改流,得到端口、流、流表的统计信息,更改端口配置,发送报文等功能。图中有2个用户终端:用户终端U1、用户终端U2分别接入在这张网络拓扑上,网络提供点到点的二层业务。用户终端可通过数据通道与OpenFlow Switch相互通信,实现报文转发。U1-A与U1-Z分别代表U1的2个接入端。U2-A与U2-Z分别代表U2的2个接入端。控制器Controller分别给U1,U2分配了不同路径。
如图2所示,U1的路径:
表1
如图3所示,U2的路径:
表2
SDN控制器对于路径上的OFS下发的流表规则至关重要,按照OpenFlow协议定义,可以基于OFS Port,基于用户的流量特征(VLAN,IP,TCP等)来识别,动作也很多,设备限速策略,设置vlan,label等操作。
目前传统的SDN网络中,进行转发策略制定和下发的方式通常是基于端口或者VLAN。
基于端口的转发策略,以OFS-1为例的流表策略:
表3
基于VLAN的实现方式是参考传统2层封装将用户的流量封装到VLAN中,用户的入流量在接入侧可以打上vlan标记,在骨干侧则通过vlan来标识用户,从而可以在骨干区分业务。以OFS-1为例的流表策略:
表4
在SDN网络中使用基于Port的流表策略时,单端口无法进行用户的隔离和复用,链路发生切换时,无法提高链路的利用率,且在故障或者用户自助调整路径时只能按端口进行切换,灵活性差。
基于VLAN的流表策略,限制也很明显:
1、用户侧如果自身带VLAN标记接入,需要额外的进行VLAN转化处理,控制器处理上更复杂。
2、VLAN的资源最大只有4096,只能支持4096条用户的业务路径,对于用户规模大的网络(尤其是支持云计算应用租户的网络)不适用。
3、当SDN网络中间穿透一个传统二层网络时,VLAN的设置会与传统网络冲突。
由于上述问题的存在,使现有基于端口和vlan的业务隔离和转发都存在较大的局限性问题。
发明内容
本发明提供一种基于MPLS的SDN业务隔离及选路的方法,以实现在点到点二层业务场景中,使得用户的流量无感知的穿透SDN网络,简便的做到用户不同流量的隔离封装,简便的使已完成隔离封装的业务单独选择路径。
本发明公开了一种基于MPLS的SDN业务隔离及选路的方法,当新建业务时,该方法包括:
接收新建业务请求;
定义业务接入属性,根据所述业务接入属性进行分发内层标签资源;
判断是否复用路径;若是,则复用已有的外层标签资源;若否,则计算业务路径,并定义设备角色,根据可用路径分发外层标签资源;
基于路径上每个设备角色、所述内层标签资源和所述外层标签资源生成流表;
将所述流表下发到设备。
可选的,所述内层标签资源和所述外层标签资源各自具有一个固定范围,分别在所述固定范围内以轮询或者随机方式分发。
可选的,所述定义业务接入属性是基于用户的两端接入端口和报文属性进行定义。
可选的,所述基于路径上每个设备角色、所述内层标签和所述外层标签资源生成流表具体为:
基于所述内层标签生成接入端的设备的流表;基于所述设备角色和外层标签生成路径上的设备的流表。
可选的,接入端的设备负责封装业务到所述内层标签,骨干设备负责基于路径的外层标签的转发,次末跳设备剥离所述外层标签,末跳设备剥离所述内层标签并还原用户的二层协议,转发到用户端口。
可选的,所述将所述流表下发到设备,是采用单向业务流的逐跳倒序的方式;当最后一跳下发完成后,整个业务路径才生效,当过程中有任何异常时,回收路径流量。
可选的,在所述生成流表之后还包括:
判断所述流表是否下发成功,若是,则记录信息,并跟踪链路状态;若否,则删除所有已下发的流表。
可选的,所述判断是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。
可选的,所述删除所有已下发的列表之后还包括:
判断是否删除完毕,若是,则回收所有标签资源,并返回错误信息;若否,则预留资源,并返回错误信息。
本发明还公开了一种基于MPLS的SDN业务隔离及选路的方法,当删除业务时,该方法包括:
接收业务删除请求;
基于业务查询原路径上每个节点的资源情况;
判断是否复用路径,若否,则根据业务接入节点回收流表,若是,则根据路径上的节点回收流表。
可选的,在所述回收业务接入节点或所述根据路径上的节点回收流表之后,还包括:
判断所述流表是否下发成功,若是,则回收所有标签资源,并返回错误;若否,则预留所有标签资源,并返回错误。
可选的,所述判断是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。
可选的,所述根据业务接入节点回收流表,具体为触发接入节点将流表删除;所述根据路径上的节点回收流表,具体为逐跳删除路径上所有节点的流表。
本发还公开了一种基于MPLS的SDN业务隔离及选路的方法,当业务路径变更时,该方法包括:
接收业务路径变更请求;
重新计算业务路径;
定义设备角色,根据可用路径分发外层标签资源;
基于路径上每个设备角色和标签资源生成流表;
将所述流表下发到设备。
可选的,所述外层标签资源携带有高优先级的流表,按照流方向倒序的方式逐跳下发到设备,当最后一跳完成下发,业务的流量切换到新路径上。
可选的,在所述将所述流表下发到设备之后,还包括:
判断所述流表是否下发成功;若是,则删除原流表,回收原标签资源,并返回错误;若否,则删除所有已下发的流表。
可选的,所述判断是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。
可选的,所述删除原流表,具体为根据原路径触发删除原流表。
可选的,在所述删除所有已下发的流表之后,还包括:
判断是否删除完毕;若是,则回收所有标签资源,并返回错误信息;若否,则预留资源,并返回错误信息。
可选的,所述回收所有标签资源,具体为当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
本发明还公开了一种基于MPLS的SDN业务隔离及选路的装置,包括:
第一接收单元,用于接收新建业务请求;
第一分发单元,用于定义业务接入属性,根据所述业务接入属性进行分发内层标签资源;
第一判断单元,用于判断是否复用路径;若是,则复用已有的外层标签资源;若否,则计算业务路径,并定义设备角色,根据可用路径分发外层标签资源;
第一生成单元,用于基于路径上每个设备角色、所述内层标签资源和所述外层标签资源生成流表;
第一下发单元,用于按一定规则将所述流表下发到设备。
可选的,所述内层标签资源和所述外层标签资源各自具有一个固定范围,分别在所述固定范围内以轮询或者随机方式分发。
可选的,所述第一分发单元是基于用户的两端接入端口和报文属性进行定义业务接入属性。
可选的,所述第一生成单元具体用于基于所述内层标签生成接入端的设备的流表;基于所述设备角色和外层标签生成路径上的设备的流表。
可选的,所述第一下发单元,用于将所述流表下发到设备,是采用单向业务流的逐跳倒序的方式;当最后一跳下发完成后,整个业务路径才生效,当过程中有任何异常时,回收路径流量。
可选的,还包括:
第二判断单元,用于判断所述流表是否下发成功,若是,则记录信息,并跟踪链路状态;若否,则删除所有已下发的流表。
可选的,所述第二判断单元判断是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。
可选的,还包括:
第三判断单元,用于判断是否删除完毕,若是,则回收所有标签资源,并返回错误信息;若否,则预留资源,并返回错误信息。
本发明还公开了一种基于MPLS的SDN业务隔离及选路的装置,包括:
第二接收单元,用于接收业务删除请求;
查询单元,用于基于业务查询原路径上每个节点的资源情况;
第四判断单元,用于判断是否复用路径,若否,则根据业务接入节点回收流表,若是,则根据路径上的节点回收流表。
可选的,还包括:
第五判断单元,用于判断所述流表是否下发成功,若是,则回收所有标签资源,并返回错误;若否,则预留所有标签资源,并返回错误。
可选的,所述第五判断单元,具体用于当每一跳设备预定义的流表下发完成后即为下发成功;若任何一台设备流表下发失败即为下发不成功。
可选的,所述第四判断单元根据业务接入节点回收流表,具体为触发接入节点将流表删除;所述根据路径上的节点回收流表,具体为逐跳删除路径上所有节点的流表。
本发明还公开了一种基于MPLS的SDN业务隔离及选路的装置,包括:
第三接收单元,用于接收业务路径变更请求;
计算单元,用于重新计算业务路径;
第二分发单元,用于定义设备角色,根据可用路径分发外层标签资源;
第二生成单元,用于基于路径上每个设备角色和标签资源生成流表;
第二下发单元,用于将所述流表下发到设备。
可选的,所述外层标签资源携带有高优先级的流表,所述第二下发单元按照流方向倒序的方式逐跳下发到设备,当最后一跳完成下发,业务的流量切换到新路径上。
可选的,还包括:
第六判断单元,用于判断所述流表是否下发成功;若是,则删除原流表,回收原标签资源,并返回错误;若否,则删除所有已下发的流表。
可选的,所述第六判断单元,具体用于当每一跳设备预定义的流表下发完成后即为下发成功;若任何一台设备流表下发失败即为下发不成功。
可选的,所述第六判断单元具体用于根据原路径触发删除原流表。
可选的,还包括:
第七判断单元,用于判断是否删除完毕;若是,则回收所有标签资源,并返回错误信息;若否,则预留资源,并返回错误信息。
可选的,所述第六判断单元或所述第七判断单元回收所有标签资源,具体为当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
与现有技术相比,本发明具有以下优点:
本发明在SDN网络中,引入OpenFlow协议定义的MPLS操作方式,基于标签转发的方式使控制器资源管理上统一,转发设备的流表统一,业务路径都可以简便的管理,可以很好的兼容业务开通,在大型SDN网络中应用。在MPLS转发的基础上,利用MPLS的双层标签,在支持用户隔离的前提下,同时能复用链路资源,减少骨干链路管理复杂度。在MPLS的双层标签策略下,利用次末跳弹出,可以解决最后一跳流表的复杂度。通过控制器利用标签与业务的映射,合理的标签管理方式,如双层标签分配,次末跳弹出的策略,倒序流表下发的方式,高优先级并行流表的备份路径,这些增强的特性使得业务切换更灵活,影响更低,管理更简便。针对MPLS标签的控制器策略映射和下发的方法在路径发生变化的情况下通过倒序下发流表的方式,进行路径切换,将业务影响降低到最低。在路径发生变化的情况下通过设定优先级策略生产备用路径的方法。使用双层标签:接入侧标签标识业务封装,骨干侧的基于单一标识转发,在接入侧可以业务复用,在骨干侧可以隧道复用。label的范围最大1 048576,远超出vlan的范围。通过控制器的标签回收,分配机制,有足够的容量支撑业务封装和路径封装。与传统二层网络协议无冲突,相互独立无影响。
附图说明
图1是现有的SDN典型网络的结构示意图;
图2是图1中U1的一种路径的结构示意图;
图3是图1中U2的一种路径的结构示意图;
图4是本发明的整体框架示意图;
图5是本发明实施例提供的一种基于MPLS的SDN业务隔离及选路的方法关于业务建立的流程示意图;
图6是本发明实施例提供的一种基于MPLS的SDN业务隔离及选路的方法关于业务删除的流程示意图;
图7是本发明实施例提供的一种基于MPLS的SDN业务隔离及选路的方法关于业务路径变更的流程示意图;
图8是图7中关于高优先级下发策略的方法的示意图;
图9是针对图7的一个具体实例的结构示意图;
图10是针对图7的另一个具体实例的结构示意图;
图11是本发明实施例提供的一种基于MPLS的SDN业务隔离及选路的装置结构示意图;
图12是本发明实施例提供的一种基于MPLS的SDN业务隔离及选路的装置结构示意图;
图13是本发明实施例提供的一种基于MPLS的SDN业务隔离及选路的装置结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
以下本发明中用到的技术名词:
SDN:Software Defined Networking,即软件定义网络,相对于传统网络的一种创新的新型网络架构,旨在实现使网络设备的数据平面和控制平面的彻底分离;
MPLS label:MPLS是利用标记(label)进行数据转发的。当分组进入网络时,要为其分配固定长度的短标记,并将标记与分组封装在一起,在整个转发过程中,交换节点仅根据标记进行转发。
OpenFlow:一种新的网络协议,在转发层面定义了新的网络交换模型,在控制层面定义了与转发设备通信的标准。
VPN:虚拟专用网络,在网络上建立专用网络,进行加密通讯。
VXLAN:Virtual Extensible LAN,虚拟可扩展局域网,是一种overlay的网络技术。
VLAN:虚拟局域网,将业务隔离在一个二层网络内。
OFS:OpenFlow Switch的简称。
P:是核心层设备,提供商路由器,服务提供商是不连接任何CE路由器的骨干网路由设备,它相当于标签交换路由器(LSR)。本发明中特指SDN网路中在业务路径上不与用户的设备直连的OFS。
PE:ProviderEdge,即Provide的边缘设备,服务提供商骨干网的边缘路由器,它相当于标签边缘路由器LER。本发明中特指SDN网路中的用户直连OFS。
SDN通过将设备的控制和数据转发解耦,使用集群式的软件控制器对设备集中控制,使得对网络的控制和维护工作能够简单的通过对控制面设备的操作实现,从而提高网络的管理效率,并使得转发面设备更为简单化,有利于实现转发设备的高性能和可重用性。
OpenFlow协议在SDN中起着重要作用,解决了传统协议的限制,在业务扩展性,与控制器交互的实时性上提供了可行的解决方案。在OpenFlowl.3中,定义了39个关键字。控制器可以决定使用什么方式来完成转发控制,比如先匹配用户接入的端口,vlan,IP地址,再决定相应的动作。
OpenFlow交换机,遵循OpenFlow协议,维护FlowTable并且按照FlowTable进行转发。通过控制器下发的特定流表,OpenFlow交换机通过将数据包中的各个字段和FlowTable中的规则的匹配结果,确定对该数据包的执行动作。
本发明提供的整体框架图,如图4所示,包括:业务建立、业务删除、业务路径变更三个部分。
本发明可支持的业务包括但不限于点到点二层业务,三层组网等。
如图5所示,其为本发明提供的一种基于MPLS的SDN业务隔离及选路的方法关于新建业务的实施例的流程示意图,所述方法包括如下步骤:
步骤S101:接收新建业务请求;
当用户向SDN控制器发送新建数据通信的业务请求时,SDN控制器收到该业务请求后,解析该业务请求消息,从业务请求消息中获取新建数据通信业务的通信两端信息和业务信息。
所述新建的业务是指端到端的二层数据通信业务。
步骤S102:定义业务接入属性,根据所述业务接入属性进行分发内层标签资源。
根据业务信息,定义业务接入属性,根据业务接入属性分发内层标签资源。
所述内层标签资源,根据所述业务接入属性进行分发。内层标签资源会有一个固定范围(假设1000-9999),在这个范围内轮询或者随机方式分配。将用户的接入属性与分发的标签,与接入的设备进行映射。内层标签可以基于一个用户,也可以基于一个用户不同的业务来定义,业务封装灵活。内层标签用于区分用户,外层标签用于区分路径。
可选的,所述内层标签资源和所述外层标签资源各自具有一个固定范围,分别在所述固定范围内以轮询或者随机方式分发。
其中,所述定义业务接入属性是基于用户的两端接入端口和报文属性进行定义。
定义业务接入属性:可以基于用户的2端接入端口,报文属性包括:Vlan,IP,DSCP,TCP等来定义业务接入。步骤S102完成之后,进行步骤S106。
步骤S103:判断是否复用路径;若是,则复用已有的外层标签资源,进行步骤S106;若否,则计算业务路径,进行步骤S104,并定义设备角色,进行步骤S105,根据可用路径分发外层标签资源,进行步骤S106。
控制器根据新建业务请求,新建业务的通信两端信息和新建业务的业务信息,在控制器存储的路径信息中查找是否存在可以复用的路径;如果存在可以复用的路径,则复用已有的外层标签资源;如果不存在可以复用的路径,则计算新建业务路径,并定义设备角色,根据可用路径分发外层标签资源。
外层标签资源用于选路,用于指示下一条到哪里;内层标签用于区分用户。
可选的,标签的资源管理可以是自定义的,只要在合理的标签范围之内。
当新建业务复用已经存在的可用路径的情况下,路径资源就不需要再重新分配。
若需要新建路径,则首先获取当前可用路径资源,分析当前可用路径的资源,选择最优的路径后,对选择的路径分配外层标签资源,并为路径上每一跳的设备定义角色。路径标签资源也会有一个固定范围(假设10000-20000)与内层标签资源分离,在这个范围内轮询或者随机分配。
若复用路径,故障时链路发生切换是整体切换,对复用的业务来说,收敛时间缩短。
步骤S106:基于路径上每个设备角色、内层标签资源和外层标签资源生成流表;
具体为:基于所述内层标签生成接入端的设备的流表;基于所述设备角色和外层标签生成路径上的设备的流表。
接入端的设备负责封装业务到所述内层标签,骨干设备负责基于路径的外层标签的转发,次末跳设备剥离所述外层标签,末跳设备剥离所述内层标签并还原用户的二层协议,转发到用户端口。
接入端的设备的流表基于内层标签来定义,路径上的设备流表基于设备的角色和外层标签来定义。接入端的设备负责封装业务到业务标签,骨干设备负责基于路径标签转发,次末跳设备会剥离路径标签,末跳设备会剥离业务标签并还原用户的二层协议,转发到用户端口。若没有次末跳弹出标签机制,需要在末跳设备上完成多级流表的映射和转发,增加业务复杂度。
步骤S107:将所述流表下发到相关设备。
将所述流表下发到相关设备,具体可以采用单向业务流的逐跳倒序的方式;只有最后一跳下发完成后,整个业务路径才生效,当过程中有任何异常时,都可以随时回收路径流量,这样将业务影响降到最低。
较佳地,在步骤S107之后还可以包括:
步骤S108:将所述流表下发到相关设备之后,判断所述流表是否下发成功,如果下发成功,则记录信息,并跟踪链路状态,进行步骤S109;如果下发失败,则删除所有已下发的流表,进行步骤S110。
可选的,所述是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。
每一跳设备预定义的流表下发完成后才能完成业务流程。若任何一台设备下发失败,需要走回滚流程,删除已下发的流表,回滚完成后,标签资源回收。若回收失败,标签还置为已分配的状态。这样避免脏流表的存在下,相同标签被重新分配到新业务。
在步骤S110之后还可以包括:
步骤S111:判断是否删除完毕,若是,则回收所有标签资源,进行步骤S112,并返回错误信息;若否,则预留资源,并返回错误信息,进行步骤S113。
所述回收所有标签资源,是指当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
如图6所示,其为本发明提供的一种基于MPLS的SDN业务隔离及选路的方法关于业务删除的实施例的流程示意图,所述方法包括如下步骤:
步骤S201:接收业务删除请求。
所述业务是指端到端的二层数据通信业务。当用户向SDN控制器发送业务删除请求时,SDN控制器收到业务删除请求后,解析该业务删除请求消息,从业务删除请求消息中获取需要删除的业务的通信两端信息和业务信息。
步骤S202:查询原路径。
所谓查询原路径:控制器根据业务删除请求,待删除业务的通信两端信息和待删除业务的业务信息,查询业务原路径;基于查询得到的业务原路径,查询路径上每个节点的资源情况。
步骤S203:根据获得的原路径信息,判断原路径是否被复用,如果原路径被复用,则回收业务接入节点,执行步骤S204;如果原路径没有被复用,则根据路径上节点回收流表,执行步骤S205。
判断原路径是否被复用,如果原路径被复用,只触发接入节点流表删除,简化整个操作流程。如果原路径没有被复用,需要逐跳删除路径上所有节点流表。当所有流表删除后,回收标签资源。
较佳地,步骤S204或步骤S205之后还可以包括:
步骤S206:判断流表是否下发成功,若是,则回收所有标签资源,步骤207,并返回错误;若否,则预留所有标签资源,并返回错误,步骤208。
回收所有标签资源是指:当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
所述是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。如图7所示,其为本发明提供的一种基于MPLS的SDN业务隔离及选路的方法关于业务变更除的实施例的流程示意图,所述方法包括如下步骤:
步骤S301:接收业务路径变更请求。所述业务是指端到端的二层数据通信业务。
当用户向SDN控制器发送业务路径变更请求时,SDN控制器收到该业务路径变更请求后,解析该业务路径变更请求消息,从业务路径变更请求消息中获取需要路径变更的业务的通信两端信息和业务信息。
步骤S302:重新计算业务路径。
所谓重新计算路径:控制器根据业务路径变更请求,待路径变更业务的通信两端信息和待变更路径的业务信息,查询并重新计算路径,得到最优的路径信息,根据得到的路径信息,为新路径分配新的资源;根据计算得到的新路径,获取路径上相关设备信息。
步骤S303:定义设备角色;根据可用路径分发外层标签资源。
步骤S304:基于路径上每个设备角色和外层标签资源生成流表。
步骤S305:下发流表到设备。
流表生成与下发:新分发外层标签资源会携带高优先级的流表,按照流方向倒序的方式逐跳下发到设备,只有最后一跳完成下发,业务的流量才会切换到新路径上。这样做的方式是保持原有路径不变,将改变降低到最小。
下面,倒序下发及高优先级下发策略的方法以一个具体实施例进行详细说明:
如图8所示,假设一个业务的原路径1->4->3,现变更到新路径1->2>3,流表操作的流程如下:
新分配资源,并且设置为优先级高的流表,下发顺序为:3,2,1。只有当1的流表下发完后,业务流程才会变更到新路径上。只要2,3出现任何问题,原有路径保持不变,流量不受影响。而在对于1的流表下发,切换动作是瞬时的,业务流量不中断。如果是按1,2,3下发流表,业务流量就已经切换,当2,3出现任何异常会到导致业务中断。
由于新资源使用了高优先级,原备份链路1->4->3还存在,当3,2,1流表下发异常时,只要删除1的新下发高优先级流表,就能快速切换到原链路。将整个切换过程降低到最小。
可选的,步骤S305之后还可以包括步骤S306:判断是否下发成功,若是,则删除原流表,进行步骤S307,并回收原标签资源,进行步骤S308;若否,则删除已下发的流表,进行步骤S309。
所述是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。控制器根据原路径触发删除OFS的原流表,业务已经在新路径上了,对业务无影响。
可选的,步骤S309之后还可以包括步骤S310:判断是否删除完毕,若是,则回收所有标签资源,并返回错误,进行步骤S311;若否,则预留资源,并返回错误,进行步骤S312。
所述回收原标签资源是指:当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
下面基于SDN典型网络拓扑来举例,如图9所示:
本发明引入传统MPLS中PE、P的概念,PE即用户的接入侧,P即网络骨干侧。对于U1-A-Z这一个业务来说,各设备的角色和定义如下:
OFS-2:PE节点,业务接入侧,完成对业务的业务标签和路径标签封装;
OFS-1:作为P节点根据label转发,同时作为次末跳需要弹出外层标签;
OFS-4:PE节点,作为业务出向的接入节点,匹配业务标签,还原用户的二层头(还原用户原以太网类型)转发到出接口。
表4
对于用户U2-A-Z,可以有2种模式提供业务服务,一种是路径复用,一种是路径独立。路径独立是分配一条新路径,使用新的资源来完成,与业务新建一致。当路径复用的情况下,路径标签与U1-A-Z一致,需要下发的流表如下:
表5
此过程中OFS-2与OFS-4对于H2-A-Z业务都是PE角色,负责业务标签的封装与解封装。
当中间链路发生切换时,基于流优先级生产备用路径的方法,新建一条高优先级链路,完成后再删除原来的流表。
如图10所示:OFS-2与OFS-1之间链路中断,原有业务切换到OFS-3的路径。在切换过程中对于U1-A-Z的业务流表下发顺序:
表6
采用的流表下发顺序是倒序方式,这样的操作,几乎对业务无影响。只有最后一跳完成以后流量才会切换到新路径上。高优先级匹配方式使得下发过程更可控,当有消息中断时对业务无任何影响。
相对应的,本发明还提供了一种基于MPLS的SDN业务隔离及选路的装置,如图11所示,包括:
第一接收单元11,用于接收新建业务请求;
第一分发单元12,用于定义业务接入属性,根据所述业务接入属性进行分发内层标签资源;
第一判断单元13,用于判断是否复用路径;若是,则复用已有的外层标签资源;若否,则计算业务路径,并定义设备角色,根据可用路径分发外层标签资源;
第一生成单元14,用于基于路径上每个设备角色、所述内层标签资源和所述外层标签资源生成流表;
第一下发单元15,用于按一定规则将所述流表下发到设备。
所述内层标签资源和所述外层标签资源各自具有一个固定范围,分别在所述固定范围内以轮询或者随机方式分发。
所述第一分发单元12是基于用户的两端接入端口和报文属性进行定义业务接入属性。
所述第一生成单元14具体用于基于所述内层标签生成接入端的设备的流表;基于所述设备角色和外层标签生成路径上的设备的流表。
所述第一下发单元15,用于将所述流表下发到设备,是采用单向业务流的逐跳倒序的方式;当最后一跳下发完成后,整个业务路径才生效,当过程中有任何异常时,回收路径流量。
可选的,还包括:
第二判断单元16,用于判断所述流表是否下发成功,若是,则记录信息,并跟踪链路状态;若否,则删除所有已下发的流表。
所述第二判断单元判断16是否下发成功,具体为:
当每一跳设备预定义的流表下发完成后即为下发成功;
若任何一台设备流表下发失败即为下发不成功。
可选的,还包括:
第三判断单元17,用于判断是否删除完毕,若是,则回收所有标签资源,并返回错误信息;若否,则预留资源,并返回错误信息。
本发明还公开了一种基于MPLS的SDN业务隔离及选路的装置,如图12所示,包括:
第二接收单元21,用于接收业务删除请求;
查询单元22,用于基于业务查询原路径上每个节点的资源情况;
第四判断单元23,用于判断是否复用路径,若否,则根据业务接入节点回收流表,若是,则根据路径上的节点回收流表。
较佳地,还包括:
第五判断单元24,用于判断所述流表是否下发成功,若是,则回收所有标签资源,并返回错误;若否,则预留所有标签资源,并返回错误。
所述第五判断单元24,具体用于当每一跳设备预定义的流表下发完成后即为下发成功;若任何一台设备流表下发失败即为下发不成功。
所述第四判断单元23根据业务接入节点回收流表,具体为触发接入节点将流表删除;所述根据路径上的节点回收流表,具体为逐跳删除路径上所有节点的流表。
本发明还提供了一种基于MPLS的SDN业务隔离及选路的装置,如图13所示,包括:
第三接收单元31,用于接收业务路径变更请求;
计算单元32,用于重新计算业务路径;
第二分发单元33,用于定义设备角色,根据可用路径分发外层标签资源;
第二生成单元34,用于基于路径上每个设备角色和标签资源生成流表;
第二下发单元35,用于将所述流表下发到设备。
所述外层标签资源携带有高优先级的流表,所述第二下发单元按照流方向倒序的方式逐跳下发到设备,当最后一跳完成下发,业务的流量切换到新路径上。
还包括:
第六判断单元36,用于判断所述流表是否下发成功;若是,则删除原流表,回收原标签资源,并返回错误;若否,则删除所有已下发的流表。
所述回收所有标签资源,具体为当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
所述第六判断单元36,具体用于当每一跳设备预定义的流表下发完成后即为下发成功;若任何一台设备流表下发失败即为下发不成功。
所述第六判断单元36具体用于根据原路径触发删除原流表。
较佳地,还包括:
第七判断单元37,用于判断是否删除完毕;若是,则回收所有标签资源,并返回错误信息;若否,则预留资源,并返回错误信息。
所述回收所有标签资源,具体为当路径上所有删除流表的操作都完成的情况下,释放原分配的标签资源。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。