本发明涉及SDN(Software Defined Network,软件定义网络)网络虚拟化领域,具体涉及一种基于服务功能冲突预防的虚拟网络规划方法。
背景技术:
互联网的诞生创造了信息社会,在这个信息社会中几乎一切都是通过网络连接的,但尽管互联网有着广泛的适用性,传统以IP协议为核心网络是复杂的并难以管理的。往往网络管理员很难根据预定义的策略配置网络,而重新配置网络以响应故障、负载和更改的过程也十分复杂。更糟糕的是,当前的传统网络是垂直集成的,即控制平面与数据平面是一种紧耦合的关系,两者难以分离。但是随着软件定义网络(Software-Defined Networking,SDN)这一概念在2007年被提出之后,这些问题的解决有了新的解决方案。
SDN作为一种新的网络架构,通过软件的方式实现路由器的控制平面(control plane)与负责转发的数据平面(data plane)解耦合。在这个架构下,网络管理员可以不改动硬件设备,以中央控制方式,用软件程序就重新规划管理网络。在SDN的帮助下,网络流量控制有了新的方法,同时核心网络及应用创新也有了一个良好的平台。
网络虚拟化是构建新一代互联网体系架构的重要技术,也是SDN研究的核心技术之一。网络虚拟化技术的核心思想是从物理网络中抽象出所需求的网络资源,在此基础上构建相应的虚拟网络来满足各种多样化应用的需要。
在对SDN的网络映射和部署进行理论研究时会涉及到一个问题,即在规划虚拟网络时,底部物理网络(比如CPU能力、带宽、内存、服务功能等)能否支撑上层业务的要求。同时当网络管理员在相同物理节点上部署虚拟网络时会存在服务功能之间的冲突问题。
技术实现要素:
为了克服现有技术中的问题,本发明的目的是提供一种基于服务功能冲突预防的虚拟网络规划方法,在传统的虚拟网络映射规划中,增加考虑到基于服务功能的规划,并提出防止服务功能规划失败的预防机制以提高服务功能规划的成功率。
一种基于服务功能冲突预防的虚拟网络规划方法,包括以下步骤:
1-1)虚拟网络规划包括虚拟节点规划和虚拟链路规划,即为虚拟网络中的虚拟节点和虚拟链路,分别选择可用来部署的物理节点及物理链路,并为各个虚拟网络指定优先级;
1-2)在为虚拟节点选择对应的物理节点时,采用“小对大”算法,即虚拟节点按CPU需求值的大小进行升序排列,CPU需求值最小的虚拟节点首先进行规划,在底层物理网络中寻找满足虚拟节点的CPU需求、位置要求和服务功能种类要求,且CPU资源最充足的物理节点;
1-3)当为一个虚拟网络规划选择好各个物理节点后,把该虚拟网络与以前已经规划好的虚拟网络进行逐一对比检查,如果两个虚拟网络对应的物理节点没有一个相同,则跳转至步骤1-9);
1-4)对于两个虚拟网络所对应的所有相同的物理节点,逐一按照从1-5到1-8)的顺序进行检查。如果检查完毕,则跳转至步骤1-9);
1-5)在同一个物理节点上,两个虚拟网络分别将要部署的服务功能所操作的数据包类型不相同,则跳转至步骤1-4)继续检查其他相同的物理节点;
1-6)在同一个物理节点上,两个虚拟网络分别将要部署的服务功能作用时间完全不重合,则跳转至步骤1-4)继续检查其他相同的物理节点;
1-7)在同一个物理节点上,两个虚拟网络分别将要部署的服务功能在相同作用时间内所操作的动作不属于以下的冲突情况:一方为丢包而另一方为转发,则跳转至步骤1-4)继续检查其他相同的物理节点;
1-8)如果前述进行检查的两个虚拟网络中某个虚拟网络优先级较低,则跳转至步骤1-2)重新对该虚拟网络进行规划以更换有冲突的物理节点;如果前述进行检查的两个虚拟网络优先级相同,则跳转至步骤1-2)重新对对应物理节点数量较少的虚拟网络进行规划以更换有冲突的物理节点;
1-9)采用K最短路径算法进行虚拟链路规划,如果链路规划无法完成,则跳转至步骤1-2)重新进行虚拟节点规划,直至完成整个虚拟网络规划。
步骤1-2)中规划物理节点时的选择:
2-1)物理节点可能不支持相应功能,此时物理节点可以向控制器请求更新功能。控制器根据自身是否拥有相应功能以及网络负载情况,决定是否批准请求。请求被批准后,物理节点下载相应服务功能,再次进行虚拟网络规划;
2-2)物理节点上的服务功能具有生命时间,长时间未被使用之后,相应服务功能自动释放,以节省网络资源。
附图说明
图1 是S公司网络拓扑图。
具体实施方式
以下通过附图和具体实施方式对本发明做进一步的说明。
一种基于服务功能冲突预防的虚拟网络规划方法,虚拟网络在规划路径时有CPU、位置、带宽、服务功能种类等约束,而当同一物理节点上部署来自不同虚拟网络要求的服务功能时,有可能发生冲突,因此,在虚拟网络规划时预先考虑避免不同服务功能之间的冲突将降低虚拟网络部署的失败率。该方法包括以下步骤:
1-1)虚拟网络规划包括虚拟节点规划和虚拟链路规划,即为虚拟网络中的虚拟节点和虚拟链路,分别选择可用来部署的物理节点及物理链路,并为各个虚拟网络指定优先级;
1-2)在为虚拟节点选择对应的物理节点时,采用“小对大”算法,即虚拟节点按CPU需求值的大小进行升序排列,CPU需求值最小的虚拟节点首先进行规划,在底层物理网络中寻找满足虚拟节点的CPU需求、位置要求和服务功能种类要求,且CPU资源最充足的物理节点;
1-3)当为一个虚拟网络规划选择好各个物理节点后,把该虚拟网络与以前已经规划好的虚拟网络进行逐一对比检查,如果两个虚拟网络对应的物理节点没有一个相同,则跳转至步骤1-9);
1-4)对于两个虚拟网络所对应的所有相同的物理节点,逐一按照从1-5到1-8)的顺序进行检查。如果检查完毕,则跳转至步骤1-9);
1-5)在同一个物理节点上,两个虚拟网络分别将要部署的服务功能所操作的数据包类型不相同,则跳转至步骤1-4)继续检查其他相同的物理节点;
1-6)在同一个物理节点上,两个虚拟网络分别将要部署的服务功能作用时间完全不重合,则跳转至步骤1-4)继续检查其他相同的物理节点;
1-7)在同一个物理节点上,两个虚拟网络分别将要部署的服务功能在相同作用时间内所操作的动作不属于以下的冲突情况:一方为丢包而另一方为转发,则跳转至步骤1-4)继续检查其他相同的物理节点;
1-8)如果前述进行检查的两个虚拟网络中某个虚拟网络优先级较低,则跳转至步骤1-2)重新对该虚拟网络进行规划以更换有冲突的物理节点;如果前述进行检查的两个虚拟网络优先级相同,则跳转至步骤1-2)重新对对应物理节点数量较少的虚拟网络进行规划以更换有冲突的物理节点;
1-9)采用K最短路径算法进行虚拟链路规划,如果链路规划无法完成,则跳转至步骤1-2)重新进行虚拟节点规划,直至完成整个虚拟网络规划。
步骤1-2)中规划物理节点时的选择:
2-1)物理节点可能不支持相应功能,此时物理节点可以向控制器请求更新功能。控制器根据自身是否拥有相应功能以及网络负载情况,决定是否批准请求。请求被批准后,物理节点下载相应服务功能,再次进行虚拟网络规划;
2-2)物理节点上的服务功能具有生命时间,长时间未被使用之后,相应服务功能自动释放,以节省网络资源。
实施例
下面以S公司内部的虚拟网络规划为例,对基于服务功能冲突预防的虚拟网络规划方法过程进行说明。该公司有多个部门,包括管理部(10.1.0.0/16),财务部(10.2.0.0/16)以及生产部(10.3.0.0/16)。S公司网络拓扑图如图1所示,各部门网络通过一台SDN交换机互联,该SDN交换机还承担支撑虚拟网络的功能。管理部有IT经理一名,负责根据财务部与生产部的具体服务功能要求,为整个公司规划虚拟网络,其IP地址为10.1.201.11/16。
场景一:IT经理现为生产部规划了负载均衡功能,意图使生产部门在使用网络时避免出现拥塞的情况。IT经理规划了虚拟网络的入口节点与出口节点,并且根据底部SDN交换机的CPU资源与带宽情况指定了虚拟节点与虚拟链路的信息。然而在具体规划时,SDN交换机在物理上并不支持负载均衡功能,因此虚拟网络无法完成管理员的需求,规划失败。此时,SDN交换机发出请求,IT经理将该服务功能下载至此交换机,则再次规划时不会失败。
场景二:IT经理为生产部规划一个虚拟网络。该虚拟网中包含两个服务功能,用户认证和入侵检测。其中用户认证功能对IP地址为10.3.0.0/16的终端进行认证,认证成功的可以访问生产部数据服务器中的生产部内部资料。入侵检测功能对被病毒感染的终端进行隔离操作,IT经理指定被感染的10.3.0.5/16这台主机无法访问网络,所有以其为源地址的数据包全部做丢包处理。
一星期后,IT经理为生产部与工程部规划一个虚拟网络,该虚拟网络包含两个服务功能,负载均衡与数据转发。其中负载均衡功能将两个部门的网络流量均衡地载入到数据服务器上。数据转发功能对IP地址为10.3.0.0/16所属生产部的终端进行数据包转发,使生产部的终端主机可以访问公司外部网络。
上述两个不同日期设计的虚拟网络都规划在相同的物理节点,即SDN交换机。两个虚拟网络对10.3.0.5/16这个IP,即相同类型的数据包,分别作出了不同的指示,丢包和转发。并且两个虚拟网络都在作用时间之内,在不考虑其他冲突处理形式的前提下,规划将会失败。
采用预先规划服务功能的形式,在具体规划虚拟网络前,就已经了解物理节点可能会被规划的服务功能,如果有冲突则重新规划虚拟网络,寻找满足条件的其他次优解。在本例中,IT经理重新计算虚拟网络的规划方案,按照优先级将第二次设计的虚拟网络作用时间设定与第一个网络不再重合,则两个虚拟网络规划都能成功。