一种不同子网间报文的转发方法、装置和计算机设备与流程

文档序号:16516618发布日期:2019-01-05 09:40阅读:163来源:国知局
一种不同子网间报文的转发方法、装置和计算机设备与流程

本发明涉及通信技术,尤指一种不同子网间报文的转发方法、装置和计算机设备。



背景技术:

在虚拟化环境下,虚拟机如果处于不同的子网,虚拟机之间互访需要额外的三层网络设备如路由表设备做报文转发,增加了运营成本和网络复杂度。



技术实现要素:

为了解决上述技术问题,本发明提供了一种不同子网间报文的转发方法、装置和计算机设备,能够通过虚拟交换机转发不同子网间的报文,节约了三层网路设备,降低运营成本和网络复杂度。

为了达到本发明目的,本发明提供了一种不同子网间报文的转发方法,所述方法包括:

虚拟交换机截获请求地址为发出方虚拟机配置的网关ip地址的arp请求广播报文,向所述发出方虚拟机返回apr代理应答,其中,所述apr代理应答报文为更改发送方虚拟机的邻居表的网关ip对应的mac为虚拟交换机的mac地址的报文;

虚拟交换机接收到虚拟机发送的ip报文时,判断所述ip报文的发出方虚拟机和接收方虚拟机是否属于同一子网,当不属于同一子网时,将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,并转发所述修改后的报文。

一种示例性的实施例中,所述将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,包括:

虚拟交换机根据所述报文中接收方的ip地址查询接收方虚拟机的mac地址,虚拟交换机中的openflow流表将所述报文中接收方的mac地址修改为查询到的接收方虚拟机的mac地址。

一种示例性的实施例中,其中,所述openflow流表中存有虚拟机的ip地址与mac地址的对应关系。

为了达到本发明目的,本发明还提供了一种不同子网间报文的转发装置,所述装置包括截获模块和转发模块:

所述截获模块,用于虚拟交换机截获请求地址为发出方虚拟机配置的网关ip地址的arp请求广播报文,向所述发出方虚拟机返回apr代理应答,其中,所述apr代理应答报文为更改发送方虚拟机的邻居表的网关ip对应的mac为虚拟交换机的mac地址的报文;

所述,转发模块用于虚拟交换机接收到虚拟机发送的ip报文时,判断所述ip报文的发出方虚拟机和接收方虚拟机是否属于同一子网,当不属于同一子网时,将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,并转发所述修改后的报文。

一种示例性的实施例中,所述截获模块将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,包括:

虚拟交换机中的截获模块根据所述报文中接收方的ip地址查询接收方虚拟机的mac地址,所述截获模块中的openflow流表将所述报文中接收方的mac地址修改为查询到的接收方虚拟机的mac地址。

一种示例性的实施例中,其中,所述openflow流表中存有虚拟机的ip地址与mac地址的对应关系。

为了达到本发明目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

为了达到本发明目的,本发明还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。

与现有技术相比,本发明包括:虚拟交换机截获请求地址为发出方虚拟机配置的网关ip地址的arp请求广播报文,向所述发出方虚拟机返回apr代理应答,其中,所述apr代理应答报文为更改发送方虚拟机的邻居表的网关ip对应的mac为虚拟交换机的mac地址的报文;虚拟交换机接收到虚拟机发送的ip报文时,判断所述ip报文的发出方虚拟机和接收方虚拟机是否属于同一子网,当不属于同一子网时,将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,并转发所述修改后的报文。能够通过虚拟交换机转发不同子网间的报文,节约了三层网路设备,降低运营成本和网络复杂度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例一的不同子网间报文的转发方法的流程图;

图2为本发明实施例二的实现不同子网间报文的转发方法所在装置的结构示意图;

图3为本发明实施例三的不同子网间报文的转发装置的结构示意图;

图4为本发明实施例三的计算机设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

实施例一

本实施例提供了一种不同子网间报文的转发方法,如图1所示,该方法包括s11-s12:

s11、虚拟交换机截获请求地址为发出方虚拟机配置的网关ip地址的arp请求广播报文,向所述发出方虚拟机返回apr代理应答,其中,所述apr代理应答报文为更改发送方虚拟机的邻居表的网关ip对应的mac为虚拟交换机的mac地址的报文;

s12、虚拟交换机接收到虚拟机发送的ip报文时,判断所述ip报文的发出方虚拟机和接收方虚拟机是否属于同一子网,当不属于同一子网时,将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,并转发所述修改后的报文。

本发明实施例中,能够通过虚拟交换机转发不同子网间的报文,节约了三层网路设备,降低运营成本和网络复杂度。

一种示例性的实施例中,所述截获模块将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,包括:

虚拟交换机中的截获模块根据所述报文中接收方的ip地址查询接收方虚拟机的mac地址,所述截获模块中的openflow流表将所述报文中接收方的mac地址修改为查询到的接收方虚拟机的mac地址。

