CN101594358A - 三层交换方法、装置、系统和宿主机 - Google Patents
三层交换方法、装置、系统和宿主机 Download PDFInfo
- Publication number
- CN101594358A CN101594358A CNA2009100880208A CN200910088020A CN101594358A CN 101594358 A CN101594358 A CN 101594358A CN A2009100880208 A CNA2009100880208 A CN A2009100880208A CN 200910088020 A CN200910088020 A CN 200910088020A CN 101594358 A CN101594358 A CN 101594358A
- Authority
- CN
- China
- Prior art keywords
- layers
- virtual machine
- exchange
- message
- destination address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种三层交换方法、装置、系统和宿主机。该方法包括:接收源虚拟机发送的网络报文;根据预先获取的三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;根据所述目的虚拟机的三层目的地址将所述经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给所述目的虚拟机。本发明的技术方案中,宿主机根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,有效提高了虚拟机网络中三层交换的效率。
Description
技术领域
本发明涉及虚拟机技术领域,特别涉及一种三层交换方法、装置、系统和宿主机。
背景技术
虚拟机技术是将软件安装在虚拟机中运行,可以实现软件快速部署、细粒度的计算资源分配和负载均衡调度、以及提供高可用的软件容错机制。目前,虚拟机技术已经逐渐被企业应用,使用虚拟机技术可以有效降低IT管理复杂度、节约管理成本、提升计算资源的利用率等。随着计算机应用的逐渐深入,软件的规模越来越庞大,功能也日益复杂化,软件的运行环境不再局限于单机环境,而是逐渐演变成运行多个不同物理位置的软件模块相互协同共同完成一项计算任务,即网络化软件。由于虚拟机技术只能直接提供单机软件的运行环境,为了让复杂的网络化软件也能够实现的降低管理复杂度以及提升资源利用率等目的,必须采用虚拟机网络。虚拟机网络是由一个由多台虚拟机互相连接形成的有特定网络连接关系的运行环境,虚拟机网络能够为复杂的网络化软件提供运行环境的支持,即将网络化软件的不同组件,按照运行要求分别安装和运行在虚拟机网络的相应节点上。由于虚拟机的最重要的特点是封装和隔离,基于这两个特点可以实现降低管理复杂度和提升资源利用率的功能。因此面向网络化应用的虚拟机网络也必须提供封装和隔离的特性,即不同虚拟机网络的实例之间是完全独立和互不影响的。虚拟机网络中可包含多个节点,在保证多个虚拟机网络之间的隔离性的前提下,一台宿主机上可运行一个或者多个虚拟机网络中的节点。虚拟机网络中可包括二层交换节点、三层交换节点和终端节点。终端节点虚拟机;二层交换节点又称为虚拟交换机,其可为虚拟机网络中的虚拟机和虚拟机之间提供链路层交换功能,一个虚拟机网络中如果存在多个虚拟交换机,表示这个虚拟机网络中存在多个不同的虚拟链路,不同虚拟链路的虚拟机在链路层是相互隔离的;三层交换节点又称为虚拟路由器,其可在二层交换节点功能的基础上为虚拟机网络中不同虚拟链路的虚拟机之间提供三层交换功能。
但是,发明人在实现本发明的过程中,发现现有技术中存在如下问题:
图1为现有技术中虚拟机网络的结构示意图,如图1所示,虚拟机网络包括虚拟交换机M、N,虚拟路由器R,虚拟机A、B和宿主机X、Y。虚拟机网络中的虚拟路由器通常是以虚拟机来实现的,与终端节点所采用的虚拟机不同的是:作为虚拟路由器的虚拟机包括多个虚拟网卡,每个虚拟网卡用于接入不同的虚拟链路;并且该虚拟机需要开启操作系统的所有功能(例如,进程调度、驱动、软件系统等),尤其是需要开启操作系统的数据包转发机制。采用上述虚拟路由器实现三层交换的过程中,在接收到网络报文后,需要调用操作系统,根据网络报文中的目的地址在多个虚拟网卡中选择出一个虚拟网卡,并通过选择出的虚拟网卡将网络报文发送出去。因此,采用上述虚拟路由器导致虚拟机网络中三层交换的效率低。
虚拟机网络中的不同虚拟机可能会运行在不同的宿主机上,因此所有要经过虚拟路由器的网络报文必须经过该虚拟路由器所在的宿主机,这会导致三角路由问题。如图1所示,虚拟机A和B运行在宿主机X上,虚拟路由器R运行在宿主机Y上,由A发往B的网络报文需要通过R实现三层交换,具体为:A发往B的网络报文,需要先由X发送给Y,通过R进行三层交换处理后,通过Y将处理后的网络报文发送给X,最后由X将网络报文发送给B。上述三角路由问题也会导致虚拟机网络中三层交换的效率低。
发明内容
本发明的目的是针对现有技术中的问题,提供一种三层交换方法、装置、系统和宿主机,从而提高虚拟机网络中三层交换的效率。
为实现上述目的,本发明提供了一种三层交换方法,包括:
接收源虚拟机发送的网络报文;
根据预先获取的三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;
根据所述目的虚拟机的三层目的地址将所述经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给所述目的虚拟机。
为实现上述目的,本发明提供了一种三层交换装置,包括:
存储模块,用于存储预先获取的三层交换信息;
接收模块,用于接收源虚拟机发送的网络报文;
三层交换模块,用于根据所述三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;
发送模块,用于根据所述目的虚拟机的三层目的地址将所述经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给所述目的虚拟机。
为实现上述目的,本发明提供了一种宿主机,包括上述三层交换装置。
为实现上述目的,本发明提供了一种三层交换系统,包括源虚拟机、目的虚拟机和上述宿主机。
本发明的技术方案中,宿主机根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有技术中虚拟机网络的结构示意图;
图2为本发明虚拟机网络的一种部署示意图;
图3为本发明实施例一提供的一种三层交换方法的流程图;
图4为本发明实施例二提供的一种三层交换方法的流程图;
图5为本发明实施例虚拟机启动的流程图;
图6为本发明实施例虚拟机停止的流程图;
图7为本发明实施例三提供的一种三层交换装置的结构示意图;
图8为本发明实施例四提供的一种三层交换装置的结构示意图;
图9为本发明实施例五提供的一种宿主机的结构示意图;
图10为本发明实施例六提供的一种三层交换系统的结构示意图。
具体实施方式
虚拟机网络是用于承载复杂网络化应用的运行环境,特点是可以为应用提供灵活分配、资源可控和相互隔离的运行环境。虚拟机网络需要预先部署。在虚拟机网络的应用场景中,虚拟机网络的产生和销毁是动态发生的,而位于底层的宿主机通常不发生变化,虚拟机网络的部署是将动态产生的虚拟机网络安装并配置在底层的宿主机上。具体地,虚拟机网络的部署可以包括虚拟机的部署、虚拟交换机的部署和虚拟路由器的部署。图2为本发明虚拟机网络的一种部署示意图,如图2所示,虚拟机A、C、E、H部署到宿主机1上,虚拟机B、D、F、G部署到宿主机2上,虚拟机I、J、K部署到宿主机3上;虚拟机A、B连接到虚拟交换机S1,虚拟机C、D、E连接到虚拟交换机S2,虚拟交换机E、F、G连接到虚拟交换机S3,虚拟交换机H、J连接到虚拟交换机S4,虚拟交换机J、K链接到虚拟交换机S5;虚拟路由器R1连接虚拟交换机S1、S2,虚拟路由器R2连接虚拟交换机S3、S4,虚拟路由器R3连接虚拟交换机S4、S5,虚拟路由器R2还与虚拟路由器R3连接。
上述虚拟机网络的部署可以由部署模块完成。部署模块可以设置在网络中的任一网络节点上,该网络节点可以为任意一个宿主机或者其它网络节点。虚拟机网络的部署完成后,部署模块会将虚拟机网络中所有虚拟路由器的三层交换信息传输给信息模块,由信息模块存储所有虚拟路由器的三层交换信息。三层交换信息是对虚拟路由器功能的完整描述,可包括虚拟路由器信息和报文处理规则。虚拟路由器信息包括所有虚拟路由器的信息,一个虚拟路由器的信息可包括该虚拟路由器所包括的多个虚拟网卡的配置信息,例如每个虚拟网卡的接口编号、子网掩码、三层目的地址、二层目的地址等。每个虚拟路由器对应于一个报文处理规则,报文处理规则可包括:目的地址路由表、策略路由规则、防火墙规则和NAT地址转换规则。信息模块存储有虚拟机网络中每个虚拟路由器的信息以及每个虚拟路由器的报文处理规则。信息模块可以设置在网络中的任一网络节点上,该网络节点可以为任意一个宿主机或者其它网络节点。
本发明在宿主机中增设三层交换装置,由三层交换装置从信息模块中预先获取三层交换信息。预先获取的三层交换信息为该宿主机上运行的虚拟机所在的虚拟链路上连接的虚拟路由器的三层交换信息以及与该虚拟路由器直接或者间接连接的虚拟路由器的三层交换信息,以图2中的宿主机2为例,宿主机2的三层交换装置预先获取的三层交换信息为虚拟路由器R2的三层交换信息以及与R2连接的R3的三层交换信息,在图2中如果R3还连接有其它的虚拟路由器,则宿主机2的三层交换装置预先获取的三层交换信息中还包括与R3连接的虚拟路由器的三层交换信息,依此类推。三层交换装置在获取了三层交换信息后,根据获取的三层交换信息加入该三层交换信息对应的虚拟路由器所在的虚拟链路,从而可以对网络报文进行三层交换处理。
图3为本发明实施例一提供的一种三层交换方法的流程图,如图3所示,该方法包括:
步骤101、接收源虚拟机发送的网络报文;
本实施例中各步骤均可以由宿主机来执行,本步骤中宿主机接收的网络报文是由源虚拟机通过该源虚拟机所在的虚拟链路发送的。
步骤102、根据预先获取的三层交换信息对该网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;
步骤103、根据目的虚拟机的三层目的地址将所述经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给目的虚拟机。
本实施例的技术方案中,宿主机根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
图4为本发明实施例二提供的一种三层交换方法的流程图,如图4所示,该方法包括:
步骤201、宿主机的三层交换装置从信息模块获取三层交换信息;
宿主机的三层交换装置可以在虚拟机启动或者迁移时从信息模块获取三层交换信息。
具体地,图5为本发明实施例虚拟机启动的流程图,如图5所示,包括:
步骤2011、虚拟机启动后,宿主机的三层交换装置接收到虚拟机监控器(VMM)发送的虚拟机启动的通知消息,该通知消息中携带有虚拟机配置文件;
步骤2012、宿主机的三层交换装置解析虚拟机配置文件,获取该虚拟机所在的虚拟链路的信息;
例如图2中的A所在的虚拟链路为S1,K所在的虚拟链路为S5,E所在的虚拟链路为S2和S3。
步骤2013、三层交换装置判断宿主机上是否运行该虚拟机所在的虚拟链路上的其它虚拟机,如果否则跳过对该虚拟机所在的虚拟链路的处理,如果是则执行步骤2014;
本步骤中,如果三层交换装置判断出宿主机上运行了该虚拟机所在的虚拟链路上的其它虚拟机,则表示该三层交换装置在其它虚拟机启动或者迁移到该宿主机上时已经获取了该虚拟机所在的虚拟链路上连接的虚拟路由器的三层交换信息,因此可跳过对该虚拟机所在的虚拟链路的处理。
例如图2中的虚拟机F,如果宿主机2已经运行了F所在的虚拟链路L3上的G,则可跳过对F所在虚拟链路L3的处理。
步骤2014、三层交换装置从信息模块中查询出与该虚拟机所在的虚拟链路连接的虚拟路由器的集合;
例如,图2中的虚拟链路S1,与S1相连的虚拟路由器为R1,则与S1相连的虚拟路由器的集合为{R1};图2中的虚拟链路S3,与S3相连的虚拟路由器R2,则与S3相连的虚拟路由器的集合为{R2};图2中的虚拟链路为S4,与S4相连的虚拟路由器为R2和R3,则与S4相连的虚拟路由器的集合为{R2,R3};
步骤2015、三层交换装置生成查询出的虚拟路由器的集合的相连闭包;
具体地,判断与查询出的虚拟路由器的集合中的每个虚拟路由器相连的虚拟路由器是否存在于查询出的虚拟路由器的集合中,如果是则跳过该相连的虚拟路由器,如果否则将该相连的虚拟路由器加入查询出的虚拟路由器的集合中;重复执行上述过程继续判断该相连的虚拟路由器,直到查询出的虚拟路由器的集合不再增加。
如图2所示,集合为{R1}时,其相连闭包为{R1};集合为{R2}时,其相连闭包为{R2,R3};集合为{R2,R3}时,其相连闭包为{R2,R3}。
步骤2016、三层交换装置从信息模块中获取相连闭包中的虚拟路由器的三层交换信息;
步骤2017、三层交换装置根据获取的三层交换信息加入相连闭包中的虚拟路由器所在的虚拟链路;
以便于收发网络报文以及对网络报文进行三层交换处理。
进一步地,当虚拟机停止时,三层交换装置需要删除三层交换信息。
图6为本发明实施例虚拟机停止的流程图,如图6所示,包括:
步骤2011a、虚拟机停止后,宿主机的三层交换装置接收到虚拟机监控器发送的虚拟机停止的通知消息,该通知消息中携带有虚拟机配置文件;
步骤2012a、三层交换装置解析虚拟机配置文件,获取该虚拟机所在的虚拟链路的信息;
步骤2013a、三层交换装置判断宿主机上是否运行该虚拟机所在的虚拟链路上的其它虚拟机,如果是则跳过对该虚拟机所在的虚拟链路的处理,如果否则执行步骤2014a;
步骤2014a、三层交换装置从信息模块中查询出与该虚拟机所在的虚拟链路连接的虚拟路由器的集合;
步骤2015a、三层交换装置生成查询出的虚拟路由器的集合的相连闭包;
具体描述可参见步骤2015,此处不再赘述。
步骤2016a、三层交换装置从信息模块中获取相连闭包中的虚拟路由器的三层交换信息;
步骤2017a、三层交换装置根据获取的三层交换信息退出相连闭包中的虚拟路由器所在的虚拟链路;
以便于停止对网络报文的处理。
步骤2018a、三层交换装置删除相连闭包中的虚拟路由器的三层交换信息。
当虚拟机发生迁移时,即虚拟机由源宿主机迁移到目的宿主机,则源宿主机和目的宿主机都需要对三层交换模块获取的三层交换信息进行调整。对于源宿主机,虚拟机的迁移相当于在源宿主机上停止运行,其具体过程可参见图6中描述的虚拟机停止的流程。对于目的宿主机,虚拟机的迁移相当于在目的宿主机上启动该虚拟机,其具体过程可参见图5中描述的虚拟机启动的流程。其中,虚拟机的迁移不是瞬间完成的,从迁移发起到迁移的结束需要一段时间,而这一时间通常为几秒至几十秒,因此,为了保证虚拟机迁移到目的宿主机的过程中以及迁移到目的宿主机之后能够不间断的工作,在虚拟机迁移到目的宿主机之后,源宿主机才能停止该虚拟机的运行,并且目的宿主机的三层交换模块从迁移发起的时刻就开始执行与虚拟机启动流程类似的步骤。不同之处在于虚拟机迁移时,三层交换模块接收的为虚拟机迁移的通知消息。
步骤202、宿主机的三层交换装置接收源虚拟机发送的二层目的地址查询报文;
具体地,宿主机的三层交换装置接收的二层目的地址查询报文是源虚拟机通过该源虚拟机所在的虚拟链路发送的;该二层目的地址查询报文为IP地址解析报文(例如为Ipv4的地址解析协议ARP报文或者Ipv6的邻居发现协议报文),三层交换装置在判断出该二层目的地址查询报文是IP地址解析报文后,执行步骤203;
步骤203、宿主机的三层交换装置根据二层目的地址查询报文携带的三层目的地址从三层交换信息的虚拟路由器信息中查询出配置三层目的地址的虚拟路由器;
三层目的地址为IP地址。
如果未查询出配置三层目的地址的虚拟路由器则丢弃二层目的地址查询报文。
步骤204、宿主机的三层交换装置将查询出的配置三层目的地址的虚拟路由器的二层目的地址发送给所述源虚拟机;
二层目的地址为MAC地址。具体地,三层交换装置可按照地址解析协议的格式发送回复报文,通过回复报文将路由器的二层目的地址发送给源虚拟机。
步骤205、宿主机的三层交换装置接收源虚拟机发送的网络报文,该网络报文中携带有二层目的地址;
该二层目的地址是步骤204中三层交换装置查询出并返回给源虚拟机的。
步骤206、宿主机的三层交换装置根据网络报文携带的二层目的地址从三层交换信息中的虚拟路由器信息中查询出配置该二层目的地址的虚拟路由器;
三层交换信息的虚拟路由器信息包括多个虚拟路由器的信息,三层交换装置查询出配置了二层目的地址的虚拟路由器。
如果未查询出配置二层目的地址的虚拟路由器则丢弃网络报文。
步骤207、宿主机的三层交换装置根据三层交换信息中查询出的虚拟路由器对应的报文处理规则对网络报文进行处理,生成处理后的网络报文、下一跳所在的虚拟链路以及下一跳的三层目的地址;
下一跳可以是其它路由器或者目的虚拟机。
步骤208、宿主机的三层交换装置根据下一跳的三层目的地址查询虚拟路由器信息中是否包括配置三层目的地址的虚拟路由器,如果是则执行步骤207,如果否则判定下一跳为目的虚拟机并执行步骤209;
具体地,三层交换装置可以从三层交换信息中查询出下一跳所在的虚拟链路对应的虚拟路由器信息,再查询下一跳所在的虚拟链路对应的虚拟路由器信息中是否包括配置该三层目的地址的虚拟路由器;
如果三层交换装置根据下一跳的三层目的地址从虚拟路由器信息中查询出配置三层目的地址的虚拟路由器,则返回执行步骤207;如果三层交换装置根据下一跳的三层目的地址从所述虚拟路由器信息中未查询出配置所述三层目的地址的虚拟路由器时,判定下一跳为目的虚拟机并执行步骤209;
步骤209、宿主机的三层交换装置根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给目的虚拟机;
如判定下一跳为目的虚拟机,则下一跳所在的虚拟链路为目的虚拟机所在的虚拟链路,下一跳的三层目的地址为目的虚拟机的三层目的地址。经过三层交换处理的网络报文为一次或者多次经过步骤207中根据报文处理规则进行处理的网络报文;
具体地,步骤209可以包括:
步骤2091、三层交换装置通过目的虚拟机所在的虚拟链路向目的虚拟机发送二层目的地址请求报文,该二层目的地址请求报文中携带有目的虚拟机的三层目的地址;
该二层目的地址请求报文为IP地址解析报文。
步骤2092、目的虚拟机接收二层目的地址请求报文后,查询出目的虚拟机的三层目的地址对应的目的虚拟机的二层目的地址,并将查询出的目的虚拟机的二层目的地址返回给三层交换装置;
步骤2093、三层交换装置根据目的虚拟机的二层目的地址通过目的虚拟机所在的虚拟链路将经过三层交换处理的网络报文发送给目的虚拟机。
本实施例的技术方案中,宿主机根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
图7为本发明实施例三提供的一种三层交换装置的结构示意图,如图7所示,该装置包括存储模块111、接收模块112、三层交换模块113和发送模块114,其中三层交换模块113分别与存储模块111、接收模块112和发送模块114连接。
存储模块111存储预先获取的三层交换信息;接收模块112接收源虚拟机发送的网络报文;三层交换模块113根据存储模块114存储的三层交换信息对网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;发送模块114根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给目的虚拟机。
本实施例的技术方案中,三层交换装置根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
图8为本发明实施例四提供的一种三层交换装置的结构示意图,如图8所示,该装置在图7中实施例一的基础上还包括与存储模块111连接的获取模块115,获取模块115用于获取三层交换信息并将获取的三层交换信息发送给存储模块111。具体地,获取模块115在虚拟机启动或者迁移过程中实现获取三层交换信息,具体可参见实施例二中的描述。进一步地,当虚拟机停止时,获取模块115还可以实现删除三层交换信息,具体可参见实施例二中的描述。不同之处在于各步骤均可以由获取模块115来执行。
进一步地,该三层交换模块113具体包括查询模块1131和处理模块1132。查询模块1131根据接收模块112接收的网络报文携带的二层目的地址从存储模块111存储的三层交换信息的虚拟路由器信息中查询出配置该二层目的地址的虚拟路由器;处理模块1132根据三层交换信息中查询出的虚拟路由器对应的报文处理规则对该网络报文进行处理,生成处理后的网络报文、下一跳所在的虚拟链路以及下一跳的三层目的地址。查询模块1131还用于根据下一跳的三层目的地址查询虚拟路由器信息中是否包括配置三层目的地址的虚拟路由器;当查询模块1131根据下一跳的三层目的地址从虚拟路由器信息中查询出配置该三层目的地址的虚拟路由器时,由处理模块1132根据三层交换信息中查询出的配置该三层目的地址的虚拟路由器对应的报文处理规则对网络报文进行处理,生成处理后的网络报文、下一跳所在的虚拟链路以及下一跳的三层目的地址,直到查询模块1131根据下一跳的三层目的地址从虚拟路由器信息中未查询出配置三层目的地址的虚拟路由器。当查询模块1131根据下一跳的三层目的地址从虚拟路由器信息中未查询出配置三层目的地址的虚拟路由器时,处理模块1132判定该下一跳为目的虚拟机并由发送模块114根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给目的虚拟机。
本实施例的技术方案中,三层交换装置根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
图9为本发明实施例五提供的一种宿主机的结构示意图,如图9所示,该宿主机包括三层交换装置11,具体地,三层交换装置11可采用实施例三或者实施例四中的三层交换装置,此处不再赘述。
进一步地,当采用实施例四中的三层交换装置11时,宿主机还可以包括虚拟机监控器12,虚拟机监控器12可以在虚拟机启动时向三层交换装置11发送虚拟机启动的通知消息,或者在虚拟机停止时向三层交换装置11发送虚拟机停止的通知消息,或者在虚拟机迁移时向三层交换装置11发送虚拟机迁移的通知消息。
本实施例的技术方案中,宿主机根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
图10为本发明实施例六提供的一种三层交换系统的结构示意图,如图10所示,该系统包括源虚拟机2、目的虚拟机3和宿主机1。具体地,宿主机1可采用实施例五中的宿主机,此处不再赘述。
进一步地,该系统还可以包括与宿主机1中的三层交换模块11连接的信息模块4,信息模块4可以存储虚拟机网络中的所有虚拟路由器的三层交换信息,三层交换模块11可以从信息模块4中获取三层交换信息。信息模块4可以设置在网络中的任一网络节点上,该网络节点可以为任意一个宿主机或者其它网络节点。其中,信息模块4可以设置在宿主机1上。
进一步地,该系统还可以包括与信息模块4连接的部署模块5,部署模块5可以进行虚拟机网络的部署,并在完成虚拟机网络部署之后将虚拟机网络中所有虚拟路由器的三层交换信息传输给信息模块4。
本实施例的图10中以目的虚拟机3运行在宿主机1上为例,在实际应用过程中,目的虚拟机3还可以运行在其它宿主机上,其它宿主机在图10中不再具体画出。
本实施例的技术方案中,宿主机根据预先获取的三层交换信息完成对网络报文的三层交换处理,并根据目的虚拟机的三层目的地址将经过三层交换处理的网络报文发送给目的虚拟机,避免了现有技术中采用虚拟路由器对报文进行三层交换处理以及三角路由问题所导致的三层交换效率低的问题,有效提高了虚拟机网络中三层交换的效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (10)
1、一种三层交换方法,其特征在于,包括:
接收源虚拟机发送的网络报文;
根据预先获取的三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;
根据所述目的虚拟机的三层目的地址将所述经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给所述目的虚拟机。
2、根据权利要求1所述的方法,其特征在于,所述根据预先获取的三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址包括:
根据所述网络报文携带的二层目的地址从所述三层交换信息的虚拟路由器信息中查询出配置所述二层目的地址的虚拟路由器;
根据所述三层交换信息中查询出的虚拟路由器对应的报文处理规则对所述网络报文进行处理,生成处理后的网络报文、下一跳所在的虚拟链路以及下一跳的三层目的地址。
3、根据权利要求2所述的方法,其特征在于,所述根据预先获取的三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址还包括:
根据所述下一跳的三层目的地址从所述虚拟路由器信息中查询出配置所述三层目的地址的虚拟路由器。
4、根据权利要求2所述的方法,其特征在于,所述根据预先获取的三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址还包括:
当根据所述下一跳的三层目的地址从所述虚拟路由器信息中未查询出配置所述三层目的地址的虚拟路由器时,判定所述下一跳为所述目的虚拟机。
5、根据权利要求2所述的方法,其特征在于,所述接收源虚拟机发送的网络报文之前还包括:
接收源虚拟机发送的二层目的地址查询报文;
根据所述二层目的地址查询报文携带的三层目的地址从所述三层交换信息的虚拟路由器信息中查询出配置所述三层目的地址的虚拟路由器;
将查询出的配置三层目的地址的虚拟路由器的二层目的地址发送给所述源虚拟机。
6、一种三层交换装置,其特征在于,包括:
存储模块,用于存储预先获取的三层交换信息;
接收模块,用于接收源虚拟机发送的网络报文;
三层交换模块,用于根据所述三层交换信息对所述网络报文进行三层交换处理,生成经过三层交换处理的网络报文、目的虚拟机所在的虚拟链路以及目的虚拟机的三层目的地址;
发送模块,用于根据所述目的虚拟机的三层目的地址将所述经过三层交换处理的网络报文通过目的虚拟机所在的虚拟链路发送给所述目的虚拟机。
7、根据权利要求6所述的装置,其特征在于,所述三层交换模块包括:
查询模块,用于根据所述网络报文携带的二层目的地址从所述三层交换信息的虚拟路由器信息中查询出配置所述二层目的地址的虚拟路由器;
处理模块,用于根据所述三层交换信息中查询出的虚拟路由器对应的报文处理规则对所述网络报文进行处理,生成处理后的网络报文、下一跳所在的虚拟链路以及下一跳的三层目的地址。
8、根据权利要求7所述的装置,其特征在于,所述查询模块还用于根据下一跳的三层目的地址从所述虚拟路由器信息中查询出配置所述三层目的地址的虚拟路由器。
9、一种宿主机,其特征在于,包括权利要求6至8任一所述的三层交换装置。
10、一种三层交换系统,包括源虚拟机和目的虚拟机,其特征在于,还包括:权利要求9所述的宿主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910088020A CN101594358B (zh) | 2009-06-29 | 2009-06-29 | 三层交换方法、装置、系统和宿主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910088020A CN101594358B (zh) | 2009-06-29 | 2009-06-29 | 三层交换方法、装置、系统和宿主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101594358A true CN101594358A (zh) | 2009-12-02 |
CN101594358B CN101594358B (zh) | 2012-09-05 |
Family
ID=41408800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910088020A Expired - Fee Related CN101594358B (zh) | 2009-06-29 | 2009-06-29 | 三层交换方法、装置、系统和宿主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101594358B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231708A (zh) * | 2011-07-04 | 2011-11-02 | 清华大学 | 虚拟路由装置及其路由方法 |
CN102638390A (zh) * | 2012-01-18 | 2012-08-15 | 神州数码网络(北京)有限公司 | 基于dhcp snooping的三层交换装置及方法 |
CN103067225A (zh) * | 2013-01-05 | 2013-04-24 | 上海斐讯数据通信技术有限公司 | 一种测试系统 |
CN103503413A (zh) * | 2012-12-28 | 2014-01-08 | 华为技术有限公司 | 传输网络信息的方法及装置 |
CN103916320A (zh) * | 2012-12-28 | 2014-07-09 | 中国移动通信集团公司 | 一种vm设备跨网迁移后的报文处理方法及装置 |
CN106850444A (zh) * | 2011-08-17 | 2017-06-13 | Nicira股份有限公司 | 逻辑l3路由 |
CN107077340A (zh) * | 2014-09-30 | 2017-08-18 | Nicira股份有限公司 | 负载均衡 |
CN107547404A (zh) * | 2017-07-31 | 2018-01-05 | 新华三技术有限公司 | 流表生成方法及装置以及报文转发方法及装置 |
CN107925616A (zh) * | 2015-08-20 | 2018-04-17 | 英特尔公司 | 用于在虚拟机之间路由分组的技术 |
CN109495461A (zh) * | 2018-11-01 | 2019-03-19 | 北京车和家信息技术有限公司 | 数据访问请求处理方法、装置及车载中控系统 |
US11038782B2 (en) | 2018-03-27 | 2021-06-15 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US11119804B2 (en) | 2019-02-22 | 2021-09-14 | Vmware, Inc. | Segregated service and forwarding planes |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11212356B2 (en) | 2020-04-06 | 2021-12-28 | Vmware, Inc. | Providing services at the edge of a network using selected virtual tunnel interfaces |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11265187B2 (en) | 2018-01-26 | 2022-03-01 | Nicira, Inc. | Specifying and utilizing paths through a network |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11296930B2 (en) | 2014-09-30 | 2022-04-05 | Nicira, Inc. | Tunnel-enabled elastic service model |
US11405431B2 (en) | 2015-04-03 | 2022-08-02 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US11438267B2 (en) | 2013-05-09 | 2022-09-06 | Nicira, Inc. | Method and system for service switching using service tags |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11722367B2 (en) | 2014-09-30 | 2023-08-08 | Nicira, Inc. | Method and apparatus for providing a service with a plurality of service nodes |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11750476B2 (en) | 2017-10-29 | 2023-09-05 | Nicira, Inc. | Service operation chaining |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609153B1 (en) * | 1998-12-24 | 2003-08-19 | Redback Networks Inc. | Domain isolation through virtual network machines |
US6970902B1 (en) * | 2001-05-24 | 2005-11-29 | Cisco Technology, Inc. | Method and apparatus for providing a distributed service in a network |
CN101459618B (zh) * | 2009-01-06 | 2011-01-19 | 北京航空航天大学 | 虚拟机网络的数据包转发方法和装置 |
-
2009
- 2009-06-29 CN CN200910088020A patent/CN101594358B/zh not_active Expired - Fee Related
Cited By (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231708A (zh) * | 2011-07-04 | 2011-11-02 | 清华大学 | 虚拟路由装置及其路由方法 |
CN106850444A (zh) * | 2011-08-17 | 2017-06-13 | Nicira股份有限公司 | 逻辑l3路由 |
CN106850444B (zh) * | 2011-08-17 | 2020-10-27 | Nicira股份有限公司 | 逻辑l3路由 |
US11695695B2 (en) | 2011-08-17 | 2023-07-04 | Nicira, Inc. | Logical L3 daemon |
US10868761B2 (en) | 2011-08-17 | 2020-12-15 | Nicira, Inc. | Logical L3 daemon |
CN102638390A (zh) * | 2012-01-18 | 2012-08-15 | 神州数码网络(北京)有限公司 | 基于dhcp snooping的三层交换装置及方法 |
CN103503413A (zh) * | 2012-12-28 | 2014-01-08 | 华为技术有限公司 | 传输网络信息的方法及装置 |
CN103916320A (zh) * | 2012-12-28 | 2014-07-09 | 中国移动通信集团公司 | 一种vm设备跨网迁移后的报文处理方法及装置 |
CN103503413B (zh) * | 2012-12-28 | 2017-02-22 | 华为技术有限公司 | 传输网络信息的方法及装置 |
CN103067225A (zh) * | 2013-01-05 | 2013-04-24 | 上海斐讯数据通信技术有限公司 | 一种测试系统 |
CN103067225B (zh) * | 2013-01-05 | 2017-10-20 | 上海斐讯数据通信技术有限公司 | 一种测试系统 |
US11438267B2 (en) | 2013-05-09 | 2022-09-06 | Nicira, Inc. | Method and system for service switching using service tags |
US11805056B2 (en) | 2013-05-09 | 2023-10-31 | Nicira, Inc. | Method and system for service switching using service tags |
CN107077340A (zh) * | 2014-09-30 | 2017-08-18 | Nicira股份有限公司 | 负载均衡 |
US11496606B2 (en) | 2014-09-30 | 2022-11-08 | Nicira, Inc. | Sticky service sessions in a datacenter |
US11296930B2 (en) | 2014-09-30 | 2022-04-05 | Nicira, Inc. | Tunnel-enabled elastic service model |
US11075842B2 (en) | 2014-09-30 | 2021-07-27 | Nicira, Inc. | Inline load balancing |
CN107077340B (zh) * | 2014-09-30 | 2021-08-24 | Nicira股份有限公司 | 负载均衡 |
US11722367B2 (en) | 2014-09-30 | 2023-08-08 | Nicira, Inc. | Method and apparatus for providing a service with a plurality of service nodes |
CN113660329A (zh) * | 2014-09-30 | 2021-11-16 | Nicira股份有限公司 | 负载均衡 |
US11405431B2 (en) | 2015-04-03 | 2022-08-02 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
CN107925616B (zh) * | 2015-08-20 | 2021-01-26 | 英特尔公司 | 用于控制通信的方法、装置和计算机可读介质 |
CN107925616A (zh) * | 2015-08-20 | 2018-04-17 | 英特尔公司 | 用于在虚拟机之间路由分组的技术 |
CN107547404B (zh) * | 2017-07-31 | 2019-11-05 | 新华三技术有限公司 | 流表生成方法及装置以及报文转发方法及装置 |
CN107547404A (zh) * | 2017-07-31 | 2018-01-05 | 新华三技术有限公司 | 流表生成方法及装置以及报文转发方法及装置 |
US11750476B2 (en) | 2017-10-29 | 2023-09-05 | Nicira, Inc. | Service operation chaining |
US11265187B2 (en) | 2018-01-26 | 2022-03-01 | Nicira, Inc. | Specifying and utilizing paths through a network |
US11805036B2 (en) | 2018-03-27 | 2023-10-31 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US11038782B2 (en) | 2018-03-27 | 2021-06-15 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
CN109495461A (zh) * | 2018-11-01 | 2019-03-19 | 北京车和家信息技术有限公司 | 数据访问请求处理方法、装置及车载中控系统 |
CN109495461B (zh) * | 2018-11-01 | 2021-07-23 | 北京车和家信息技术有限公司 | 数据访问请求处理方法、装置及车载中控系统 |
US11301281B2 (en) | 2019-02-22 | 2022-04-12 | Vmware, Inc. | Service control plane messaging in service data plane |
US11119804B2 (en) | 2019-02-22 | 2021-09-14 | Vmware, Inc. | Segregated service and forwarding planes |
US11609781B2 (en) | 2019-02-22 | 2023-03-21 | Vmware, Inc. | Providing services with guest VM mobility |
US11321113B2 (en) | 2019-02-22 | 2022-05-03 | Vmware, Inc. | Creating and distributing service chain descriptions |
US11354148B2 (en) | 2019-02-22 | 2022-06-07 | Vmware, Inc. | Using service data plane for service control plane messaging |
US11360796B2 (en) | 2019-02-22 | 2022-06-14 | Vmware, Inc. | Distributed forwarding for performing service chain operations |
US11288088B2 (en) | 2019-02-22 | 2022-03-29 | Vmware, Inc. | Service control plane messaging in service data plane |
US11397604B2 (en) | 2019-02-22 | 2022-07-26 | Vmware, Inc. | Service path selection in load balanced manner |
US11249784B2 (en) | 2019-02-22 | 2022-02-15 | Vmware, Inc. | Specifying service chains |
US11294703B2 (en) | 2019-02-22 | 2022-04-05 | Vmware, Inc. | Providing services by using service insertion and service transport layers |
US11604666B2 (en) | 2019-02-22 | 2023-03-14 | Vmware, Inc. | Service path generation in load balanced manner |
US11467861B2 (en) | 2019-02-22 | 2022-10-11 | Vmware, Inc. | Configuring distributed forwarding for performing service chain operations |
US11194610B2 (en) | 2019-02-22 | 2021-12-07 | Vmware, Inc. | Service rule processing and path selection at the source |
US11722559B2 (en) | 2019-10-30 | 2023-08-08 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11528219B2 (en) | 2020-04-06 | 2022-12-13 | Vmware, Inc. | Using applied-to field to identify connection-tracking records for different interfaces |
US11212356B2 (en) | 2020-04-06 | 2021-12-28 | Vmware, Inc. | Providing services at the edge of a network using selected virtual tunnel interfaces |
US11743172B2 (en) | 2020-04-06 | 2023-08-29 | Vmware, Inc. | Using multiple transport mechanisms to provide services at the edge of a network |
US11438257B2 (en) | 2020-04-06 | 2022-09-06 | Vmware, Inc. | Generating forward and reverse direction connection-tracking records for service paths at a network edge |
US11792112B2 (en) | 2020-04-06 | 2023-10-17 | Vmware, Inc. | Using service planes to perform services at the edge of a network |
US11368387B2 (en) | 2020-04-06 | 2022-06-21 | Vmware, Inc. | Using router as service node through logical service plane |
US11277331B2 (en) | 2020-04-06 | 2022-03-15 | Vmware, Inc. | Updating connection-tracking records at a network edge using flow programming |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
Also Published As
Publication number | Publication date |
---|---|
CN101594358B (zh) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101594358B (zh) | 三层交换方法、装置、系统和宿主机 | |
JP5131651B2 (ja) | 負荷分散システム、負荷分散方法、及びプログラム | |
CN101136926B (zh) | 非对称路由情况下的报文转发方法及网络地址转换网关 | |
CN101917707B (zh) | 无线传感器网络的ip寻址方法及系统 | |
CN101404620B (zh) | 一种创建路由表项的方法和交换设备 | |
CN100490411C (zh) | 学习mac地址的方法及网元设备 | |
JPWO2010064644A1 (ja) | クラスタ制御システム、クラスタ制御方法、及びプログラム | |
JP3688149B2 (ja) | パケット中継装置及びパケット中継方法 | |
CN102217253A (zh) | 报文转发方法、装置及网络设备 | |
JP2010239366A (ja) | ポーリング通信システム | |
CN102792651B (zh) | 在mac层应用服务路径路由选择的装置 | |
US10382391B2 (en) | Systems and methods for managing network address information | |
CN103560961A (zh) | 以太网交换机主机路由表项动态更新方法及交换机 | |
CN102801623A (zh) | 一种多接入数据转发方法及设备 | |
CN102333027A (zh) | 基于vrrpe备份组的流量负载分担实现方法及其装置 | |
CN103560962A (zh) | 以太网交换机主机路由表项自动更新方法及交换机 | |
CN103200117B (zh) | 一种负载均衡方法和装置 | |
CN103634214A (zh) | 一种路由信息生成方法及装置 | |
CN102025796B (zh) | 一种mac地址更新方法及装置、组播方法及装置 | |
CN105681249A (zh) | 一种网络访问方法和网络转换设备 | |
CN113709133A (zh) | 一种基于数据中心的ipvc6通信系统 | |
CN113794618A (zh) | 基于虚拟网卡的冗余网络通信方法、装置及终端设备 | |
JP5426717B2 (ja) | レイヤ2接続装置、通信システム、及び通信方法 | |
CN112866107B (zh) | Ip地址通告方法、流量引导方法及网络设备 | |
CN100396039C (zh) | 基于异种介质实现mpls网络互通的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120905 Termination date: 20170629 |
|
CF01 | Termination of patent right due to non-payment of annual fee |