一种虚拟机数据的转发方法、SDN控制器和SDN系统与流程

文档序号:12161819阅读:439来源:国知局
一种虚拟机数据的转发方法、SDN控制器和SDN系统与流程

本发明涉及数据传输技术领域,尤其涉及一种虚拟机数据的转发方法、SDN控制器和SDN系统。



背景技术:

软件定义网络SDN(Software Defined Network)是一种新型网络创新架构。随着虚拟化技术的广泛应用,IT资源将成为像水电一样可运营的基础设施,云数据中心作为重要的云基础设施的承载体,由于虚拟机在线迁移等数据中心二层网络需求、虚拟机感知、vlan隔离、多租户隔离等新的自动化、自服务等需求,其虚拟机通信成为重要的研究课题,而SDN以其集中控制、控制和转发分离为特征的灵活配置配置管理,称谓解决云数据中心网络的主要解决方案之一。

为了解决数据中心面临的大二层环境、VLAN不足、多租户隔离等问题,以VMware为主导,VMware和Cisco合力打造推出VXLAN技术(Virtual eXtensible Local Area Network,虚拟可扩展局域网),其网络原理如图1所示。VXLAN可以运行在现有的网络基础架构上,提供一种扩展2层网络的方法,是一个3层之上的2层网络覆盖解决方案。VXLAN的封装和隧道的建立需要通过VXLAN隧道终端(VXLAN Tunnel End Point,VTEP)实体进行,VTEP对虚拟机发出的帧进行封装,使之在VXLAN网络内传输,对发送给虚拟机的VXLAN帧进行解封装,转为普通以太网帧发送给虚拟机。如图2所示,VTEP直接与虚拟机连接,能够感知虚拟机的存在,通过在每个端点(如物理机)上设置一个可由网络控制器直接控制管理的代理(如vTep),云资源池的网络配置有了很大的灵活性。

在传统分布式网络中,路由计算由每台网络设备根据从邻居学习到 的网络拓扑完成,常用的方法包括距离矢量路由选择DVR(Distance Vector Routing)和链路状态路由选择LSR(Link State Routing)。对于控制功能集中和开放后,用户可以通过应用编程的方式参与路由决策,对路由计算模块的提出了更高的要求,要求能够根据业务需求和网络状态进行灵活快速的路由调整。在大量虚拟机需要动态隔离组网的云计算数据中心多租户承载环境下,路由计算更为复杂,需要综合考虑业务需求、服务等级协议(Service Level Agreement:SLA)和资源约束等情况,给出最佳的虚拟机网络连接方案。

基于SDN的虚拟机通信系统中,在虚拟机之间的路由计算通常有几种方式,如基于VTEP基于传统路由算法进行路径选择,或在集中控制端提供简单的路径计算方法(Dijkstra算法),满足基本的适配链路状况的网络最优路径连接需求,如目前大多数开源或者商业OpenFlow控制器解决方案通常都是这种方案。

现有的基于SDN的虚拟机通信方式存在以下一些问题:

(1)Openflow交换机的控制器决定了所有数据包的传输路径,主要基于传统路由算法进行路径选择,难以发挥集中控制的优势,存在低效率的问题;

(2)Overlay SDN通过在虚拟机所在的宿主机上建立网络代理(网关),建立虚拟机之间的通信隧道来进行通信,增加管理和排障复杂性,且网络代理之间仍采用传统的路由算法。



技术实现要素:

有鉴于此,本发明要解决的一个技术问题是提供一种虚拟机数据的转发方法、SDN控制器和SDN系统,能够基于目标虚拟机所在的物理机的IP信息选择路由。

一种虚拟机数据的转发方法,包括:SDN控制器接收到转发设备发送的虚拟机数据包,从所述虚拟机数据包中解析出目标虚拟机的IP地址;所述SDN控制器基于所述目标虚拟机的IP地址判断目标虚拟机是否为本网内的虚拟机,如果是,则获取所述目标虚拟机的IP地址对应 的虚拟机标识码,并获取与所述虚拟机标识码对应的承载所述目标虚拟机的物理机,以及与所述目标虚拟机对应的所述物理机的IP信息;所述SDN控制器根据所述物理机的IP信息进行路由选择,并将到达所述物理机的路由信息发送到所述转发设备。

