一种数据通信方法、装置、电子设备及存储介质与流程

文档序号:18737702发布日期:2019-09-21 01:23阅读:142来源:国知局
一种数据通信方法、装置、电子设备及存储介质与流程

本申请涉及通信技术领域,特别涉及一种数据通信方法、装置、电子设备及计算机可读存储介质。



背景技术:

在通信网络中,一台设备想要与另一台设备进行通信,往往采用将ARP(Address Resolution Protocol,地址解析协议)请求广播给网络中的每一台设备,以期接收到该请求的目标设备向发起请求的设备返回自身的通信地址,以便发起请求的设备根据该通信地址直接与目标设备进行通信。

利用虚拟化技术在硬件资源的依托下可以创建出多台虚拟机,虚拟机的出现也使得实体设备的性能得以充分利用,并由此出现了基于虚拟机创建得到的虚拟化通信网络。随着市场需求的不断增加,虚拟化通信网络逐渐朝着大规模、多集群混合发展,例如基于VXLAN技术创建得到的虚拟化通信网络就往往具有较大的规模,如果虚拟机间仍采用广播ARP请求的方式来获取目标虚拟机通信地址的方式,不仅将浪费较多的带宽,也会经常产生因ARP请求泛滥导致的网络堵塞和卡顿现象,对虚拟化网络的高效稳定运行造成极大的影响。

因此,如何克服上述技术缺陷,是本领域技术技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种数据通信方法、装置、电子设备及计算机可读存储介质,应用于利用虚拟化技术创建出的支持EVPN的路由器,旨在提供一种由虚拟路由器来代答ARP请求的方式来避免将ARP广播给所有虚拟机所产生的不良影响。

为实现上述目的,本申请提供一种数据通信方法,应用于虚拟路由器,所述虚拟路由器是利用虚拟化技术创建出的支持EVPN的路由器,该方法包括:

接收第一虚拟机发来的ARP请求;

根据路由表确定与所述ARP请求对应的第二虚拟机的通信地址;其中,所述路由表中记录有所属虚拟路由器管理下的每个虚拟机与每个通信地址间的对应关系;

将所述通信地址返回至所述第一虚拟机,以使所述第一虚拟机根据所述通信地址与所述第二虚拟机进行通信。

可选地,根据路由表确定与所述ARP请求对应的第二虚拟机的通信地址,包括:

从所述ARP请求中提取得到所述第二虚拟机的属性信息;

根据所述属性信息确定管理所述第二虚拟机的目标虚拟路由器;

当所述目标虚拟路由器为自身时,根据记录在自身的路由表确定所述第二虚拟机的通信地址;

当所述目标虚拟路由器为非自身的其它虚拟路由器时,与所述目标虚拟路由器建立对等体关系,若成功建立所述对等体关系,则通过所述对等体关系获取所述目标虚拟路由器中记录的路由表,并通过获取到的路由表确定所述第二虚拟机的通信地址。

可选地,该数据通信方法还包括:

当成功与一个非自身的虚拟路由器建立所述对等体关系后,记录所述对等体关系,并将对应的路由表保存在自身的数据存储空间中。

可选地,该数据通信方法还包括:

确定自身的运行状态;

当自身的运行状态无法完成ARP请求代答时,向与自身建立有所述对等体关系的对端的虚拟路由器发送业务托管请求;

根据接收到的响应信息确定托管虚拟路由器;

向所述托管虚拟路由器发送自身当前的路由表,并将自身管理的各虚拟机的ARP请求发送地址修改为所述托管虚拟机。

可选地,该数据通信方法还包括:

根据已建立的对等体关系确定对端的虚拟路由器的运行状态;

执行与所述运行状态相对应的操作。

可选地,执行与所述运行状态相对应的操作,包括:

当确定对端的虚拟路由器当前处于掉线状态时,向上层的SDN控制器发送处于所述掉线状态的虚拟路由器当前处于掉线状态的通知信息。

可选地,该数据通信方法还包括:

