虚拟机网络的数据包转发方法和装置的制作方法

文档序号:7698255阅读:139来源:国知局
专利名称:虚拟机网络的数据包转发方法和装置的制作方法
技术领域
本发明涉及虚拟机网络技术,尤其涉及一种虚拟机网络的数据包转发方 法和装置。
背景技术
近年来,随着网络、通讯等各种技术的日趋成熟以及应用的深入,网络 中聚合了各种计算资源、存储资源、数据资源等,但由于物理平台的异构以 及灵活多样的应用需求等各种因素导致这些资源难以有效利用。针对上述情 况,虚拟机技术应运而生,其能有效利用和共享这些资源。计算资源的虚拟 化可以提供动态构建的方式,根据应用任务的需求对资源共享和动态部署, 以便动态的建立基于分布式计算资源的虛拟计算环境,并且虛拟化技术可以 屏蔽硬件设备的异构性,消除软件对硬件的独占性,这些特点使得计算资源 在使用方面上更高效透明。
虚拟机技术可以很好的解决单机的应用,提供隔离的运行环境,但复杂 的网络应用往往需要多机协同,这必须将多个虚拟机连接成网络来满足需求。 但通常的情况下,虚拟机网络中的虛拟机可能分布在不同的宿主机上,并且 宿主机可能分布在不同的网络中,这就需要将不同网络的虛拟机连接起来形 成独立的虛拟机网络。上述技术可称为面向虚拟计算环境的分布式虛拟机网 络技术。
面向虚拟计算环境的分布式虚拟机网络技术需要面向虚拟机网络的特点
来设计。虛拟机网络的特点包括虚拟机网络动态变化,即要求虚拟节点加 入或者退出网络时仍能保证构建的虚拟机网络持续运行;数据传输性能高,从而能够适应虚拟机通常承栽的计算工作;协同性好,虚拟机网络应用特点 要求虚拟机互相协同,其网络规模为十几到几十个虚拟机节点,且虚拟机节 点不需要加入物理网络。
考虑对虛拟机网络的上述特点,如何在虚拟环境的层面构建和管理虛拟 机网络已成为目前的一个热点研究问题。目前常见的虛拟才几网络」技术有如下 几种
1) "N2N"使用二层虚拟局域网技术,采用点对点(Point to Point; 以下简称P2P)的架构,但由于其形成的虚拟机网络是静态的,所以不能够 进行动态调整;并且在数据包转发的时候并没有釆用组播的方式,使得网络 中的数据效率不够高。
2 )虛拟分布式以太网(Virtual Distributed Ethernet;以下简称VDE ) 是一种自适应的虛拟以太网技术,主要通过虛拟交换机(vde-switch)来连 接虛拟机网络设备或者互联来构成虚拟机网络体系架构。该虛拟机网络采用 客户端/服务器(Client/Server;以下筒称C/S)架构,虛拟机网络在虚拟 节点加入或者退出时不能灵活动态调整;并且在数据包转发的时候需要专门 的端口加入进行相应的转发,使得虚拟机网络中的数据传输效率很低。
3) 基于P2P网络之上的IP隧道技术的网络虛拟化技术(IP Over P2P; 以下简称IPOP)是利用P2P技术发展的成果,构建P2P覆盖网络之上的虛 拟才几网络。但是在解冲斤介质访问控制(Media Access Control;以下简称 MAC)地址的时^美^吏用分布式哈希表(Distributed Hash Table;以下简称'. DHT )得到MAC地址,致使虚拟机网络中的数据传输效率不高,并且DHT比较 适合大型的网络维护,应用于虚拟机网络中则维护成本较高。
4) 开放式虛拟专用网络(Open Virtual Private Network;以下简称 0penVPN)构架虛拟机节点形成虛拟机网络,此时虛拟机网络是物理网络的拓 展,需要中心服务器的接入点,故采用C/S模式。由于这种架构对服务器过 分的依赖,将造成严重的瓶颈问题,导致整个网络的灵活性以及效率表现均不够好。
从以上介绍中可以看出,当前面向虚拟计算环境的分布式虚拟机网络技
术存在着如下缺陷目前基于多宿主机的虚拟机网络由于作为物理网络的延 伸,常常采用C/S的方式来架构网络,但C/S模式在网络中由于过分依赖于 中心节点的处理能力,造成网络中的瓶颈,无法在中心节点停机后网络还能 继续稳定;并且由于各个节点间的转发都需要服务节点的参与,导致整个网 络效率低下、不够灵活。因此C/S的模式不能适应需求。
P2P架构的虚拟机网络是目前广泛应用的。现有P2P虚拟机网络一般包 括多个虚拟节点,即虚拟机。虚拟机网络的各虚拟机可以分布于不同的宿主 机上,通常一台宿主才几上可以运行多个虚拟机,其各自独立地运行。如图1 所示为现有技术中 一 台宿主机上的虚拟机网络架构示意图,该宿主机具有一 物理网卡2,运行于该宿主机上的各虚拟机通过虚拟化形成各自的虚拟网卡 3。物理网卡2通过一处理模块4与各个虚拟网卡3相关联,且该物理网卡2 和各虛拟网卡3均具有独立且唯一的MAC地址和分配的IP地址。在虚拟机网 络中,各宿主机的物理网卡2分别通过路由器5相关联从而构成一定M^莫的 P2P架构的虚拟机网络,通过物理网卡2发送出的数据包凭借目的宿主机的 IP地址在网络中路由转发。
基于上述架构的虚拟机网络,宿主机内虚拟网卡接收数据包的过程一般 为由物理网卡从网络上接收数据包;处理模块对数据包进行解析后识别出 该数据包的目的虛拟机IP地址和目的虚拟机MAC地址;处理模块根据目的虚 拟机MAC地址将数据包发送给相应的虚拟网卡,若目的虚拟机MAC地址为广 播MAC地址,则发送给所有虚拟网卡,若为单播MAC地址,则发送给对应的 一块虚拟网卡。数据包发送的过程与接收的过程相反处理模块由虚拟网卡 获取待发送的数据包;处理模块对数据包进行解析后识别出该数据包的目的 宿主机IP地址和目的虚拟机MAC地址;处理模块根据目的宿主机IP地址和 目的虚拟机MAC地址将数据包传输给物理网卡以便进行发送。由上述P2P架构的虚拟机网络数据包转发过程可知在P2P架构的虛拟 机网络技术中,若采用DHT来确定目的虚拟机的MAC地址,则容易造成不必 要的维护上的浪费。另外,虛拟网卡发送出去的数据包需要识别目的虚拟机 所在宿主机的IP地址,从而在网络中进行路由,当虚拟网卡仅记录有目的虚 拟机的MAC地址时,则只能以广播形式发送数据包给虚拟机网络中的所有虚 拟网卡,在多虚拟节点参予的互相通讯中会造成带宽资源的浪费,导致传输 效率较低;以广播形式传输数据包时会增加网络负载,影响网络传输速度。