根据本发明的一个实施例,进一步的,所述转发设备接收到所述虚拟机数据包时,如果判断需要新建连接,则将所述虚拟机数据包发送到所述SDN控制器,请求路由信息。

根据本发明的一个实施例,进一步的,在云管理平台中存储虚拟机的IP地址与虚拟机标识码的对应关系,以及虚拟机标识码对应的物理机的IP信息;所述SDN控制器基于所述目标虚拟机的IP地址从所述云管理平台中查询出所述目标虚拟机所在的物理机的IP信息。

根据本发明的一个实施例,进一步的,当所述SDN控制器基于所述目标虚拟机的IP地址判断目标虚拟机为外网的虚拟机时,则将所述虚拟机数据包转发到网关设备。

根据本发明的一个实施例,进一步的,所述SDN控制器根据所述物理机的IP信息进行路由选择包括:所述SDN控制器进行路径计算,获取到达所述目标虚拟机所在的物理机的路由信息;其中,所述SDN采用距离矢量路由选择算法或链路状态路由选择算法进行路径计算。

根据本发明的一个实施例,进一步的,所述转发设备根据所述路由信息将所述虚拟机数据包转发到所述目标虚拟机所在的物理机,由所述物理机将所述虚拟机数据包分发给所述目标虚拟机。

根据本发明的一个实施例,进一步的,所述转发设备为OpenFlow交换机;所述虚拟机标识码包括虚拟化类型和物理机的MAC地址。

一种SDN控制器,包括:数据包接收单元,用于接收转发设备发送的虚拟机数据包;目标IP解析单元,用于从所述虚拟机数据包中解析出目标虚拟机的IP地址;物理地址获取单元,用于基于所述目标虚拟机的IP地址判断目标虚拟机是否为本网内的虚拟机,如果是,则获取所述目标虚拟机的IP地址对应的虚拟机标识码,并获取与所述虚拟机标识码对应的承载所述目标虚拟机的物理机,以及与所述目标虚拟机对 应的所述物理机的IP信息;路由选择单元,用于根据所述物理机的IP信息进行路由选择;路由下发单元,用于将到达所述物理机的路由信息发送到所述转发设备。

根据本发明的一个实施例,进一步的,所述物理地址获取单元,还用于基于所述目标虚拟机的IP地址从所述云管理平台中查询出所述目标虚拟机所在的物理机的IP信息;其中,在云管理平台中存储虚拟机的IP地址与虚拟机标识码的对应关系,以及虚拟机标识码对应的物理机的IP信息;

根据本发明的一个实施例,进一步的,数据包转发单元,用于当基于所述目标虚拟机的IP地址判断目标虚拟机为外网的虚拟机时,则将所述虚拟机数据包转发到网关设备。

根据本发明的一个实施例,进一步的,所述路由选择单元,还用于进行路径计算,获取到达所述目标虚拟机所在的物理机的路由信息;其中,所述路由选择单元采用距离矢量路由选择算法或链路状态路由选择算法进行路径计算。

一种SDN系统,包括:转发设备、如上所述的SDN控制器。

根据本发明的一个实施例,进一步的,所述转发设备接收到所述虚拟机数据包时,如果判断需要新建连接,则将所述虚拟机数据包发送到所述SDN控制器,请求路由信息。

根据本发明的一个实施例,进一步的,所述转发设备为OpenFlow交换机;所述虚拟机标识码包括虚拟化类型和物理服务器的MAC地址。

本发明的虚拟机数据的转发方法、SDN控制器和SDN,通过虚拟机识别码间接查找目标虚拟机所在的物理机的IP信息,基于物理机的IP信息选择路由,降低路由的查找复杂度,并利用云计算的特性进行虚拟机的路径选择。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易 见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中的虚拟可扩展局域网的一个拓扑示意图;

图2为现有技术中的虚拟可扩展局域网的另一个拓扑示意图;

