一种基于网络功能虚拟化场景的流迁移方法及系统技术方案

技术编号:13777843 阅读:65 留言:0更新日期:2016-10-01 03:53
本发明专利技术提出一种基于网络功能虚拟化场景的流迁移方法,该方法包括在源网络功能处与目标网络功能处分别部署源流迁移处理单元与目标流处理单元,并通过所述的源流迁移处理单元与网络交换设备在数据包包头内设置两位标签,将数据包标记为四类,包括normal类、in‑fly类、last in‑fly类、redirect类,所述的目标流迁移处理单元使用基于标签的分类器将所述的normal类、in‑fly类、last in‑fly类、redirect类数据包进行分类;在所述流迁移处理单元中部署状态机,记录当前迁移状态,源状态机根据迁移状态对数据包进行标记与转发,所述目标状态机根据迁移状态与包处理规则将所述四类数据包分别放置于目标流处理单元中的默认缓存,in‑fly环形缓存与redirect环形缓存,最终通过默认缓存交付目标网络功能处。

【技术实现步骤摘要】

本专利技术涉及网络功能虚拟化领域,软件定义网络
,特别涉及一种基于网络功能虚拟化场景的流迁移方法及系统
技术介绍
随着网络体系结构演进与业务持续发展,网络中部署越来越多的专用设备,例如防火墙、入侵检测、接入认证等安全设备,负载均衡、TCP加速等性能提升设备,这些设备部署数量甚至与路由交换设备同一量级。这些专用设备大量部署不仅增加购买与运营成本,提升管理运维难度,而且研发周期长,无法满足网络及应用的快速创新与动态部署要求。网络功能虚拟化(Network Functions Virtualization,NFV)通过在软件实现在通用服务器虚拟机(Virtual Machine,VM)动态按需部署专用设备功能,引起工业界与学术界的广泛关注。NFV支持网络功能基于通用硬件的软件化部署,相比于传统专用硬件的网络功能(Middlebox),其优势是服务链和处理资源的按需分配与灵活调度,从而降低建设成本并提高服务能力,例如,当防火墙处理流量过载时,可将其负载(处理的流)动态、实时地分配到其他通用资源进行处理(scale out操作);当多个网络功能负载较轻存在资源碎片时,可将其合并从而降低能耗(scale in操作),在NFV中,大多数网络功能对数据包的处理是基于流状态的,而某些数据包也会触发流状态的更新,这就要求在进行流迁移时,源和目标网络功能的相关流状态保持一致,从而确保迁移后目标网络功能对流处理的正确性。为解决流迁移状态一致性问题,一种被动的方法(Gember A,Krishnamurthy A,John S S,et al.Stratos:A network-aware orchestration layer for middleboxes in the cloud[R].Technical Report,2013.)是仅仅在网络转发设备(Switch)处对新流进行重定向,从而进行scale out的操作,或者等待源网络功能处理的流全部结束后进行销毁从而实现scale in操作,但这种方式无法迅速的缓解已经过载的网络功能,另一种方式
(Rajagopalan S,Williams D,Jamjoom H,et al.Split/merge:System support for elastic execution in virtual middleboxes[C]//Presented as part of the 10th USENIX Symposium on Networked Systems Design and Implementation(NSDI 13).2013:227-240.)是主动迁移正在被过载网络功能处理的流和相关的流状态,在短时间内实现流迁移,状态迁移可通过标准的南向接口实现,然而在状态迁移过程中,迁移流的数据包会持续的到达源网络功能或者目标网络功能,导致源、目标状态的不一致和部分数据包没有被正确的处理,其根本原因是状态的迁移和流的迁移存在竞争关系,OpenNF(Gember-Jacobson A,Viswanathan R,Prakash C,et al.OpenNF:Enabling innovation in network function control[J].ACM SIGCOMM Computer Communication Review,2015,44(4):163-174.)使用SDN控制器集中地缓存与处理状态迁移过程中到达的数据包,解决状态迁移和流迁移的竞争问题,然而,集中式的系统架构严重的限制了其可扩展性和性能。目前解决NFV负载迁移的系统主要包括:Split/Merge(Rajagopalan S,Williams D,Jamjoom H,et al.Split/merge:System support for elastic execution in virtual middleboxes[C]//Presented as part of the 10th USENIX Symposium on Networked Systems Design and Implementation(NSDI 13).2013:227-240.):当迁移开始时,控制器命令Switch立刻将要迁移流的数据包转发到控制器进行集中缓存,之后控制器将源网络功能中要迁移的流的相关状态拷贝到目标网络功能中,这个过程中,所有迁移流的数据包都会缓存在控制器中,当状态拷贝完成后,控制器释放所有缓存的数据包给目标网络功能,并命令switch直接将数据包转发给目标网络功能,整个过程实现了流和相关状态的迁移,然而其存在两个问题,首先从控制器释放的包和被switch直接转发的包会乱序地被目标网络功能处理,乱序会造成网络功能的错误处理,其次,当开始迁移在源网络功能中相关的流状态时,仍有一些数据包已经被Switch转发但还没被源网络功能处理,这些包可能会更新流状态,但这些状态的更新会永远不会在目标网络功能中反应,导致流的状态在源、目标网络功能不一致。OpenNF:当迁移开始时,直接从源网络功能中拷贝流状态,此时源网络功能会将收到迁移流数据包转发给控制器进行缓存,当状态拷贝完成后,控制器
释放所有缓存的包,Switch也直接将包转发给目标网络功能,但此时目标网络功能会先缓存所有来自于Switch的数据包,等所有从控制器释放的数据包处理完成后在进行处理,通过这种精巧的设计可以解决Split/Merge的状态不一致问题和包乱序的问题,然而,这是一种集中式的系统,当迁移规模较大时,控制器会成为整个系统的瓶颈(单点处理和缓存所有的迁移数据包),此外,迁移数据包经由控制器传送给目标网络功能的方式引入了额外的转发。Improved OpenNF与OpenNF不同,源网络功能仅仅将升级流状态的包转发给控制器进行缓存,在保证状态一致性的情况下大幅降低了控制器的缓存压力,然而,这种方式仍是一种集中式控制,没有从根本上解决瓶颈问题,此外,这种方式无法保证数据包无乱序的到达目标网络功能。如图1所示,现有技术在状态一致性,迁移效率,集中式缓存需求和网络功能的额外开销等方面都存在缺陷。
技术实现思路
针对现有技术的不足,本专利技术提出一种基于网络功能虚拟化场景的流迁移方法及系统。本专利技术提出一种基于网络功能虚拟化场景的流迁移方法,包括步骤1,在源网络功能处与目标网络功能处分别部署源流迁移处理单元与目标流处理单元,并通过所述的源流迁移处理单元与网络交换设备在数据包包头内设置两位标签,将数据包标记为四类,包括normal类、in-fly类、last in-fly类、redirect类,所述的目标流迁移处理单元使用基于所述标签的分类器将所述的normal类、in-fly类、last in-fly类、redirect类数据包进行分类;步骤2,在所述源流迁移处理单元与所述目标迁移处理单元中分别部署源状态机与目标状态机,获取并记录当前迁移状态,所述源状态机根据所述当前迁移状态对数据包进行标记与转发,所述目标状态机根据所述当前迁移状态与包处理规则将所述normal类、in-fly类、last in-f本文档来自技高网
...

【技术保护点】
一种基于网络功能虚拟化场景的流迁移方法,其特征在于,包括步骤1,在源网络功能处与目标网络功能处分别部署源流迁移处理单元与目标流处理单元,并通过所述的源流迁移处理单元与网络交换设备在数据包包头内设置两位标签,将数据包标记为四类,包括normal类、in‑fly类、last in‑fly类、redirect类,所述的目标流迁移处理单元使用基于所述标签的分类器将所述的normal类、in‑fly类、last in‑fly类、redirect类数据包进行分类;步骤2,在所述源流迁移处理单元与所述目标迁移处理单元中分别部署源状态机与目标状态机,获取并记录当前迁移状态,所述源状态机根据所述当前迁移状态对数据包进行标记与转发,所述目标状态机根据所述当前迁移状态与包处理规则将所述normal类、in‑fly类、last in‑fly类、redirect类数据包分别放置于所述目标流处理单元中的默认缓存,in‑fly类的环形缓存与redirect类的环形缓存,最终通过默认缓存交付于目标网络功能处。

【技术特征摘要】
1.一种基于网络功能虚拟化场景的流迁移方法,其特征在于,包括步骤1,在源网络功能处与目标网络功能处分别部署源流迁移处理单元与目标流处理单元,并通过所述的源流迁移处理单元与网络交换设备在数据包包头内设置两位标签,将数据包标记为四类,包括normal类、in-fly类、last in-fly类、redirect类,所述的目标流迁移处理单元使用基于所述标签的分类器将所述的normal类、in-fly类、last in-fly类、redirect类数据包进行分类;步骤2,在所述源流迁移处理单元与所述目标迁移处理单元中分别部署源状态机与目标状态机,获取并记录当前迁移状态,所述源状态机根据所述当前迁移状态对数据包进行标记与转发,所述目标状态机根据所述当前迁移状态与包处理规则将所述normal类、in-fly类、last in-fly类、redirect类数据包分别放置于所述目标流处理单元中的默认缓存,in-fly类的环形缓存与redirect类的环形缓存,最终通过默认缓存交付于目标网络功能处。2.如权利要求1所述的基于网络功能虚拟化场景的流迁移方法,其特征在于,所述normal类是默认值的数据包、所述in-fly类与所述last in-fly类是由源网络功能处的流迁移处理单元标记的数据包,redirect类是由网络转发设备进行标记的数据包。3.如权利要求1所述的基于网络功能虚拟化场景的流迁移方法,其特征在于,所述步骤2包括:当所述目标状态机处于“正常”状态时:所述“正常”状态下,当收到“流迁移开始命令事件”时,状态变为“M1”,执行的操作是创建redirect类和in-fly类的环形缓存,打开包分类器,并将所有类型的数据包放入到默认缓存中并发送给目标网络功能处。4.如权利要求3所述的基于网络功能虚拟化场景的流迁移方法,其特征在于,所述步骤2还包括“M1”状态:当收到“状态安装完成事件”时,所述“M1”状态迁移为“MS1”状态,执行操作为将in-fly类的环形缓存中的数据包推送到默认缓存中,并释放in-fly类的环形缓存;当收到redirect类的数据包时,所述“M1”状态迁移为“M2”状态,执行操作为升级流表,并将in-fly类的数据包与redirect类的数据包分别缓存到各自队列中;“M2”状态:当收到“状态安装完成事件”时,所述“M2”状态迁移为“MS2”状态,执行操作为将in-fly类的环形缓存中的数据包推送到默认缓存
\t中,并释放in-fly类的环形缓存;当收到last in-fly类的数据包时,所述“M2”状态迁移为“M3”状态,执行操作为丢弃last in-fly类的数据包,并将in-fly类的数据包与redirect类的数据包分别缓存到各自队列中;“M3”状态:当收到“状态安装完成事件”时,所述“M3”状态迁移为“MS3”状态,执行操作为将in-fly类与redirect类的环形缓存中的数据包推送到默认缓存中,并释放in-fly类与redirect类的环形缓存,并将in-fly类的数据包与redirect类的数据包分别缓存到各自队列中,并丢弃last in-fly类的数据包。5.如权利要求4所述的基于网络功能虚拟化场景的流迁移方法,其特征在于,“MS1”状态:当收到redirect类的数据包时,所述“MS1”状态迁移为“MS2”状态,执行操作为升级流表,并将in-fly类的数据包与redirect类的数据包分别缓存到各自队列中;“MS2”状态:当收到last in-fly类的数据包时,所述“MS2”状态迁移为“MS3”状态,执行操作为将redirect类的环形缓存中的数据包推送到默认缓存中,并释放redirect类的环形缓存,并将in-fly类的数据包与redirect类的数据包分别缓存到各自队列中;“MS3”状态:在所述“MS3”状态时,所述“MS3”状态迁移为“正常”状态,执行操作为关闭包分类功能,并且迁移结束,并将in-fly类的数据包与redirect类的数据包分别缓存到各自队列中,并丢弃last in-fly类的数据包。6.一种基于网...

【专利技术属性】
技术研发人员:王阳李振宇贺鹏谢高岗
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1