根据预设的路由表更新规则更新自身的路由表;其中,所述路由表更新规则包括新增受自身管理的虚拟机、受自身管理的原虚拟机掉线、受自身管理的同业务主备虚拟机的切换、接收到路由表更新指令中的任意一项。

可选地,在根据预设的路由表更新规则更新自身的路由表之后,还包括:

遍历当前受自身管理的每一个虚拟机,并根据遍历得到的参数生成新路由表;

将所述新路由表返回至上层的SDN控制器。

为实现上述目的,本申请还提供了一种数据通信装置,应用于虚拟路由器,所述虚拟路由器是基于虚拟化技术创建的支持EVPN的路由器,该装置包括:

ARP请求接收单元,用于接收第一虚拟机发来的ARP请求;

目标通信地址确定单元,用于根据路由表确定与所述ARP请求对应的第二虚拟机的通信地址;其中,所述路由表中记录有所属虚拟路由器管理下的每个虚拟机与每个通信地址间的对应关系;

对端通信单元,用于将所述通信地址返回至所述第一虚拟机,以使所述第一虚拟机根据所述通信地址与所述第二虚拟机进行通信。

可选地,所述目标通信地址确定单元包括:

属性信息获得子单元,用于从所述ARP请求中提取得到所述第二虚拟机的属性信息;

目标虚拟路由器确定子单元,用于根据所述属性信息确定管理所述第二虚拟机的目标虚拟路由器;

通信地址第一确定子单元,用于当所述目标虚拟路由器为自身时,根据记录在自身的路由表确定所述第二虚拟机的通信地址;

通信地址第二确定子单元,用于当所述目标虚拟路由器为非自身的其它虚拟路由器时,与所述目标虚拟路由器建立对等体关系,若成功建立所述对等体关系,则通过所述对等体关系获取所述目标虚拟路由器中记录的路由表,并通过获取到的路由表确定所述第二虚拟机的通信地址。

可选地,该数据通信装置还包括:

对等体关系及对端路由表保存单元,用于当成功与一个非自身的虚拟路由器建立所述对等体关系后,记录所述对等体关系,并将对应的路由表保存在自身的数据存储空间中。

可选地,该数据通信装置还包括:

自身运行状态确定单元,用于确定自身的运行状态;

业务托管请求发送单元,用于当自身的运行状态无法完成ARP请求代答时,向与自身建立有所述对等体关系的对端的虚拟路由器发送业务托管请求;

托管虚拟路由器确定单元,用于根据接收到的响应信息确定托管虚拟路由器;

托管操作执行单元,用于向所述托管虚拟路由器发送自身当前的路由表,并将自身管理的各虚拟机的ARP请求发送地址修改为所述托管虚拟机。

可选地,该数据通信装置还包括:

对端虚拟路由器运行状态确定单元,用于根据已建立的对等体关系确定对端的虚拟路由器的运行状态;

操作执行单元,用于执行与所述运行状态相对应的操作。

可选地,所述操作执行单元包括:

掉线应对操作执行子单元,用于当确定对端的虚拟路由器当前处于掉线状态时,向上层的SDN控制器发送处于所述掉线状态的虚拟路由器当前处于掉线状态的通知信息。

可选地,该数据通信装置还包括:

路由表更新单元,用于根据预设的路由表更新规则更新自身的路由表;其中,所述路由表更新规则包括新增受自身管理的虚拟机、受自身管理的原虚拟机掉线、受自身管理的同业务主备虚拟机的切换、接收到路由表更新指令中的任意一项。

可选地,该数据通信装置还包括:

新路由表生成单元,用于在根据预设的路由表更新规则更新自身的路由表之后,遍历当前受自身管理的每一个虚拟机,并根据遍历得到的参数生成新路由表;

上层反馈单元,用于将所述新路由表返回至上层的SDN控制器。

为实现上述目的,本申请还提供了一种电子设备,虚拟路由器基于所述电子设备的硬件资源通过虚拟化技术创建得到,并运行在所述电子设备中,该电子设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述内容所描述的数据通信方法。

为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的数据通信方法。