图3为本发明的虚拟机数据的转发方法的一个实施例的流程示意图;

图4为现有的虚拟机数据转发的应用场景示意图;

图5为本发明的虚拟机数据的转发的应用场景示意图;

图6为根据本发明的SDN控制器的一个实施例的模块示意图。

具体实施方式

下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。

图3为本发明的虚拟机数据的转发方法的一个实施例的流程示意图,如图3所示:

步骤101,SDN控制器接收到转发设备发送的虚拟机数据包,从虚拟机数据包中解析出目标虚拟机的IP地址。

步骤102,SDN控制器基于目标虚拟机的IP地址判断目标虚拟机是否为本网内的虚拟机,如果是,则获取目标虚拟机的IP地址对应的虚拟机标识码,并获取与虚拟机标识码对应的承载目标虚拟机的物理机,以及与目标虚拟机对应的物理机的IP信息。大部分物理机有多张网卡,即物理机具有多个IP地址,而虚拟机通常只绑定其中的一个物理网卡,即需要获取目标虚拟机所对应的物理机的IP信息。

通过SDN控制器查询资源池能否获取目标虚拟机的信息,判断目标虚拟机是否为本网内的虚拟机。当目标虚拟机的信息在资源池中时,则表明目标虚拟机为本网内的虚拟机,SDN能够计算或获取发送数据的虚拟机到达目标虚拟机的路由信息。当目标虚拟机的信息不在资源池中时,则表明目标虚拟机为外网的虚拟机。

步骤103,SDN控制器根据物理机的IP信息进行路由选择,并将到达物理机的路由信息发送到转发设备。

转发设备接收到虚拟机数据包时,如果判断需要新建连接,则将虚拟机数据包发送到SDN控制器,请求路由信息。在云管理平台中存储虚拟机的IP地址与虚拟机标识码的对应关系,以及虚拟机标识码对应的物理机的IP信息。SDN控制器基于目标虚拟机的IP地址从云管理平台中查询出目标虚拟机所在的物理机的IP信息。

上述实施例中的虚拟机数据的转发方法,通过将虚拟机的IP和云管理平台分配给虚拟机的唯一识别码建立对应关系,以及虚拟机标识码与物理机之间的对应关系,将虚拟机之间的IP通信需求转换到对应虚拟机,能结合虚拟机的状态及管理策略直接制定通信流表,提升效率。

在网络的路由选择中,通过虚拟机的识别码间接查找目标虚拟机所在的物理服务器信息,从而降低路由的查找复杂度。网络控制器和云管理平台的信息协同,利用云计算的特性进行虚拟机的路径选择。

在一个实施例中,当SDN控制器基于目标虚拟机的IP地址判断目标虚拟机为外网的虚拟机时,则将虚拟机数据包转发到网关设备。SDN控制器进行路径计算,获取到达目标虚拟机所在的物理机的路由信息。SDN控制器可以采用距离矢量路由选择算法或链路状态路由选择算法进行路径计算。

转发设备根据路由信息将虚拟机数据包转发到目标虚拟机所在的物理机,由物理机将虚拟机数据包分发给目标虚拟机。转发设备为OpenFlow交换机等,虚拟机标识码包括虚拟化类型和物理机的MAC地址。

如图4所示,在当前的云资源池中,由于网络控制器将每一个虚拟 机的网卡(IP地址)作为一个接入结点,当转发的数据包在流表中没有找到对应项时,转发设备(虚拟交换机、物理交换机等)向控制器请求传输路径,控制器基于IP路由协议或路由算法进行路径选择,产生新的网络流表。在路径的选择中,由于控制器是基于IP进行路由,在选择效率上大打折扣。

本发明的虚拟机数据的转发方法,提出利用云管理平台中虚拟机识别码和IP地址的对应关系,在网络控制器进行路由计算时,先确认虚拟机所在的物理机或物理服务器(即宿主机)的网络位置,并基于宿主机进行路径选择,大幅减少路由算法的组合匹配项。