发明内容
本发明的目的是提供一种虚拟机网络的数据包转发方法和装置,以降低 虛拟机网络中的带宽负载,提高数据包传输效率。
为实现上述目的,本发明提供了一种虚拟机网络的数据包转发方法,包

步骤IO、转发才莫块监测本地物理网卡和本地虚拟网卡是否有数据包,当 监测到所迷物理网卡有待发送至本地虚拟网卡的数据包时,执行步骤20,当 监测到所述虚拟网卡有待发送至网络的数据包时,执行步骤40;
步骤20、所述转发模块从所述数据包中解析获取源宿主机IP地址和源 虛拟机介质访问控制地址;
步骤30、所述转发模块将所述源宿主机IP地址和源虛拟机介质访问控 制地址存储到一数据库中,作为相应的IP地址和介质访问控制地址,接收数 据包转发处理流程结束;
步骤40、所述转发模块从所述数据包中解析获取目的虛拟机介质访问控 制i也址;
步骤50、所述转发模块判断所述目的虚拟机介质访问控制地址是否为广 播介质访问控制地址,若是,则执行步骤60,否则执行步骤70;
步骤60、所述转发模块根据所述虚拟网卡的IP地址和子网掩码计算获得所述虚拟网卡归属的组播组的组播IP地址,并将所述组播IP地址作为目
的宿主机IP地址,而后执行步骤9 0;
步骤70、所述转发模块根据所述目的虚拟机介质访问控制地址在所述数 据库中进行匹配,并判断是否能匹配到一致的介质访问控制地址,若是,则 执行步骤80,若否,则执行步骤60;
步骤80、所述转发模块在所述数据库中查询获取对应的IP地址,并将 所述IP地址作为目的宿主片几IP地址;
步骤90、所述转发模块将所述目的宿主机IP地址设置到待发送至网络 的数据包中。
为实现上述目的,本发明还提供了一种虛拟机网络的数据包转发装置, 包括与本地物理网卡和本地虚拟网卡分别相关联的转发模块,以及与所述 转发模块相关联的数据库,且所述转发模块包括
监测单元,与所述物理网卡和所述虚拟网卡分别相关联,用于监测所述 物理网卡和所述虛拟网卡是否有数据包;
第一解析单元,与所述监测单元相关联,用于当所述监测单元监测到所 述物理网卡有待发送至本地虚拟网卡的数据包时,从该数据包中解析获取源 宿主机IP地址和源虚拟机介质访问控制地址;
存储单元,与所述第一解析单元和所述数据库分别相关联,用于将所述 源宿主机IP地址和源虚拟机介质访问控制地址存储到所述数据库中,作为相 应的IP地址和介质访问控制地址;
第二解析单元,与所述监测单元相关联,用于当所述监测单元监测到所 述虚拟网卡有待发送至网络的数据包时,从该数据包中解析获取目的虚拟机 介质访问控制地址;
判断单元,与所述第二解析单元相关联,用于判断所述目的虚拟机介质 访问控制地址是否为广播介质访问控制地址;
匹配单元,与所述判断单元和所述数据库分别相关联,用于当所述判断
10单元的判断结果为否时,根据所述目的虚拟机介质访问控制地址在所述数据
库中进行匹配;
查询单元,与所述匹配单元和所述数据库分别相关联,用于当所述匹配 单元匹配到一致的介质访问控制地址时,在所述数据库中查询获取对应的IP 地址,并将所述IP地址作为目的宿主机IP地址;
计算单元,与所述判断单元和所述匹配单元分别相关联,用于当所述判 断单元的判断结果为是时或所述匹配单元未匹配到一致的介质访问控制地址 时,根据所述虚拟网卡的IP地址和子网掩码计算获得所述虚拟网卡归属的组 播组的组播IP地址,并将所述组播IP地址作为目的宿主才几IP地址;
设置单元,与所述查询单元和所述计算单元分别相关联,用于将所述目 的宿主机IP地址设置到待发送至网络的数据包中。
由以上技术方案可知,本发明提出了面向虚拟计算环境的分布式虚拟机 网络的数据包转发方法和装置,该方案具有以下优势通过在宿主机的物理 网卡和虚拟网卡之间设置转发模块来学习记录对应的宿主机IP地址和虚拟 机的MAC地址,在发送数据包时可以通过查询来获得对应目的宿主机IP地址, 随后可进行单播发送,不必以广播方式发送数据包,这样可以降低带宽负载, 提高数据包传输效率。当查询不到明确的目的宿主机IP地址时,可以计算获 得该虛拟网卡的IP地址所归属的组播组IP地址,以组播方式发送数据包, 相比于广播发送仍然可以降低带宽负载。本发明的技术方案在虚拟机网络中 采用单播与组播相结合的方式进行数据包传输,在两两虛拟节点间的通讯采 用单播的方式,而在其他情况下对归属于同一组播组的虚拟网段采用组播的 方式。虚拟机网络中这种通讯方式,解决了原先通讯方式中带宽和效率等问 题。