根据本申请提供的数据通信方法可以看出,本申请使用了利用虚拟化技术创建得到的虚拟路由器来管理各虚拟机,相比于简单采用实体路由器来管理各虚拟机的方式,同样利用虚拟化技术创建得到的虚拟路由器可以更好的与所管理的虚拟机和其它虚拟路由器进行信息交互,可最大程度上避免由于虚拟机与实体路由器间协议不统一导致的实体路由器无法帮忙代答虚拟机发起的ARP请求的问题,无需虚拟机或实体路由器为达成协议统一做出的影响性能的妥协。同时,在多集群场景下,各集群的虚拟路由器也可方便的进行信息交互。本申请同时还提供了一种数据通信装置、电子设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例提供的一种数据通信方法的流程图;

图2为与图1对应的结构示意图;

图3为本申请实施例提供的数据通信方法中一种通信地址的确定方法的流程图;

图4为与图3中通过建立对等体关系通过对端的虚拟路由器中确定通信地址的结构示意图;

图5为本申请实施例提供的一种利用对等体关系进行代答业务托管的方法的流程图;

图6为本申请实施例提供的一种数据通信装置的结构框图。

具体实施方式

本申请的目的是提供一种数据通信方法、装置、电子设备及计算机可读存储介质,应用于利用虚拟化技术创建出的支持EVPN的路由器,旨在提供一种由虚拟路由器来代答ARP请求的方式来避免将ARP广播给所有虚拟机所产生的不良影响。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

实施例一

请参见图1,图1为本申请实施例提供的一种数据通信方法的流程图,其包括以下步骤,以下各步骤的执行主体为虚拟路由器,该虚拟路由器是利用虚拟化技术创建出来的支持EVPN的路由器,依托一定的硬件资源建立:

S101:接收第一虚拟机发来的ARP请求;

当前的虚拟路由器接收到受自己管理的第一虚拟机发来的ARP请求。

该ARP请求是第一虚拟机需要与另外一个虚拟机进行通信而生成并发出的,因为要与另一个虚拟机进行通信必须要知道另一个虚拟机的通信地址,但由于各虚拟机上并未存储有其它虚拟机的通信地址,因此重要的一步就是先获取到目标虚拟机的通信地址。

传统方式是采用将该ARP请求广播给网络内所有设备的方式,以期接收到该ARP请求的目标设备在确认有设备需要与自身进行通信后,将自身的通信地址返回至ARP请求的发出设备。但在虚拟化网络环境下,虚拟机替代了原先的实体设备,且数量不受实体设备的限制,这种网络不仅规模大且复杂,传统的广播方式不仅会导致带宽的浪费,也会随着虚拟机数量的增多导致ARP请求的发出数量急剧增长,对正常的业务造成较大的影响。

针对这一问题,本申请提供一种利用虚拟路由器来代答ARP请求的方法,即虚拟路由器预先通过学习建立其所管理的各虚拟机的路由表,该路由表中记录有每个虚拟机与每个通信地址间的对应关系。也就是说由位于各虚拟机上层的虚拟路由器来生成该路由表,每当有虚拟机需要确定目标虚拟机的通信地址时,都只需要发送相应的ARP请求给虚拟路由器,就可以通过该虚拟路由器来替代目标虚拟机做出反馈通信地址的操作,因此这一过程可被称为代答。对发出ARP请求的虚拟机来说,不需要在将ARP广播给每一个其它虚拟机,只需要发送给虚拟路由器即可;对目标虚拟机来说,省去了接收ARP请求判断是否为自身以及返回通信地址的操作;对整个虚拟化网络环境来说,不会出现大量的ARP请求堵塞正常的业务处理,效果更好。

进一步的,由于虚拟机便于随实际情况的变化进行增、删、调整,在虚拟化网络环境下,虚拟机和其通信地址可能会经常发现变化,因此在此场景下路由表的更新也是一个关键点。具体的,路由表的更新操作可以在虚拟路由器感知到存在以下情况时触发:新增受自身管理的虚拟机、受自身管理的原虚拟机调整或掉线、受自身管理的同业务主备虚拟机的切换、接收到路由表更新指令中的任意一项。当然,实际情况较为复杂,无法一一列举到,但所有会影响与目标虚拟机进行通信的操作都应触发路由表的更新,因为只有正确的路由表才能保证通信的有效进行。