如图5所示,首先,当两台虚拟机之间要建立通信路由时,虚拟机正常发出数据包,当转发设备收到数据包要进行转发时,由于是新建的连接,需要向控制器查询转发流表,因此将虚拟机的数据包转发给控制器。

当SDN控制器收到路由查询时,首先基于虚拟机的数据包进行解析,查找目标IP是否在资源池范围内,如果是外网的数据包,则按照正常的流程发给网关设备。当发现是资源池内的另外一台虚拟机时,则在云管理平台的数据库中,根据目标IP地址查到虚拟机标识码,从而找到虚拟机所在的物理机的信息,根据与所述目标虚拟机对应的所述物理机的IP信息进行路由选择。

转发设备根据收到的路由选择信息将数据包转发到相应的物理机,由于路由选择是在物理机列表中选择转发路径,相比在数量较多的虚拟机中进行路径转发,能实现更加高效的路由选择。

通常虚拟机识别码按照虚拟化类型和物理服务器MAC地址编排,有利于虚拟机识别码和宿主机位置的检索,物理机也可以在管理平台建立识别码对应关系

在一个实施例中,在当前的云资源池中,首先,当两台虚拟机vm1和vm6之间要建立通信路由时,虚拟机vm1正常发出数据包,当转发设备(物理交换机,如常用的openflow交换机)收到数据包要进行转发时,由于是新建的连接,需要向SDN网络控制器查询转发流表,因此将虚拟 机vm1的数据包转发给控制器。

当控制器收到路由查询时,首先基于虚拟机vm1的数据包进行解析,查找目标IP是否在资源池范围内,如果是外网的数据包,则按照正常的流程发给网关设备。如果发现是资源池内的另外一台虚拟机时,则在云管理平台的数据库中,根据目标IP地址查到虚拟机vm6的标识码,从而找到虚拟机所在的物理机B的信息,根据物理机B的IP信息进行路由选择。

转发设备根据收到的路由选择信息将数据包转发到相应的物理机B,由于路由选择是在物理机列表(即A和B)中选择转发路径,相比在数量较多的虚拟机(vm1、vm2、vm3、vm4、vm5、vm6)中进行路径转发,能实现更加高效的路由选择。

在一个实施例中,本发明提供一种SDN控制器。如图6所示,数据包接收单元41接收转发设备发送的虚拟机数据包。目标IP解析单元42从虚拟机数据包中解析出目标虚拟机的IP地址。物理地址获取单元43基于目标虚拟机的IP地址判断目标虚拟机是否为本网内的虚拟机.

如果是,物理地址获取单元43则获取目标虚拟机的IP地址对应的虚拟机标识码,并获取与虚拟机标识码对应的目标虚拟机所在的物理机的IP信息。路由选择单元44根据物理机的IP信息进行路由选择。路由下发单元45将到达物理机的路由信息发送到转发设备。

在一个实施例中,物理地址获取单元43基于目标虚拟机的IP地址从云管理平台中查询出目标虚拟机所在的物理机的IP信息。在云管理平台中存储虚拟机的IP地址与虚拟机标识码的对应关系,以及虚拟机标识码对应的物理机的IP信息。

数据包转发单元46当基于目标虚拟机的IP地址判断目标虚拟机为外网的虚拟机时,则将虚拟机数据包转发到网关设备。路由选择单元44进行路径计算,获取到达目标虚拟机所在的物理机的路由信息。路由选择单元44采用距离矢量路由选择算法或链路状态路由选择算法等进行路径计算。

在一个实施例中,本发明提供一种SDN系统,包括:转发设备、如 上的SDN控制器。

上述实施例提供的虚拟机数据的转发方法、SDN控制器和SDN系统,具备以下优点:

(1)由于服务器虚拟化软件的出现,一个物理服务器可以虚拟机出数十个甚至上百个虚拟机,在控制器进行虚拟机的路由计算时,可通过本方法将路由计算缩小数十甚至数百倍;

(2)通过和云管理平台的协同,能更加有效地实现计算、网络、存储资源的一体化管理和资源的编排,提升资源的利用率和云服务能力。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1