基于OpenFlow交换机的MPLS-TPAPS实现方法及系统与流程

文档序号:18523234发布日期:2019-08-24 10:00阅读:566来源:国知局
本发明涉及交换机
技术领域
:,特别是涉及一种基于openflow交换机的mpls-tpaps实现方法及系统。
背景技术
::openflow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由openflow交换机(openflowswitch)和控制服务器(controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制openflow交换机中的流表,从而达到控制数据转发的目的。openflow交换机是整个openflow网络的核心部件,主要管理数据层的转发。openflowswitch拥有一个flowtable(流表),它只按照流表进行转发,flowtable的生成、维护和下发由外置的controller来实现。参图1所示,mplsl2vpn(multiprotocollabelswitchinglayer2virtualprivatenetwork)提供基于mpls网络的二层vpn服务,使运营商可以在统一的mpls网络上提供基于不同介质的二层vpn,如atm、fr、vlan、ethernet和ppp。简单来说,mplsl2vpn就是在mpls网络上透明传输用户二层数据。从用户的角度来看,mpls网络是一个二层交换网络,可以在不同节点间建立二层连接。openflow控制器下发l2vpnflow实现灵活隧道部署,pw层比lsp层多一层mpls的标签。基于l2vpn可部署mpls-tpoam,可基于lsp或者pw层面进行oam检测部署;lsp层面部署方式即将oam_session关联至业务lsp层面,入方向外层匹配业务lsp层标签值,出方向跟业务打上相同的lsp标签值;oam部署完毕之后,就会开始基于业务做检测,包含通过ccm检测业务链路状态、dm检测业务链路时延、lm检测业务链路丢包等;一旦检测出异常(链路状态异常/dm延时过高/丢包率过高)就会通知控制器,并让管理员做出对应策略。openflowmpls-tp系统中,在支持oam后,可能在一些特定场景中切换时延会要求到ms级别,如果通过oamm感知(感知时间ms级别),再通过消息形式上报到控制器,控制器再计算新路径并下发到交换机(这一系列控制器和交换机的消息交互都是通过cpu进行的),那这中间的时间差是必然存在的,而真正业务部署场景中,对于切换延时非常敏感,对链路切换延时要求在50ms以内完成。因此,针对上述技术问题,有必要提供一种基于openflow交换机的mpls-tpaps实现方法及系统。技术实现要素:有鉴于此,本发明的目的在于提供一种基于openflow交换机的mpls-tpaps实现方法及系统。为了实现上述目的,本发明一实施例提供的技术方案如下:一种基于openflow交换机的mpls-tpaps实现方法,所述方法包括:基于openflow消息,扩展match项、action字段以支持mpls-tpoam配置下发;基于openflow消息中的packet_in消息,扩展of_match字段以支持mpls-tpoam信息获取上报;基于pw业务创建lsp链路级别的aps-group,aps-group包括lsp工作链路及lsp保护链路;控制器基于openflow协议对mpls-tpoam进行配置下发;交换机将oam信息进行上报;监控oam信息中的lsp链路状态,根据lsp链路状态进行lsp工作链路与lsp保护链路的切换。作为本发明的进一步改进,“扩展match项、action字段”具体为:将oam_session作为oam配置参数主题扩展至match项中;将oam_inlabel扩展至action字段。作为本发明的进一步改进,所述oam_session采用唯一的id作为该oam_session的标识作为本发明的进一步改进,“扩展of_match字段”具体为:在of_match字段设置in_port信息的标识值。作为本发明的进一步改进,所述方法还包括:获取in_port信息与标识值进行比较,若in_port信息与标识值相同,则判定packet_in消息中的数据为oam信息。作为本发明的进一步改进,所述方法中,“监控oam信息中的lsp链路状态,根据lsp链路状态进行lsp工作链路与lsp保护链路的切换”具体为:通过oam信息中的oam_session监控lsp链路状态;正常状态下,oamcycle报文以固定周期上报至控制器;当lsp工作链路中断时,oamevent报文上报至控制器,控制器进行lsp工作链路至lsp保护链路的切换;当lsp工作链路恢复后,控制器进行lsp保护链路至lsp工作链路的切换。作为本发明的进一步改进,所述方法还包括:将aps-group事件通过aps-group事件报文上报至控制器。作为本发明的进一步改进,所述oamcycle报文和oamevent报文分别包括:版本信息、报文类型、事件类型、对应oam事件涉及的sessionid、oam报文片段长度、保留字段、ccm状态、dm标识值、lm标识值、预留字段。作为本发明的进一步改进,所述aps-group事件报文包括:版本信息、报文类型、事件类型、对应aps-group涉及的groupid、oam报文片段长度、保留字段、链路状态。相应地,一种基于openflow交换机的mpls-tpaps实现系统,所述系统包括:第一扩展单元,用于基于openflow消息,扩展match项、action字段以支持mpls-tpoam配置下发;第二扩展单元,用于基于openflow消息中的packet_in消息,扩展of_match字段以支持mpls-tpoam信息获取上报;lsp部署单元,用于基于pw业务创建lsp链路级别的aps-group,aps-group包括lsp工作链路及lsp保护链路;控制器,用于基于openflow协议对mpls-tpoam进行配置下发、及接收交换机上报的oam信息;交换机,用于接收控制器下发的配置、及oam信息的上报;lsp切换单元,用于监控oam信息中的lsp链路状态,并根据lsp链路状态进行lsp工作链路与lsp保护链路的切换。本发明具有以下有益效果:本发明通过在交换机系统中进行mpls-tpaps的部署,在不影响原有l2vpn业务、不占用原有表项的前提下,能够进行链路快速切换,链路切换延时能够控制在50ms以内。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中mplsl2vpn的业务模型图;图2为本发明基于openflow交换机的mpls-tpoam实现方法的具体流程图;图3为本发明基于openflow交换机的mpls-tpoam实现系统的模块示意图;图4为现有技术中基于openflow的mpls-tp业务模型图;图5为本发明一具体实施例中基于openflow交换机的mpls-tpaps业务模型图;图6为本发明一具体实施例中oamcycle报文的示意图;图7为本发明一具体实施例中oamevent报文的示意图图8为本发明一具体实施例中aps-group事件报文的示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。参图2所示,本发明公开了一种基于openflow交换机的mpls-tpaps实现方法,该方法包括:基于openflow消息,扩展match项、action字段以支持mpls-tpoam配置下发;基于openflow消息中的packet_in消息,扩展of_match字段以支持mpls-tpoam信息获取上报;基于pw业务创建lsp链路级别的aps-group,aps-group包括lsp工作链路及lsp保护链路;控制器基于openflow协议对mpls-tpoam进行配置下发;交换机将oam信息进行上报;监控oam信息中的lsp链路状态,根据lsp链路状态进行lsp工作链路与lsp保护链路的切换。参图3所示,本发明还公开了一种基于openflow交换机的mpls-tpaps实现系统,该系统包括:第一扩展单元,用于基于openflow消息,扩展match项、action字段以支持mpls-tpoam配置下发;第二扩展单元,用于基于openflow消息中的packet_in消息,扩展of_match字段以支持mpls-tpoam信息获取上报;lsp部署单元,用于基于pw业务创建lsp链路级别的aps-group,aps-group包括lsp工作链路及lsp保护链路;控制器,用于基于openflow协议对mpls-tpoam进行配置下发、及接收交换机上报的oam信息;交换机,用于接收控制器下发的配置、及oam信息的上报;lsp切换单元,用于监控oam信息中的lsp链路状态,并根据lsp链路状态进行lsp工作链路与lsp保护链路的切换。本发明基于openflow交换机的mpls-tpaps实现方法和系统是基于mpls-tpoam上实现的,以下首先针对mpls-tpoam进行详细说明。参图4所示为现有技术中基于openflow的mpls-tp业务模型,默认情况下l2vpn部署成功之后,隧道就已经被打通,就能开始转发业务了,但是此时是没有检测机制的,当业务链路发生异常或故障的情况下,控制器是不能及时感知到的(感知时间非常长)。业务层面uni(用户网络接口)侧业务进入设备之后,通过某种策略(port/vlantag/otherfield)匹配方式来区分不同用户,并进行对应的隧道封装,并转发至nni侧(网络节点接口);封装报文送到中间设备之后,匹配外层mplslabel,并执行对应的外层标签swap后继续转发;封装报文送到最后一跳之后,匹配标签并解封装送达uni侧对应的用户。基于mpls-tp的l2vpn业务部署具体如下:(1)正向部署beijing节点(encap侧)业务流表匹配端口和vlan(virtuallocalareanetwork),虚拟局域网),然后出动作是加上16的内层标签和300的外层标签以及外部以太网头,并从相应的出口出去。p节点(swap侧)业务流表匹配标签300,然后出动作是剥掉300标签,然后加上400标签从对应的出口出去。shanghai节点(decap侧)业务流表匹配400标签,然后出动作是剥掉这层标签,继续检查内层标签;业务流表匹配16标签,然后出动作是剥掉这层标签,从对应的出口出去。(2)回向部署beijing节点(decap侧)业务流表匹配401标签,然后出动作是剥掉这层标签,然后继续内层标签。业务流表匹配17标签,然后出动作是必掉这层标签,从对应的出口出去。p节点(swap侧)业务流表是匹配301标签,然后出动作是剥掉301标签,然后加上401标签从对应的出口出去。shanghai节点(encap侧)业务流表匹配端口和vlan,然后出动作是加上17的内层标签和301的外层标签以及外部以太网头,并从相应的出口出去。本发明中基于l2vpn部署mpls-tpoam,可基于lsp或者pw层面进行oam检测部署。lsp层面部署方式即将oam_session关联至业务lsp层面,入方向外层匹配业务lsp层标签值,出方向跟业务打上相同的lsp标签值。pw层面部署方式即将oam_session关联至业务pw层面,入方向匹配业务lsp层label剥离lsp层标签之后,匹配业务pw层标签值,出方向依次打上跟业务相同的pw/lsp标签值。oam部署完毕之后,就会开始基于业务做检测,包含通过ccm检测业务链路状态、dm检测业务链路时延、lm检测业务链路丢包等。一旦检测出异常(链路状态异常/dm延时过高/丢包率过高)就会通知控制器,并让管理员做出对应策略,所有oamflow都有一个特征,就是matchfield中有且仅有oam_session字段。oam流表定义的是,匹配一个oam_session对象作为oam参数配置主题,用唯一的id作为这个oam_session的标识,然后出次流表的动作,此动作精确描述了这一条oam所需的信息,例如:入标签、出标签、出端口信息,外层以太网头信息等,这个要与业务流表的配置一致。本发明中pw的oam流表定义和lsp的oam流表定义是一样的规则,只是标签数量的区别。本实施例中基于mpls-tpoam的l2vpn业务部署具体如下:一、lsp层(1)正向部署beijing节点(encap侧)oam流表匹配oam_session1,然后出的动作是oam_inlabel为401,出标签为300,将以太网信息和出口信息与对应业务流表配置成一致。(2)回向部署shanghai节点(encap侧)oam流表出的动作是匹配oam_session2,然后出的动作是oam_inlabel为400,出标签为301,将以太网信息和出口信息与对应的业务流表配置成一致。二、pw层(1)正向部署beijing节点(encap侧)oam流表匹配oam_session2,然后出的动作是oam_inlabel为17,出的内存标签为16,外层标签是300,并将以太网信息和出口信息与对应业务流表配置成一致。(2)回向部署shanghai节点(encap侧)oam流表匹配oam_session2,然后出的动作是oam_inlabel为16,出的内存标签为17,外层标签是301,并将以太网信息和出口信息与对应业务流表配置成一致。本发明中oamflow仅需要匹配oam_session字段,actions之后跟随的是入出标签。而lsp和pw的判断取决于actions之后push的是一层mpls标签还是两层mpls标签。其中,“扩展match项、action字段”具体为:将oam_session作为oam配置参数主题扩展至match项中;将oam_inlabel扩展至action字段。具体地,本实施例中match项扩展如下:action字段扩展如下“扩展of_match字段”具体为:在of_match字段设置in_port信息的标识值。获取in_port信息与标识值进行比较,若in_port信息与标识值相同,则判定packet_in消息中的数据为oam信息。所有oam状态消息,不管是cycle消息还是event消息都是通过packet_in消息进行扩展。按照openflow定义packet_in消息格式,并且消息中of_match字段会携带in_port信息,如果in_port为0xffffffef(预设的标识值)即为自定义的openflowoam的保留端口,则认为对应packet_in消息中携带的数据为oam信息。当然,在其他实施例中标识值不限于0xffffffef,也可以设置为其他值。在mpls-tpoam实现的基础上,再进行mpls-tpoam的实现,以下进行详细说明。参图5所示为本发明一具体实施例中基于openflow交换机的mpls-tpaps业务模型图,该业务模型中pw有两条可用的lsp链路,分别为workinglsp(lsp工作链路)及protectionlsp(lsp保护链路),pw业务跑在aps-group上,当发生故障时,可以从workinglsp切换到protectionlsp。该业务模型中,基于mpls-tp的l2vpn业务部署具体如下:(1)正向部署(从beijingpe到shanghaipe)beijing节点(encap侧)—创建aps-group(lsp)添加一个lspaps-group,group_id为1,走workinglsp时添加标签300,从端口2发出去;走protectionlsp时添加标签400,从端口3发出去。beijing节点(encap侧)—配置流表封装pw标签并指向aps-group(lsp)业务流表匹配端口和vlan,然后出动作是走lspaps-group1。p节点(swap侧)在workinglsp的p节点上,处理从北京往上海方向的报文时,弹出标签300,添加标签3000;在protectionlsp的p节点上,处理从北京往上海方向的报文时,弹出标签400,添加标签4000。shanghai节点(decap侧)处理workinglsp的报文时,弹出标签3000,将报文发给用户;处理protectionlsp的报文时,弹出标签4000,将报文发给用户。(2)回向部署(从shanghaipe到beijingpe)shanghai节点(encap侧)—创建aps-group(lsp)添加一个lspaps-group,group_id为1,走workinglsp时添加标签301,从端口2发出去;走protectionlsp时添加标签401,从端口3发出去。shanghai节点(encap侧)—配置流表封装pw标签并指向aps-group(lsp)业务流表匹配端口和vlan,然后出动作是走lspaps-group1。p节点(swap侧)在workinglsp的p节点上,处理从北京往上海方向的报文时,弹出标签301,添加标签3010;在protectionlsp的p节点上,处理从北京往上海方向的报文,时弹出标签401,添加标签4010。beijing节点(decap侧)处理workinglsp的报文时,弹出标签3010,将报文发给用户;处理protectionlsp的报文时,弹出标签4010,将报文发给用户。基于业务创建lsp链路级别的aps-group,并将用户报文匹配之后,先打上pw标签,然后指向aps-group(lsp),部署完响应业务之后,必须部署对应的oam_session来监控working和protection的lsp状态;oam部署完毕之后,就会开始基于业务做检测,一旦检测出workinglsp发生异常(链路状态异常/dm延时过高/丢包率过高),系统就会在50ms之内,将链路切换至protectionlsp,保证业务连通性。配置基于aps的oam业务具体如下:beijing节点配置oam流表1,oam报文固定走workinglsp,oam接收报文为标签3010的报文时,更新本地标签为300的oam_session的状态;oam发送报文添加标签300。配置oam流表2,oam报文固定走protectionlsp,oam接收报文为标签4010的报文时,更新本地标签为400的oam_session的状态;oam发送报文添加标签400。配置lspaps-group1与oam的流表1和oam的流表2关联。shanghai节点(encap侧)配置oam流表1,oam报文固定走workinglsp,oam接收报文为标签3000的报文时,更新本地标签为301的oam_session的状态;oam发送报文添加标签301。配置oam流表1,oam报文固定走protectionlsp,oam接收报文为标签4000的报文时,更新本地标签为401的oam_session的状态;oam发送报文添加标签401。配置lspaps-group1与oam流表1和oam流表2关联。为支持mpls-tpaps,交换机向控制器上报oam消息分为两大类,一类是周期上报cycle消息,包括ccm状态(链路是否正常)、以及aps-group状态(当前工作在working/protection);另一类是中断事件上报消息,包括signalfail(ccmloc)以及aps-group状态发生切换(working切protection或protection切working)。“监控oam信息中的lsp链路状态,根据lsp链路状态进行lsp工作链路与lsp保护链路的切换”步骤具体为:通过oam信息中的oam_session监控lsp链路状态;正常状态下,oamcycle报文以固定周期上报至控制器;当lsp工作链路中断时,oamevent报文上报至控制器,控制器进行lsp工作链路至lsp保护链路的切换;当lsp工作链路恢复后,控制器进行lsp保护链路至lsp工作链路的切换;将aps-group事件通过aps-group事件报文上报至控制器。其中,本实施例中对报文消息扩展如下:1、oamcycle报文当oam_session没有异常的情况下,交换机会通过周期上报oamcycle报文来通知控制器当前链路状态/链路时延/链路丢包率等情况,oamcycle报文格式如图6所示。2、oamevent报文当oam_session发生异常,如signalfail(ccmloc),交换机就会触发中断消息,oamevent报文格式如图7所示。3、aps-group事件报文当asp-group周期上报cycle事件,或者aps发生切换上报中断事件,aps-group事件报文格式如图8所示。图6-图8报文中各字段说明如下:应当理解的是,上述报文的格式仅为本发明中优选的报文格式,在其他实施例中可以对报文格式进行适当修改,凡是能够传输oamcycle、oam中断event、aps-group事件的报文均属于本发明所保护的范围。本实施例中基于openflow交换机的mpls-tpaps实现机制具体为:一、从workinglsp切换到protectionlsp1.正常状态链路上报oamcycle报文会以固定周期上报给控制器,上报周期默认为15秒,用户可根据实际场景进行灵活设定,oamcycle报文中可体现当前链路状态情况。每经过一个oamcyclepacket-in周期(默认15秒),交换机就会向控制器上报一个oamcycle报文,链路状态会通过ccmstatus体现。2.链路状态中断及上报ccm报文会以固定周期发送(lsp默认3.3ms/pw默认10ms),如果3.5倍周期内未收到对端发过来的ccm报文,交换机就会触发signalfail事件,并通过oamevent报文上报给控制器。3.系统收到链路中断消息后,立即启动芯片做aps切换,将lspaps-group1设定所有流量不再走workinglsp,直接走protectionlsp。4.aps-group事件报文会以固定周期上报给控制器,周期上报周期默认为30秒,用户可根据实际场景进行灵活设定,aps-group事件报文中可体现当前aps-group处于working还是处于protection上。二、从protectionlsp回切到workinglsp1.如果链路中断后,ccm连续收到3个对端发过来的ccm报文,认为链路恢复,上报ccm状态正常。2.系统收到ccm状态正常的消息后,启动芯片做aps切换,将lspaps-group1设定所有流量不再走protectionlsp,重新走workinglsp;3.aps-group事件报文会上报aps-group处理protection状态。由以上技术方案可以看出,本发明具有以下优点:本发明通过在交换机系统中进行mpls-tpaps的部署,在不影响原有l2vpn业务、不占用原有表项的前提下,能够进行链路快速切换,链路切换延时能够控制在50ms以内。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本说明书一个或多个实施例的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1