更进一步的,路由表更新完成后,为了便于上层的SDN控制器及时获知这一信息,还可以将新路由表返回至上层的SDN控制器。即上层的SDN控制存储有各虚拟路由器发来的最新路由表,能够从全局掌控所有信息。

S102:根据路由表确定与ARP请求对应的第二虚拟机的通信地址;

在S101的基础上,当前的虚拟路由器结合可获取到的路由表来确定与ARP请求对应的第二虚拟机(即目标虚拟机)的通信地址。

其中,本步骤所说的路由表并不单单指当前虚拟路由器根据自身所管理的虚拟机建立得到的路由表,还可以包括从其它虚拟路由器处获取到的它的路由表。在支持EVPN(Ethernet Virtual Private Network,是一种用于实现网络二层互通的VPN技术)技术的情况下,不同的虚拟路由器可通过建立对等体关系的方式建立两者之间的关系,在成功建立起对等体关系后,本端的虚拟路由器可以获取到对端的虚拟路由器中记录的信息,不仅包括路由表,还可以包括如虚拟机间所构成的网络拓扑结构等信息。因此,不管是利用当前虚拟路由器中记录的路由表还是通过对等体关系从对端虚拟路由器获取到的路由表,均可以实现通过路由表确定第二虚拟机通信地址的目的。还需要说明的是,不同的虚拟路由器可以同属一个集群,也可以分属不同的集群。

进一步的,不同虚拟路由器之间还可以根据已建立的对等体关系实现一些其它功能,诸如对等体关系维持的验证、信息的传递、信息安全性的验证、对端当前运行状态的确定、异常的发现、主备冗余等等,以及一些根据实际应用场景下所有可能存在的特殊要求所开发的功能,此处并不做具体限定。

S103:将通信地址返回至第一虚拟机,以使第一虚拟机根据通信地址与第二虚拟机进行通信。

在S102的基础上,本步骤旨在由当前的虚拟路由器替代第二虚拟机(目标虚拟机),将该第二虚拟机(目标虚拟机)的通信地址返回至第一虚拟机,以便于接收到该通信地址的第一虚拟机根据该通信地址与第二虚拟机(目标虚拟机)进行点对点通信。

为了防止信息在传递过程出现异常使得第一虚拟机未接收到该通信地址或未接收到正确的通信地址,还可以由第一虚拟机向虚拟路由器进行结果反馈,即第一虚拟机如果接收到了正确的通信地址,向虚拟路由器反馈一个信号;如果第一虚拟机未接收到该通信地址,虚拟路由器在一定时间内没接收到来自第一虚拟机的信号,就会判定本次通信地址的传输存在异常,进而触发重发操作;如果第一虚拟机虽然接收到了来自虚拟路由器的数据,但其中的通信地址不完整,也会向虚拟路由器返回一个通信地址错误或异常的信号,以告知虚拟路由器并触发相应的操作,最终保证让第一虚拟机确实接收到有效的通信地址。

为便于理解,本实施例还提供了如图2所示的一个结构示意图来描述图1所示的流程。图2右侧分别为4个不同的虚拟机,分别为虚拟机A、虚拟机B、虚拟机C和虚拟机D,这四个虚拟机各自与中心的虚拟路由器建立有数据连接,以通过该数据连接向虚拟路由器发送ARP请求。位于左侧的路由表是预先经学习后生成并存储在该虚拟路由器中的,记录有这4个虚拟机与其各自通信地址间的对应关系。图2以虚拟机A向虚拟路由器发送ARP请求为例,虚拟路由器根据ARP请求中的参数结合路由表,确定虚拟机A想要进行通信的目标虚拟机的通信地址,并最终将该通信地址返回至虚拟机A,以使虚拟机A通过该通信地址与目标虚拟机进行通信。