图1为现有技术中一台宿主机上的虚拟机网络架构示意ii图2为本发明虚拟机网络的数据包转发方法第一实施例的流程图; 图3为本发明虛拟机网络的数据包转发方法第一实施例所基于的虚拟机 网络架构示意图4为本发明虚拟机网络的数据包转发方法第二实施例所基于的虚拟机 网络架构示意图5为本发明虛拟机网络的数据包转发方法第三实施例的流程图; 图6为本发明虚拟机网络的数据包转发装置实施例的结构示意图。
具体实施例方式
下面通过具体实施例并结合附图对本发明做进一步的详细描述。 虚拟机网络的数据包转发方法第 一 实施例
图2为本发明虛拟机网络的数据包转发方法第一实施例的流程图。图3 为本发明虚拟机网络的数据包转发方法第一实施例所基于的虚拟机网络架构 示意图,如图3所示,在一台宿主机的虚拟机引擎中增加了转发模块1和数 据库6等功能模块,转发模块1代替了原有的处理模块,分别连接物理网卡 2和各虚拟网卡3,数据库6与转发模块1相关联,用于存储对应的IP地址 和MAC地址。本实施例的方法具体包括如下步骤
步骤10、转发^^莫块同时监测本地物理网卡和本地虚拟网卡是否有数据包, 通常物理网卡有的数据包是来自网络待发送给本地虛拟网卡的接收数据包, 虚拟网卡有的数据包是来自虚拟机待发送至网络的发送数据包。当转发模块 监测到物理网卡有待发送至本地虚拟网卡的接收数据包时,执行步骤20,当 转发模块监测到虛拟网卡有待发送至网络的发送数据包时,执行步骤40;
步骤20、转发模块获取该接收数据包,并从接收数据包中解析获取源宿 主机IP地址,即"src—ip"和"port端口号,,,并获耳又源虚拟机MAC地址, 即 "src—mac,, ,
步骤30、转发模块将源宿主机IP地址和源虚拟机MAC地址存储到该数据库中,作为相应的IP地址和MAC地址,接收数据包转发处理流程结束,此 后转发模块可以按照目的虚拟机MAC地址将接收数据包传输给相应的虛拟网
卡;
步骤40、转发模块从虚拟网卡获取该发送数据包,并从发送数据包中解 析获取目的虚拟机MAC地址,即"des-mac,,;
步骤50、转发才莫块判断该目的虚拟机MAC地址是否为广播MAC地址,即 判断该目的虚拟机MAC地址是否为"ff: ff: ff: ff: ff: ff",若是,则执行步 骤60,否则执行步骤70;
步骤60、转发模块根据发送数据包的虚拟网卡的IP地址和子网掩码, 通过网络参数计算获得该虚拟网卡归属的组播组的组播IP地址,即 "multicast一ip",并将组播IP地址作为目的宿主才几IP地址,即"des — ip, port端口号",而后执行步骤90。在本步骤60中,通过网络参数计算获得 组播IP地址的具体实现方式可以有多种形式,例如转发模块可以从该发送 数据包中解析获取源虚拟机虚拟网卡的IP地址和子网掩码,即获取虚拟网卡 的IP地址,例如"ip: 192. 168. 100. 4",子网掩码"mask: 255. 255. 255. 0", 而后将"ip,,与"mask"进行与运算,得到网络号"192.168.100.0",将该 网络号的第四部分与"0.0.0.255"进行与运算,得到"192.168.100.255", 最后将该网络号的第一部分"192"转换为"224"使其归属于组播地址的范 围,最终计算出组播IP地址为"224.168.100.255",该组播IP地址是该虚 拟网卡所归属的组播组的IP地址。
步骤70、转发模块根据目的虚拟机MAC地址在数据库中进行匹配,并判 断是否能匹配到一致的MAC地址,若是,则执行步骤80,若否,则执行步骤 60;
步骤80、转发;f莫块在数据库中查询获取对应的IP地址,并将查询到的 IP地址作为目的宿主才几IP地址;
步骤90、转发^t块将目的宿主机IP地址设置到待发送至网络的发送数 据包中,从而可以将其通过物理网卡发送至网络。本实施例的技术方案,将现有物理网卡和虚拟网卡之间的处理模块替换 为转发模块并执行上迷转发流程,则在接收数据包的过程中,可以对源虚拟
机MAC地址和源宿主才几IP地址进行记录并j呆存到MAC数据库中,同时,对于 发送数据包的过程,可以通过查询MAC数据库,根据目的虚拟机MAC地址确 定目的宿主机IP地址设置在发送数据包中,从而可以单播形式将发送数据包 传输出去。上述4支术方案通过不断学习记录对应的虚拟才几MAC地址和宿主枳j IP地址,使得原本无法确定目的宿主机IP地址的发送数据包可以通过查询 来确定,进而可以采用单播形式发送,对于广播MAC地址也可以将数据包发 送范围缩小到该虚拟网卡的虚拟机所归属的组播组内,结合单播和组播形式 减轻了网络负荷,有利于提高数据传输速度。 虛拟机网络的数据包转发方法第二实施例
图4为本发明虚拟机网络的数据包转发方法第二实施例所基于的虚拟机 网络架构示意图,相比于图3中的虛拟机网络增加了一组播控制模块8,也 可以称为"Membership"模块。该组播控制模块8与各虚拟网卡3相关联, 同时与路由器5相关联,基于该虚拟机网络的方法是在上述第一实施例的基 础上进一步包括下述步骤
当组播控制模块接收到虛拟网卡发送的注册组播组消息时,采集该虚拟 网卡的MAC地址、IP地址和子网掩码,将其发送至路由器,以便路由器根据 该虚拟网卡的IP地址和子网掩码通过网络参数计算出组播IP地址,按照组 播IP地址将其加入到相应虚拟网段的组播组中。
或者,当组播控制模块接收到虚拟网卡发送的注销组播组消息时,采集 该虚拟网卡的MAC地址、IP地址和子网掩码,将其发送至路由器,以便路由 其根据该虚拟网卡的IP地址和子网掩码通过网络参数计算出组播IP地址, 按照组播IP地址将其从相应虚拟网段的组播组中删除。
上述步骤可以在虚拟机网络进行数据包转发的过程中实施。本实施例的 技术方案允许虚拟^L网络中的虚拟^/L节点动态的加入和退出相应的组播组, 增加了虛拟机网络数据包转发的灵活性。虚拟机网络的数据包转发方法第三实施例
图5为本发明虚拟机网络的数据包转发方法第三实施例的流程图。本实 施例可以上述第一或第二实施例为基础,如图3、 4所示,数据库还连接一数 据库更新模块7,用于对数据库6中的数据进行更新,则本实施例的方法在 上述第一、第二实施例的基础上进一步包括下述步骤
步骤Al、当数据库更新模块监测到一对IP地址和MAC地址存储到数据库 中时,对应该IP地址和MAC地址设置计时器,且当监测到该MAC地址被匹配 为一致的MAC地址时将计时器的数值清零;
步骤A2、数据库更新模块监测计时器的数值,并判断其是否大于时间门 限值,若是,则删除该IP地址和MAC地址,若否,则返回步骤A2,继续监 测计时器的数值。
本实施例的技术方案可以及时将数据库中设定时间内不被使用的MAC地 址和IP地址删除,以便保留数据库的存储容量,提高匹配MAC地址的效率。 虛拟机网络的数据包转发装置实施例
图6为本发明虚拟机网络的数据包转发装置实施例的结构示意图。如图 6所示,该转发装置包括与本地物理网卡2和本地虚拟网卡3分别相关联的 转发模块l,以及与转发模块1相关联的数据库6,且转发模块l具体包括监 测单元IOI、第一解析单元102、存储单元103、第二解析单元104、判断单 元105、匹配单元106、查询单元107、计算单元108和设置单元109。其中, 监测单元101与物理网卡2和虛拟网卡3分别相关联,用于监测物理网卡2 和虚拟网卡3是否有数据包;第一解析单元102与监测单元101相关联,用 于当监测单元101监测到物理网卡2有待发送至本地虛拟网卡3的数据包时, 从该数据包中解析获取源宿主机IP地址和源虛拟机MAC地址;存储单元103 与第一解析单元102和数据库6分别相关联,用于将源宿主机IP地址和源虛 拟机MAC地址存储到数据库6中,作为相应的IP地址和MAC地址;第二解析 单元104与监测单元101相关联,用于当监测单元101监测到虛拟网卡3有 待发送至网络的数据包时,从该数据包中解析获取目的虚拟机MAC地址;判断单元105与第二解析单元104相关联,用于判断目的虚拟机MAC地址是否 为广播MAC地址;匹配单元106与判断单元105和数据库6分别相关联,用 于当判断单元105的判断结果为否时,根据目的虚拟机MAC地址在数据库6 中进行匹配;查询单元107与匹配单元106和数据库6分别相关联,用于当 匹配单元106匹配到一致的MAC地址时,在数据库6中查询获取对应的IP地 址,并将IP地址作为目的宿主机IP地址;计算单元108与判断单元105和 匹配单元106分别相关联,用于当判断单元105的判断结果为是时或匹配单 元106未匹配到一致的MAC地址时,才艮据虚拟网卡3的IP地址计算获得该虛 拟网卡3归属的组播组的组播IP地址,并将该组播IP地址作为目的宿主机 IP地址;设置单元109与查询单元107和计算单元108分别相关联,用于将 目的宿主机IP地址设置到待发送至网络的数据包中。
本实施例的转发装置具体可以实施本发明虚拟机网络的数据包转发方法 第一实施例的技术方案,通过转发模块和数据库学习记录对应的宿主机IP地 址和虚拟机MAC地址,避免不必要的广播,且将广播形式转换为组播形式, 进一步减小带宽负载,提高数据传输效率。
在本实施例的基础上,可以进一步在转发装置中设置组播控制模块8, 如图6所示,组播控制模块8与各虚拟网卡3和路由器5分别相关联,用于 当接收到虚拟网卡3发送的注册组播组消息时,采集虚拟网卡3的MAC地址、 IP地址和子网掩码,将其发送至路由器5以根据虚拟网卡3的IP地址和子 网掩码加入相应的组播组;且用于当接收到虛拟网卡3发送的注销组播组消 息时,采集该虚拟网卡3的MAC地址、IP地址和子网掩码,将其发送至路由 器5以根据虛拟网卡3的IP地址和子网掩码从相应的组播组中删除该虚拟网 卡3。
上述转发装置具体可以实施本发明虛拟机网络的数据包转发方法第二实 施例的技术方案,通过设置组播控制模块,使虛拟机可以动态的加入或退出 相应的组播组,增加网络数据传输的灵活性。
本实施例的转发装置还可以包括与数据库6相关联的数据库更新模块7,如图6所示,该数据库更新模块7具体包括计时器701和删除单元702。其 中,计时器701与数据库6相关联,用于当监测到IP地址和MAC地址存储到 数据库6中时,对应该IP地址和MAC地址开始计时,且当监测到该MAC地址 被匹配为一致的MAC地址时将计时器701的数值清零;删除单元702与计时 器701和数据库6分别相关联,用于监测计时器701的数值,并判断其是否 大于时间门限值,若是,则从数据库6中删除该IP地址和MAC地址,若否, 则继续监测计时器701的数值。
上述转发装置具体可以实施本发明虚拟机网络的数据包转发方法第三实 施例的技术方案,通过计时手段监测数据库中的IP地址和MAC地址是否被使 用,如果IP地址和MAC地址在预设的时间周期内都不会^皮使用,则可以将其 删除,以便保持数据库中的足够空间。
本发明的虚拟机网络的数据包转发装置具体可以采用本发明虚拟机网络 的数据包转发方法任一实施例的技术方案,以便结合采用单播和组播的方式, 降低网络带宽负载,提高虚拟机网络中的数据包传输效率。
本领域普通4支术人员可以理解实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括ROM、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技
术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1、一种虚拟机网络的数据包转发方法,其特征在于,包括步骤10、转发模块监测本地物理网卡和本地虚拟网卡是否有数据包,当监测到所述物理网卡有待发送至本地虚拟网卡的数据包时,执行步骤20,当监测到所述虚拟网卡有待发送至网络的数据包时,执行步骤40;步骤20、所述转发模块从所述数据包中解析获取源宿主机IP地址和源虚拟机介质访问控制地址;步骤30、所述转发模块将所述源宿主机IP地址和源虚拟机介质访问控制地址存储到一数据库中,作为相应的IP地址和介质访问控制地址,接收数据包转发处理流程结束;步骤40、所述转发模块从所述数据包中解析获取目的虚拟机介质访问控制地址;步骤50、所述转发模块判断所述目的虚拟机介质访问控制地址是否为广播介质访问控制地址,若是,则执行步骤60,否则执行步骤70;步骤60、所述转发模块根据所述虚拟网卡的IP地址和子网掩码计算获得所述虚拟网卡归属的组播组的组播IP地址,并将所述组播IP地址作为目的宿主机IP地址,而后执行步骤90;步骤70、所述转发模块根据所述目的虚拟机介质访问控制地址在所述数据库中进行匹配,并判断是否能匹配到一致的介质访问控制地址,若是,则执行步骤80,若否,则执行步骤60;步骤80、所述转发模块在所述数据库中查询获取对应的IP地址,并将所述IP地址作为目的宿主机IP地址;步骤90、所述转发模块将所述目的宿主机IP地址设置到待发送至网络的数据包中。
2、 根据权利要求1所述的虛拟机网络的数据包转发方法,其特征在于, 还包括当组播控制模块接收到虚拟网卡发送的注册组播组消息时,采集所述虚 拟网卡的介质访问控制地址、IP地址和子网掩码,将其发送至路由器以根据所述虚拟网卡的IP地址和子网掩码加入相应的组^"组;或者当所述组播控制模块接收到虚拟网卡发送的注销组播组消息时,采集该 虚拟网卡的介质访问控制地址、IP地址和子网掩码,将其发送至路由器以根 据所述虚拟网卡的IP地址和子网掩码从相应的组播组中删除。
3、 根据权利要求1或2所述的虚拟机网络的数据包转发方法,其特征在 于,还包括步骤A1、当数据库更新模块监测到IP地址和介质访问控制地址存储到所 述数据库中时,对应该IP地址和介质访问控制地址设置计时器,且当监测到 该介质访问控制地址被匹配为一致的介质访问控制地址时将所述计时器的数 值清零;步骤A2、所述数据库更新模块监测所述计时器的数值,并判断其是否大 于时间门限值,若是,则从所述数据库中删除该IP地址和介质访问控制地址, 若否,则返回步骤A2,继续监测计时器的数值。
4、 一种虚拟机网络的数据包转发装置,其特征在于,包括与本地物理 网卡和本地虚拟网卡分别相关联的转发模块,以及与所述转发模块相关联的 数据库,且所述转发模块包括监测单元,与所迷物理网卡和所述虚拟网卡分别相关联,用于监测所述 物理网卡和所述虛拟网卡是否有数据包;第一解析单元,与所述监测单元相关联,用于当所述监测单元监测到所 述物理网卡有待发送至本地虚拟网卡的数据包时,从该数据包中解析获取源 宿主机IP地址和源虚拟机介质访问控制地址;存储单元,与所述第一解析单元和所述数据库分别相关联,用于将所述 源宿主机IP地址和源虚拟机介质访问控制地址存储到所述数据库中,作为相 应的IP地址和介质访问控制i也址;第二解析单元,与所述监测单元相关联,用于当所述监测单元监测到所 述虚拟网卡有待发送至网络的数据包时,从该数据包中解析获取目的虚拟机介质访问控制地址;判断单元,与所述第二解析单元相关联,用于判断所述目的虚拟机介质访问控制地址是否为广播介质访问控制地址;匹配单元,与所述判断单元和所述数据库分别相关联,用于当所述判断 单元的判断结果为否时,根据所述目的虚拟机介质访问控制地址在所述数据 库中进行匹配;查询单元,与所述匹配单元和所述数据库分别相关联,用于当所述匹配 单元匹配到一致的介质访问控制地址时,在所述数据库中查询获取对应的IP 地址,并将所述IP地址作为目的宿主机IP地址;计算单元,与所迷判断单元和所述匹配单元分别相关联,用于当所述判 断单元的判断结果为是时或所述匹配单元未匹配到一致的介质访问控制地址 时,根据所述虛拟网卡的IP地址和子网掩码计算获得所述虚拟网卡归属的組 播组的组播IP地址,并将所述组播IP地址作为目的宿主才几IP地址;设置单元,与所述查询单元和所述计算单元分别相关联,用于将所述目 的宿主机IP地址设置到待发送至网络的数据包中。
5、根据权利要求4所述的虚拟机网络的数据包转发装置,其特征在于, 还包括组播控制模块,与各所述虛拟网卡和路由器分别相关联,用于当接收到 虛拟网卡发送的注册组播组消息时,采集所述虚拟网卡的介质访问控制地址、 IP地址和子网掩码,将其发送至所述路由器以根据所述虚拟网卡的IP地址和 子网掩码加入相应的组播组;且用于当接收到虚拟网卡发送的注销组播组消 息时,采集该虚拟网卡的介质访问控制地址、IP地址和子网掩码,将其发送 至所述路由器以根据所述虚拟网卡的IP地址和子网掩码从相应的组播组中删 除。
6、根据权利要求4或5所述的虚拟机网络的数据包转发装置,其特征在 于,还包括与所述数据库相关联的数据库更新模块,所述数据库更新模块包 括计时器,与所述数据库相关联,用于当监测到IP地址和介质访问控制地 址存储到所述数据库中时,对应该IP地址和介质访问控制地址开始计时,且 当监测到该介质访问控制地址#1匹配为一致的介质访问控制地址时将所述计 时器的数值清零;删除单元,与所述计时器和所述数据库分別相关联,用于监测所述计时 器的数值,并判断其是否大于时间门限值,若是,则从所述数据库中删除该 IP地址和介质访问控制地址,若否,则继续监测计时器的数值。
全文摘要
本发明涉及一种虚拟机网络的数据包转发方法和装置。该方法包括当监测到物理网卡有待发送至本地虚拟网卡的数据包时,解析获取源宿主机IP地址和源虚拟机MAC地址存储到数据库中;当监测到虚拟网卡有待发送至网络的数据包时,解析获取目的虚拟机MAC地址;判断其是否为广播MAC地址,若是则计算获得组播IP地址作为目的宿主机IP地址,否则在数据库中查询获取IP地址作为目的宿主机IP地址,若查询不到则计算组播IP地址作为目的宿主机IP地址;将目的宿主机IP地址设置到数据包中。该装置包括执行上述方法的模块。本发明在虚拟机网络中采用单播与组播相结合的方式进行数据传输,降低了带宽负载,提高了数据包传输效率。
文档编号H04L12/56GK101459618SQ200910076230
公开日2009年6月17日 申请日期2009年1月6日 优先权日2009年1月6日
发明者旻 占, 怀进鹏, 沁 李, 沃天宇, 胡春明, 亮 钟 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1