一种示例性的实施例中,其中,所述openflow流表中存有虚拟机的ip地址与mac地址的对应关系。

一种示例性的实施例中,arp广播报文中的mac是网关地址的mac。现有技术是通过网关转发。

一种示例性的实施例中,虚拟机发报文时,发送方虚拟机1首先发送arp广播报文,当没有网关时,虚拟机不会受到网关的应答,在虚拟交换机判断出请求目的ip为发出方虚拟机配置的网关ip时发出apr代理应答;虚拟机1受到arp代理应答后,修改发出报文接收方的mac地址为所述虚拟机的mac地址,此时虚拟交换机接收后,将修改接收方的mac地址为虚拟机2(接收方)的mac地址并转发。

一种示例性的实施例中,将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,包括:

一种示例性的实施例中,虚拟交换机根据报文中接收方的ip地址查询接收方虚拟机的mac地址,虚拟交换机中的openflow流表将报文中接收方的mac地址修改为查询到的接收方虚拟机的mac地址。本实施例借助于openflow这个协议,通过内置ip和mac的映射关系,实现不同子网间的报文互通。

一种示例性的实施例中,openflow流表中存有虚拟机的ip地址与mac地址的对应关系。

一种示例性的实施例中,openflow流表为虚拟机上线后,虚拟交换机接收的虚拟机管理平台根据预存的虚拟机的ip地址和mac地址生成的openflow流表。创建虚拟机时,虚拟机管理平台会将虚拟机的ip地址和mac地址相对应的保存,当虚拟机上线时,会根据虚拟机的ip地址和mac地址创建openflow流表,下发到虚拟交换机上。

实施例二

本实施例对上述实施例方法进行具体描述。

附图2所示为本实施例实现不同子网间报文的转发方法所在装置的结构示意图,两个虚拟机属于不同子网,虚拟机1属于子网192.168.1.0/24网段,其ip是192.168.1.2,其网关是192.168.1.1;虚拟机2属于子网172.16.12.0/24,其ip是172.16.12.2,其网关是172.16.12.1,两个虚拟机可以通过虚拟交换机ovs的openflow流表实现互相访问。

具体实施过程如下:

(1)ovs虚拟交换机对虚拟机1和虚拟机2的网关ip做arp代理应答,也就是虚拟机1和虚拟机2互访的报文,都会发送至ovs虚拟交换机。

(2)在ovs虚拟交换机内部,根据内置预设的各虚拟机ip及mac映射表,通过添加openflow流表来修改虚拟机1访问虚拟机2的报文,修改其报文的接收方虚拟机的mac地址为虚拟机2的mac地址,这样虚拟机1的发出的报文就能正常到达虚拟机2。同理,虚拟机2访问虚拟机1的报文,其接收方虚拟机的mac地址也被openflow流表修改成虚拟机1的mac地址,从而转发至虚拟机1。

所述映射表为创建虚拟机的时保存的ip地址和对应的mac地址。虚拟机开机的时候,获取该虚拟机的ip和mac,添加openflow流表。

本实施例提出了一种虚拟化环境下实现不同子网间虚拟机互访的方法,ovs虚拟交换机对各个虚拟机的网关ip做arp代理应答,同时内置预设的各虚拟机ip及mac映射表,在ovs虚拟交换机上通过添加特定的openflow流表,通过转发不同子网间虚拟机报文,实现不同子网间虚拟机的互访。

实施例三

本实施例提供了一种不同子网间报文的转发装置,上述方法实施例中描述也适用于本实施例中,如图3所示,该装置包括截获模块31和转发模块32:

所述截获模块31,用于虚拟交换机截获请求地址为发出方虚拟机配置的网关ip地址的arp请求广播报文,向所述发出方虚拟机返回apr代理应答,其中,所述apr代理应答报文为更改发送方虚拟机的邻居表的网关ip对应的mac为虚拟交换机的mac地址的报文;

所述,转发模块32用于虚拟交换机接收到虚拟机发送的ip报文时,判断所述ip报文的发出方虚拟机和接收方虚拟机是否属于同一子网,当不属于同一子网时,将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,并转发所述修改后的报文。

一种示例性的实施例中,所述截获模块31将报文中的接收方的mac地址修改为查询到的接收方虚拟机的mac地址,包括:

虚拟交换机中的截获模块31根据所述报文中接收方的ip地址查询接收方虚拟机的mac地址,所述截获模块31中的openflow流表将所述报文中接收方的mac地址修改为查询到的接收方虚拟机的mac地址。

一种示例性的实施例中,其中,所述openflow流表中存有虚拟机的ip地址与mac地址的对应关系。

本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后,能够实现前述实施例提供的不同子网间报文的转发方法,例如,执行如图1所示方法。

本发明实施例还提供一种计算机设备,其可以是如图4所示的结构,包括处理器41、存储器42以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可实现实施例一或实施例二中部分或全部步骤。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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