基于上述技术方案,本申请使用了利用虚拟化技术创建得到的虚拟路由器来管理各虚拟机,相比于简单采用实体路由器来管理各虚拟机的方式,同样利用虚拟化技术创建得到的虚拟路由器可以更好的与所管理的虚拟机和其它虚拟路由器进行信息交互,可最大程度上避免由于虚拟机与实体路由器间协议不统一导致的实体路由器无法帮忙代答虚拟机发起的ARP请求的问题,无需虚拟机或实体路由器为达成协议统一做出的影响性能的妥协。同时,在多集群场景下,各集群的虚拟路由器也可方便的进行信息交互。

实施例二

请参见图3,图3为本申请实施例提供的数据通信方法中一种通信地址的确定方法的流程图,在实施例一的基础上,本实施例针对S102具体提供一种确定通信地址的方法,包括第二虚拟机属于当前虚拟路由器管理或不属于当前虚拟路由器的管理两种情况,包括以下步骤:

S201:从ARP请求中提取得到第二虚拟机的属性信息;

本步骤旨在从ARP请求中提取得到第二虚拟机(目标虚拟机)的属性信息,该属性信息可以包括目标虚拟机的设备名称、所属集群、创建时间、所属分组、权限等级等等可帮助从众多虚拟机中区分出第二虚拟机的参数。

S202:根据属性信息确定管理第二虚拟机的目标虚拟路由器;

在S201的基础上,本步骤旨在根据获取到的属性信息来具体确定管理该第二虚拟机的目标虚拟路由器。

确定管理该第二虚拟机的虚拟路由器的目的是,如果第二虚拟机不是与第一虚拟机同属在相同虚拟路由器的管理下时,通常当前的虚拟路由器的路由表中并不会记录第二虚拟机的通信地址,因此也就无法向第一虚拟机反馈通信地址,但还可以通过建立对等体的方式与实际管理第二虚拟机的虚拟路由器建立联系,并进一步从中获取到记录有第二虚拟机通信地址的路由表。

S203:当目标虚拟路由器为自身时,根据记录在自身的路由表确定第二虚拟机的通信地址;

本步骤建立在S202确定出的目标虚拟路由器就是当前的虚拟路由器自身的基础上,说明第二虚拟机与第一虚拟机受相同虚拟路由器的管理,即第二虚拟机的通信地址记录在当前虚拟路由器的路由表中,因此可以直接根据自身的路由表确定出第二虚拟机的通信地址。

S204:当目标虚拟路由器为非自身的其它虚拟路由器时,与目标虚拟路由器建立对等体关系,若成功建立对等体关系,则通过对等体关系获取目标虚拟路由器中记录的路由表,并通过获取到的路由表确定第二虚拟机的通信地址。

本步骤建立在S202确定出的目标虚拟路由器为非当前虚拟路由器的其它虚拟路由器的基础上,说明第一虚拟机想要与一个受另一个虚拟路由器管理的虚拟机进行通信,为实现这一目的,本实施例提供了一种通过建立对等体关系的方式来实现两个不同虚拟路由器间信息交互的方法,在两个不同的虚拟路由器成功建立对等体关系后,本端的虚拟路由器就可以通过建立的对等体关系获取存储在对端的虚拟路由器中的信息,包括路由表、网络拓扑等信息。当前的虚拟路由器在从第二虚拟机所属的目标虚拟路由器中获取到路由表后,就可以根据该路由表得到第二虚拟机的通信地址,在分属不同虚拟路由器管理的不同虚拟机间没有进行隔离的前提下,第一虚拟机可直接通过该通信地址与第二虚拟机进行通信。

进一步的,为了方便后续再次使用,还可以每当成功与一个非自身的虚拟路由器建立所述对等体关系后,就记录该对等体关系,并将对应的路由表保存在当前的虚拟路由器自身的数据存储空间中。

为方便理解,本实施例还通过图4提供于上述内容相对应的结构示意图,图4中存在两个不同的虚拟路由器,分别为虚拟路由器X和虚拟路由器Y,其中,虚拟机A、B、C、D受虚拟路由器X管理,虚拟机E、F、G、H受虚拟机路由器Y管理,即虚拟路由器X的路由表仅记录着虚拟机A、B、C、D与其通信地址间的对应关系,虚拟路由器Y的路由表仅记录着虚拟机E、F、G、H与其通信地址间的对应关系。

图4以虚拟机A向虚拟路由器X发起ARP请求为例,其目标虚拟机为虚拟机F,因此在虚拟路由器X收到该ARP请求后,发现目标自身路由表中并未记录有虚拟机F的通信地址,并随之发现虚拟机F受虚拟路由器Y的管理,因此在未与虚拟路由器Y建立有等对体关系的前提下,将尝试与虚拟路由器Y建立对等体关系,在对等体关系建立成功后,将通过该对等体关系获取保存在虚拟路由器Y中的路由表,并从该路由表中查得虚拟机F的通信地址,并最终返回至虚拟机A。

本实施例在实施例一的基础上,根据第二虚拟机是否与第一虚拟机处于相同虚拟路由器的管理,分别给出了相应的确定第二虚拟机通信地址的方案,更加符合现今复杂程度高、包含多集群、规模大的虚拟网络环境的需求。

实施例三

请参见图5,图5为本申请实施例提供的一种利用对等体关系进行代答业务托管的方法的流程图,在上述任一实施例的基础上,本实施例旨在利用不同虚拟路由器间建立起的对等体关系,完成一些除获取路由表外的操作,充分利用该对等体关系,包括如下步骤:

S301:确定自身的运行状态;

当前的虚拟路由器确定自身当前的运行状态,根据应用场景下对运行状态划分的不同,可以存在多种、多等级、等类别的运行状态划分方式,例如可以简单的将其划分为正常(在线)、异常(在线)、掉线三种状态,也可以根据是否可以完成ARP请求的代答操作将其划分为可代答和不可代答两种,等等,此处并不做具体限定。

S302:当自身的运行状态无法完成ARP请求代答时,向与自身建立有对等体关系的对端的虚拟路由器发送业务托管请求;

本步骤建立在当前的虚拟路由器根据对自身运行状态的判断,认为自身无法完成ARP请求的代答操作,因此为使得代答操作可以继续,本申请提供一种向与自身建立有对等体关系的对端的虚拟路由器发送业务托管请求,即向对端的运行状态良好(至少有多余的代答操作处理能力)的虚拟路由器寻求代答业务托管,或者可以成为代理。

需要说明的是,为了尽可能的降低对对端的虚拟路由器的性能影响,该业务托管请求可以是向所有与自身建立了对等体关系的对端虚拟路由器发送的,以在其中寻求最合适的对端虚拟路由器作为托管虚拟路由器。

S303:根据接收到的响应信息确定托管虚拟路由器;

在S302的基础上,本步骤旨在由当前的虚拟路由器根据接收到的各响应信息来确定托管虚拟路由器,其中该响应信息中可以包含有各对端虚拟路由器对自身运行状态的描述,以便基于此确定出优选的托管虚拟路由器。

S304:向托管虚拟路由器发送自身当前的路由表,并将自身管理的各虚拟机的ARP请求发送地址修改为托管虚拟机。

在S303的基础上,当前的虚拟路由器会向托管虚拟路由器发送自身当前的路由表,并将自身管理的各虚拟机的ARP请求发送地址修改为托管虚拟机,以使得托管虚拟路由器帮自己完成后续的ARP请求代答操作。

上述内容描述了当前的虚拟路由器自己主动的根据自身运行状态来完成的一些补救操作,但如果当前的虚拟路由器因故障掉线或宕机时,将无法执行这一操作,因此还可以通过已建立有对等体关系的对端虚拟路由器来判断其运行状态,即根据已建立的对等体关系确定对端的虚拟路由器的运行状态,并执行与运行状态相对应的操作。

就以对端虚拟路由器处于掉线状态为例,本端的虚拟路由器在确定这一情况时,其中一种可执行的操作为:向上层的SDN控制器发送处于掉线状态的虚拟路由器当前处于掉线状态的通知信息,以便SDN控制器从全局出发制定后续的解决方案。

在上述实施例的基础上,本实施例利用对等体关系提供了一种确定本端或对端虚拟路由器运行状态,并根据运行状态的不同执行操作的方法,使得建立起的对等体关系可实现更丰富的功能,此处仅是对其中一种可实现的方法进行了展开描述,其它相同或类似的方案不再一一赘述。

因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。

实施例四

下面请参见图6,图6为本申请实施例提供的一种数据通信装置的结构框图,应用于虚拟路由器,该装置可以包括:

ARP请求接收单元100,用于接收第一虚拟机发来的ARP请求;

目标通信地址确定单元200,用于根据路由表确定与ARP请求对应的第二虚拟机的通信地址;其中,路由表中记录有所属虚拟路由器管理下的每个虚拟机与每个通信地址间的对应关系;

对端通信单元300,用于将通信地址返回至第一虚拟机,以使第一虚拟机根据通信地址与第二虚拟机进行通信。

其中,该目标通信地址确定单元200可以包括:

属性信息获得子单元,用于从ARP请求中提取得到第二虚拟机的属性信息;

目标虚拟路由器确定子单元,用于根据属性信息确定管理第二虚拟机的目标虚拟路由器;

通信地址第一确定子单元,用于当目标虚拟路由器为自身时,根据记录在自身的路由表确定第二虚拟机的通信地址;

通信地址第二确定子单元,用于当目标虚拟路由器为非自身的其它虚拟路由器时,与目标虚拟路由器建立对等体关系,若成功建立对等体关系,则通过对等体关系获取目标虚拟路由器中记录的路由表,并通过获取到的路由表确定第二虚拟机的通信地址。

更进一步的,该数据通信装置还可以包括:

对等体关系及对端路由表保存单元,用于当成功与一个非自身的虚拟路由器建立对等体关系后,记录对等体关系,并将对应的路由表保存在自身的数据存储空间中。

进一步的,该数据通信装置还可以包括:

自身运行状态确定单元,用于确定自身的运行状态;

业务托管请求发送单元,用于当自身的运行状态无法完成ARP请求代答时,向与自身建立有对等体关系的对端的虚拟路由器发送业务托管请求;

托管虚拟路由器确定单元,用于根据接收到的响应信息确定托管虚拟路由器;

托管操作执行单元,用于向托管虚拟路由器发送自身当前的路由表,并将自身管理的各虚拟机的ARP请求发送地址修改为托管虚拟机。

进一步的,该数据通信装置还可以包括:

对端虚拟路由器运行状态确定单元,用于根据已建立的对等体关系确定对端的虚拟路由器的运行状态;

操作执行单元,用于执行与运行状态相对应的操作。

其中,该操作执行单元可以包括:

掉线应对操作执行子单元,用于当确定对端的虚拟路由器当前处于掉线状态时,向上层的SDN控制器发送处于掉线状态的虚拟路由器当前处于掉线状态的通知信息。

进一步的,该数据通信装置还可以包括:

路由表更新单元,用于根据预设的路由表更新规则更新自身的路由表;其中,路由表更新规则包括新增受自身管理的虚拟机、受自身管理的原虚拟机掉线、受自身管理的同业务主备虚拟机的切换、接收到路由表更新指令中的任意一项。

更进一步的,该数据通信装置还可以包括:

新路由表生成单元,用于在根据预设的路由表更新规则更新自身的路由表之后,遍历当前受自身管理的每一个虚拟机,并根据遍历得到的参数生成新路由表;

上层反馈单元,用于将新路由表返回至上层的SDN控制器。

本实施例作为对应于上述方法实施例的装置实施例存在,具有方法实施例的全部有益效果,在此不再一一赘述。

基于上述实施例,本申请还提供了一种电子设备,虚拟路由器基于该电子设备的硬件资源通过虚拟化技术创建得到,并运行在该电子设备中。该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

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