一种数据传输方法、装置及系统
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据传输方法、装置及系统。
背景技术
Overlay网络是一种在现有网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其他网络业务分离。
目前,在搭建Overlay网络时,若要实现各个服务器之间的互通,则需要任意两个服务器之间搭建双向Overlay隧道,隧道个数较多;示例性的,若Overlay网络中包括N个服务器,则Overlay网络中Overlay隧道的个数为N*(N-1)/2,当Overlay网络中需要新增服务器时,需要建立新增服务器与每个现有服务器之间的双向Overlay隧道,步骤繁琐。
发明内容
本公开实施例至少提供一种数据传输方法、装置及系统。
第一方面,本公开实施例提供了一种数据传输方法,应用于转发设备,包括:
接收第一网络设备发送的网络数据以及目的IP地址,其中所述第一网络设备为第一网络中与第一服务器相连的网络设备;所述目的IP地址为第二网络的网段信息中的地址,所述第一网络和所述第二网络为不同属性的网络;
基于所述目的IP地址对所述网络数据进行封装;
将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器,以使所述第二服务器对封装后的所述网络数据进行解封装。
一种可能的实施方式中,所述方法还包括:
通过中间处理设备向所述第一网络覆盖区域内的各个网络设备发送所述转发设备对应的第二网络的网段信息和所述中间处理设备的IP地址,以及向所述中间处理设备发送所述转发设备的IP地址;所述网段信息用于指示所述转发设备负责转发的网络数据对应的目的IP地址范围;
其中,所述转发设备接收的所述第一网络设备发送的目的IP地址为所述目标IP地址范围内的地址。
一种可能的实施方式中,所述接收第一网络中与第一服务器相连的第一网络设备发送的网络数据以及目的IP地址,包括:
接收由所述中间处理设备基于所述转发设备的IP地址转发的,与所述第一服务器相连的第一网络设备发送的网络数据以及目的IP地址。
一种可能的实施方式中,所述目的IP地址为虚拟IP地址;
所述基于所述目的IP地址对所述网络数据进行封装,包括:
从预先存储的虚拟IP地址和服务器真实IP地址的对照表中,确定所述虚拟IP地址对应的服务器的真实IP地址;
根据确定的真实IP地址,对所述网络数据进行封装。
一种可能的实施方式中,所述第一网络为Underlay网络,所述第二网络为Overlay网络。
第二方面,本公开实施例提供了一种数据传输方法,应用于服务器,所述方法包括:
当运行在所述服务器上的虚拟机生成网络数据之后,判断该网络数据对应的目的IP地址是否属于转发设备对应的目的IP地址范围;其中,所述转发设备对应的目的IP地址范围为预先接收的所述转发设备发送的,且存储在所述与所述服务器连接的网络设备中的;
若是,控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,以使所述转发设备将所述网络数据进行封装并发送至所述目的IP地址对应的服务器。
一种可能的实施方式中,所述控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,包括:
基于预先存储的与所述目标IP地址范围对应的中间处理设备的IP地址,控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备。
一种可能的实施方式中,所述控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备,包括:
控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备基于预先设置的负载均衡策略,将所述网络数据和目的IP地址发送至对应的目标转发设备。
第三方面,本公开实施例提供了一种数据传输装置,包括:
接收模块,用于接收第一网络设备发送的网络数据以及目的IP地址,其中所述第一网络设备为第一网络中与第一服务器相连的网络设备;所述目的IP地址为第二网络的网段信息中的地址,所述第一网络和所述第二网络为不同属性的网络;
封装模块,用于基于所述目的IP地址对所述网络数据进行封装;
第一发送模块,用于将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器,以使所述第二服务器对封装后的所述网络数据进行解封装。
一种可能的实施方式中,所述第一发送模块,还用于:
通过中间处理设备向所述第一网络覆盖区域内的各个网络设备发送所述转发设备对应的第二网络的网段信息和所述中间处理设备的IP地址,以及向所述中间处理设备发送所述转发设备的IP地址;所述网段信息用于指示所述转发设备负责转发的网络数据对应的目的IP地址范围;
其中,所述转发设备接收的所述第一网络设备发送的目的IP地址为所述目标IP地址范围内的地址。
一种可能的实施方式中,所述接收模块,在接收第一网络中与第一服务器相连的第一网络设备发送的网络数据以及目的IP地址时,用于:
接收由所述中间处理设备基于所述转发设备的IP地址转发的,与所述第一服务器相连的第一网络设备发送的网络数据以及目的IP地址。
一种可能的实施方式中,所述目的IP地址为虚拟IP地址;
所述封装模块,在基于所述目的IP地址对所述网络数据进行封装时,用于:
从预先存储的虚拟IP地址和服务器真实IP地址的对照表中,确定所述虚拟IP地址对应的服务器的真实IP地址;
根据确定的真实IP地址,对所述网络数据进行封装。
一种可能的实施方式中,所述第一网络为Underlay网络,所述第二网络为Overlay网络。
第四方面,本公开实施例提供了一种数据传输装置,所述装置包括:
判断模块,用于当运行在所述服务器上的虚拟机生成网络数据之后,判断该网络数据对应的目的IP地址是否属于转发设备对应的目的IP地址范围;其中,所述转发设备对应的目的IP地址范围为预先接收的所述转发设备发送的,且存储在所述与所述服务器连接的网络设备中的;
发送模块,用于,若是,控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,以使所述转发设备将所述网络数据进行封装并发送至所述目的IP地址对应的服务器。
一种可能的实施方式中,所述发送模块,在控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备时,用于:
基于预先存储的与所述目标IP地址范围对应的中间处理设备的IP地址,控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备。
一种可能的实施方式中,所述发送模块,在控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备时,用于:
控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备基于预先设置的负载均衡策略,将所述网络数据和目的IP地址发送至对应的目标转发设备。
一种可能的实施方式中,所述装置还包括,解封装模块,用于:
接收转发设备发送的封装后的网络数据,并对所述封装后的网络数据进行解封装。
第五方面,本公开实施例提供了一种数据传输系统,包括:
第一服务器,用于当运行在所述第一服务器上的虚拟机生成网络数据之后,判断该网络数据对应的目的IP地址是否属于转发设备对应的目的IP地址范围;若是,控制与所述第一服务器连接的第一网络设备将所述网络数据和目的IP地址发送至对应的转发设备,其中,所述转发设备对应的目的IP地址范围为预先接收的所述转发设备发送的,且存储在与所述第一服务器连接的第一网络设备中的;
转发设备,用于在接收到所述第一网络设备发送的网络数据以及所述目的IP地址后,基于所述目的IP地址对所述网络数据进行封装;将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器;
第二服务器,用于接收所述转发设备发送的封装后的网络数据,并对所述封装后的网络数据进行解封装。
第六方面,本公开实施例还通过了一种数据传输系统,包括:
第一服务器,用于当运行在所述第一服务器上的虚拟机生成网络数据之后,基于转发设备的IP地址,对所述网络数据进行封装,并控制与所述第一服务器连接的第一网络设备将封装之后的网络数据以及该网络数据对应的目的IP地址发送至所述转发设备;
转发设备,用于在接收到所述第一网络设备发送的封装后的网络数据以及所述目的IP地址后,对所述封装后的网络数据进行解封装,并基于所述目的IP地址重新对解封装之后的网络数据进行封装;将重新封装后的网络数据发送至所述目的IP地址对应的第二服务器;
第二服务器,用于接收所述转发设备发送的重新封装后的网络数据,并对所述重新封装后的网络数据进行解封装。
第七方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
第八方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
本公开实施例提供的数据传输方法、装置及系统中,在转发设备和各个服务器之间建立单向隧道,服务器在生成网络数据之后,只需要直接将生成的网络数据发送至转发设备,由转发设备进行封装,然后发送给其他服务器,转发设备只需要具备封装的能力,其他服务器也只需要具备解封装的能力即可,这样,减少了网络中的隧道个数;当需要新增服务器时,只需要在新增服务器与转发设备之间建立单向隧道即可,简化了新增服务器的处理步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据传输方法的流程图;
图2示出了本公开实施例所提供的另外一种数据传输方法的流程示意图;
图3示出了本公开实施例所提供的一种数据传输系统的示意图;
图4示出了本公开实施例所提供的另外一种数据传输系统的示意图;
图5示出了本公开实施例所提供的一种数据传输装置的架构示意图;
图6示出了本公开实施例所提供的另一种数据传输装置的架构示意图;
图7示出了本公开实施例所提供的计算机设备700的结构示意图;
图8示出了本工开实施例所提供的计算机设备800的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
在Overlay网络中搭建任意两个服务器之间的双向Overlay隧道时,示例性的若需要在服务器1和服务器2之间搭建双向Overlay隧道,则需要先在服务器1上配置与服务器2相关的信息,以及在服务器2上配置与服务器1相关的信息,若服务器1需要往服务器2发送Overlay网络数据,则需要服务器1将网络数据基于服务器2相关的信息进行封装,然后将封装之后的Overlay网络数据发送至服务器2,服务器2在接收到封装后的Overlay网络数据,再进行解封装,服务器1接收服务器2发送的Overlay网络数据的过程也相同。这种方法就要求服务器即具有封装能力,也具有解封装能力。
另外,当需要在现有Overlay网络中添加新的服务器时,则需要建立新增加的服务器与现有Overlay网络中每一个服务器之间的Overlay隧道,步骤较繁琐。
基于此,本公开提供了一种数据传输方法、装置及系统,在转发设备和各个服务器之间建立单向隧道,服务器在生成网络数据之后,只需要直接将生成的网络数据发送至转发设备,由转发设备进行封装,然后发送给其他服务器,转发设备只需要具备封装的能力,其他服务器也只需要具备解封装的能力即可,这样,减少了网络中的隧道个数;当需要新增服务器时,只需要在新增服务器与转发设备之间建立单向隧道即可,简化了新增服务器的处理步骤。
针对现有方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据传输方法进行详细介绍,参见图1所示,为本公开实施例提供的一种数据传输方法的流程图,该方法应用于转发设备,所述转发设备是具有一定转发能力和计算能力的电子设备,例如可以为服务器,在一种可能的实施方式中,第一网络可以是Undelay网络,第二网络可以是Overlay网络,第一网络是物理网络,第二网络是在第一网络的基础上搭建的虚拟网络。下面将第一网络为Underlay隧道,第二网络为Overlay隧道为例,对本公开所提供的数据传输方法进行介绍,该方法包括以下几个步骤:
步骤101、接收第一网络设备发送的网络数据以及目的IP地址,其中所述第一网络设备为第一网络中与第一服务器相连的网络设备;所述目的IP地址为第二网络的网段信息中的地址,所述第一网络和所述第二网络为不同属性的网络。
这里,第一服务器与转发设备之间的通信方式可以是通过underlay网络,在这种网络形式下,第一服务器与转发设备之间可以直接进行通信,而第一服务器与第二服务器之间的通信是从第一网络切换至第二网络,即由Underlay网络切换至Overlay网络,在这种网络形式下,第一服务器与第二服务器之间是无法直接进行通信的,因此需要转发设备提前将网段信息发送至Underlay网络覆盖区域内的各个转发设备,以实现不同网络类型下设备之间的通信。
具体实施中,转发设备可以通过路由协议,将网段信息发送至Overlay网络中的各个网络设备中,所述网络设备与服务器连接,其中,所述网络设备可以是交换机、路由器等,网络设备在接收到网段信息和转发设备的IP地址之后,可以存储在网络设备本地。
其中,所述路由协议包括但不仅限于边界网关协议(Border Gateway Protocol,BGP),开放式最短路径优先协议(Open Shortest Path Firs,OSPF),增强内部网关路由协议(Enhanced Interior Gateway Routing Protocol,EIGRP)。
其中,转发设备在通过路由协议将网段信息发送至各个网络设备时,可以是转发设备通过路由协议将网段信息发送至中间处理设备,然后由中间处理设备发送至各个网络设备。
这里,转发设备在将网段信息发送至中间处理设备时,还可以将转发设备的IP地址发送至中间处理设备,中间处理设备在将网段信息发送至各个网络设备时,还可以将中间处理设备的IP地址转发至各个网络设备,这样,各个网络设备与转发设备之间通信可以由中间处理设备进行转发,任一网络设备在需要将网络数据发送至网络设备所负责转发的网络数据对应的目的IP地址范围内的任一IP地址时,可以将该网络数据发送至该目的IP地址范围对应的中间处理设备,然后由中间处理设备负责进行转发。
转发设备接收到的第一网络设备发送的网络数据为运行在第一服务器上的虚拟机在运行过程中所产生的数据,实际上转发设备所接收的网络数据和目的IP地址,可以是第一服务器上运行的虚拟在产生之后,根据与第一服务器连接的网络设备所存储的中间处理设备的IP地址,将网络数据和目的IP地址发送至中间处理设备,然后由中间处理设备所转发得到的。
步骤102、基于所述目的IP地址对所述网络数据进行封装。
其中,在基于目的IP地址对网络数据进行封装时,可以基于目的地址对将网络数据传输成预先设置好的Overlay网络的传输格式,例如可以封装成Vxlan格式、NvGRE格式、Geneve格式,具体的封装过程将不再展开介绍。
需要说明的是,在这种实施方式下,转发设备与服务器之间建立的是单向Overlay隧道,服务器只需要具有解封装的能力即可,由转发设备对服务器产生的网络数据进行封装。
在一种可能的实施方式中,第一服务器通过第一网络设备发送给转发设备的目的IP地址为运行在第二服务器上的虚拟机的IP地址,在基于目的IP地址对网络数据进行封装时,可以先从预先存储的虚拟IP地址与服务器真实IP地址的对照表中,确定虚拟IP地址对应的服务器的真实IP地址(即目的IP地址对应的虚拟机所在的服务器的IP地址),然后根据确定的真实IP地址,对网络数据进行封装。
步骤103、将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器,以使所述第二服务器对封装后的所述网络数据进行解封装。
在将封装后的网络数据发送至目的IP地址对应的第二服务器时,可以是根据步骤102中确定的真实IP地址,将封装后的网络数据发送至对应的第二服务器;第二服务器在对封装后的网络数据进行解封装时,可以通过部署在第二服务器上的虚拟交换机进行解封装。
下面,将以服务器为执行主体,对本公开所提供的数据传输方法进行介绍,参见图2所示,为本公开实施例提供的另外一种数据传输方法的流程示意图,包括以下几个步骤:
步骤201、当运行在所述服务器上的虚拟机生成网络数据之后,判断该网络数据对应的目的IP地址是否属于转发设备对应的目的IP地址范围。
其中,所述转发设备对应的目的IP地址范围为预先接收的所述转发设备发送的,且存储在所述与所述服务器连接的网络设备中的。
若是,则执行步骤202;若否,则执行步骤203。
步骤202、基于预先存储的所述转发设备的IP地址,控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,以使所述转发设备将所述网络数据进行封装并发送至所述目的IP地址对应的服务器。
步骤203、向服务器反馈网络数据无法发送。
在检测到网络数据对应的目的IP地址属于目的IP地址范围内时,再将网络数据和目的IP地址发送至转发设备,这种情况下就保证了目的IP地址对应的虚拟机所在的服务器属于当前Overlay网络,进而可以保证转发设备在对网络数据进行封装之后,可以将封装后的网络数据发送到对应的服务器。
在一种可能的实施方式中,为提高转发设备的转发效率,Overlay中可以包括至少一个转发设备,服务器在控制网络设备将网络数据和目的IP地址发送至转发设备时,可以先将网络数据和目的IP地址发送至中间处理设备,然后由中间转发设设备按照预先设置的负载均衡策略,从至少一个转发设备中选择一个目标转发设备,并将网络数据和目的IP地址转发至目标转发设备。
其中,在按照预先设备的负载均衡策略,从至少一个转发设备中选择一个目标转发设备时,可以通过等价多路径(Equal-cost multi-path,ECMP)策略,选择目标转发设备。
ECMP在选择目标转发设备时,可以通过以下方法中的任意一种:
(一)、基于哈希算法。
具体的,可以根据网络数据的五元组来确定哈希值,然后基于哈希值,从至少一个转发设备中选择一个目标转发设备,其中,所述五元组包括源IP地址、源端口号、目的IP地址、目的端口号、协议号。
(二)、通过轮询的方式。
具体的,可以通过轮询的方式,选择当前并不存在待转发数据的转发设备作为目标转发设备,或者选择待转发数据较少的转发设备作为目标转发设备。
(三)、基于转发设备对应的权重的方式
具体的,可以预先为每个转发设备设置转发权重,所述转发权重用于表示该转发设备所转发的网络数据所占的比重,当服务器产生网络数据之后,可以根据不同转发设备对应的转发权重,选择目标转发设备。
这样,由中间处理设备进行负载均衡的处理过程,可以减少服务器的计算过程,提高数据的处理效率。
本公开实施例所提供的方法中,服务器还具有解封装的能力。具体的,服务器还可以接收转发设备发送的封装后的网络数据,并对封装后的网络数据进行解封装,以获取其他服务器传输过来的网络数据。
基于相同的构思,本公开实施例还提供了一种数据传输系统,参见图3所示,为本公开实施例提供的一种数据传输系统的示意图,包括以下几个步骤:
步骤301、当运行在所述第一服务器上的虚拟机生成网络数据之后,第一服务器判断该网络数据对应的目的IP地址是否属于目的IP地址范围。
具体实施中,在网络搭建完成后,转发设备可以向Underlay网络覆盖区域内的各个网络设备发送所述转发设备对应的Overlay网络的网段信息和所述转发设备的IP地址。其中,所述网段信息用于指示所述转发设备负责转发的网络数据对应的目的IP地址范围,该目标IP地址范围是Overlay网络下的网络范围。
各个网络设备在接到到网段信息和转发设备的IP地址后,可以进行存储,当运行在所述第一服务器上的虚拟机生成网络数据之后,第一服务器可以从与第一服务器连接的网络设备中获取存储的网段信息,并根据获取的网段信息判断该网络数据对应的目的IP地址是否属于目的IP地址范围。
步骤302、若该网络数据对应的目的IP地址属于所述目的IP地址范围,第一服务器控制与第一服务器连接的网络设备将所述网络数据和目的IP地址发送至转发设备。
步骤303、转发设备接收第一服务器发送的网络数据以及目的IP地址后,基于所述目的IP地址对所述网络数据进行封装。
步骤304、转发设备将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器。
步骤305、第二服务器接收所述转发设备发送的封装后的网络数据,并对所述封装后的网络数据进行解封装。
这里,第二服务器在对封装后的网络数据进行解封装时,可以是通过运行在第二服务器上的虚拟交换机进行解封装。
在上述系统中,由于服务器只需要具有解封装能力,转发设备只需要具有封装能力即可,因此转发设备和服务器之间建立的为单向Overlay隧道。
当服务器的个数为N时,若Overlay网络中包括K个转发设备,则Overlay网络中的Overlay隧道个数为K*N,相比较现有技术中建立的双向Overlay隧道的个数为N*(N-1)/2个,可以通过控制转发设备的个数,控制Overlay隧道的个数,K、N均为正整数,且一般情况下K远小于N。
另外,当需要在Overlay网络中新增服务器时,通过本公开实施例所提供的系统,只需要再建立K个单向Overlay隧道,执行K+1次操作即可完成隧道创建(执行K次操作在K个转发设备上创建隧道,执行一次操作在新增服务器上创建隧道),而现有技术中则需要建立N个双向Overlay隧道,需要执行的操作数为2N次(N个现有服务器,分别执行一次操作,创建与新增服务器之间的Overlay隧道,在新增服务器上执行N次操作,创建与每一个现有服务器之间的Overlay隧道),一般情况下K远小于N,因此,通过本公开实施例所提供的系统简化了新增服务器的步骤,且减少了隧道的个数。
另外,本公开实施例还提供了另外一种数据传输系统,参见图4所示,为本公开实施例提供的另外一种数据传输系统的示意图,包括以下几个步骤:
步骤401、当运行在所述第一服务器上的虚拟机生成网络数据之后,第一服务器基于转发设备的IP地址,对所述网络数据进行封装,并将封装之后的网络数据以及该网络数据对应的目的IP地址发送至所述转发设备。
步骤402、转发设备在接收到所述第一网络设备发送的封装后的网络数据以及所述目的IP地址后,对所述封装后的网络数据进行解封装,并基于所述目的IP地址重新对解封装之后的网络数据进行封装。
其中,第一服务器在基于转发设备的IP地址对待传输的网络数据进行封装时,与转发设备基于目的IP地址对解封装后的网络数据进行封装时所采用的封装方式可以相同,示例性的,可以均封装成Vxlan格式。
步骤403、转发设备将重新封装后的网络数据发送至所述目的IP地址对应的第二服务器。
步骤404、第二服务器接收所述转发设备发送的重新封装后的网络数据,并对所述重新封装后的网络数据进行解封装。
在这种实施方式下,转发设备与服务器之间建立的是双向Overlay隧道,服务器即需要具有封装的能力,也需要具有解封装的能力,转发设备也需要封装的能力和解封装的能力。
需要说明的是,在这种实施方式下,由于第一服务器和转发设备之间通信是在Overlay网络的基础上,转发设备与第二服务器之间也是在Overlay网络的基础上,也就是说第一服务器、第二服务器和转发设备均位于Overlay网络,因此转发设备无需提前向各个网络设备发送网段信息。
这里,所需要建立的Overlay隧道个数与图3中所述的数据传输系统中所需要建立的Overlay隧道个数相同。不同的是,当需要在Overlay网络中新增服务器时,通过图4所示的数据传输系统需要再建立K个双向Overlay隧道,执行2K次操作即可完成隧道创建(执行K次操作在K个转发设备上创建隧道,执行K次操作在新增服务器上创建与每个转发设备之间的隧道),由于K远小于N,因此,通过图4所示的系统也可以简化了新增服务器的步骤。
本公开提供的一种数据传输方法,在转发设备和各个服务器之间建立单向隧道,服务器在生成网络数据之后,只需要直接将生成的网络数据发送至转发设备,由转发设备进行封装,然后发送给其他服务器,转发设备只需要具备封装的能力,其他服务器也只需要具备解封装的能力即可,这样,减少了网络中的隧道个数;当需要新增服务器时,只需要在新增服务器与转发设备之间建立单向隧道即可,简化了新增服务器的处理步骤。。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据传输方法对应的数据传输装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据传输方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种数据传输装置的架构示意图,所述装置包括:接收模块501、封装模块502、第一发送模块503;其中,
接收模块501,用于接收第一网络设备发送的网络数据以及目的IP地址,其中所述第一网络设备为第一网络中与第一服务器相连的网络设备;所述目的IP地址为第二网络的网段信息中的地址,所述第一网络和所述第二网络为不同属性的网络;
封装模块502,用于基于所述目的IP地址对所述网络数据进行封装;
第一发送模块503,用于将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器,以使所述第二服务器对封装后的所述网络数据进行解封装。
一种可能的实施方式中,所述第一发送模块503,还用于:
通过中间处理设备向所述第一网络覆盖区域内的各个网络设备发送所述转发设备对应的第二网络的网段信息和所述中间处理设备的IP地址,以及向所述中间处理设备发送所述转发设备的IP地址;所述网段信息用于指示所述转发设备负责转发的网络数据对应的目的IP地址范围;
其中,所述转发设备接收的所述第一网络设备发送的目的IP地址为所述目标IP地址范围内的地址。
一种可能的实施方式中,所述接收模块501,在接收第一网络中与第一服务器相连的第一网络设备发送的网络数据以及目的IP地址时,用于:
接收由所述中间处理设备基于所述转发设备的IP地址转发的,与所述第一服务器相连的第一网络设备发送的网络数据以及目的IP地址。
一种可能的实施方式中,所述目的IP地址为虚拟IP地址;
所述封装模块502,在基于所述目的IP地址对所述网络数据进行封装时,用于:
从预先存储的虚拟IP地址和服务器真实IP地址的对照表中,确定所述虚拟IP地址对应的服务器的真实IP地址;
根据确定的真实IP地址,对所述网络数据进行封装。
一种可能的实施方式中,所述第一网络为Underlay网络,所述第二网络为Overlay网络。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
参照图6所示,为本公开实施例提供的另一种数据传输装置的架构示意图,所述装置包括:判断模块601、发送模块602;其中,
判断模块601,用于当运行在所述服务器上的虚拟机生成网络数据之后,判断该网络数据对应的目的IP地址是否属于转发设备对应的目的IP地址范围;其中,所述转发设备对应的目的IP地址范围为预先接收的所述转发设备发送的,且存储在所述与所述服务器连接的网络设备中的;
发送模块602,用于,若是,控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,以使所述转发设备将所述网络数据进行封装并发送至所述目的IP地址对应的服务器。
一种可能的实施方式中,所述发送模块602,在控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备时,用于:
基于预先存储的与所述目标IP地址范围对应的中间处理设备的IP地址,控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备。
一种可能的实施方式中,所述发送模块602,在控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备时,用于:
控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备基于预先设置的负载均衡策略,将所述网络数据和目的IP地址发送至对应的目标转发设备。
一种可能的实施方式中,所述装置还包括,解封装模块603,用于:
接收转发设备发送的封装后的网络数据,并对所述封装后的网络数据进行解封装。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图7所示,为本申请实施例提供的计算机设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换,当计算机设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701在执行以下指令:
接收第一网络设备发送的网络数据以及目的IP地址,其中所述第一网络设备为第一网络中与第一服务器相连的网络设备;所述目的IP地址为第二网络的网段信息中的地址,所述第一网络和所述第二网络为不同属性的网络;
基于所述目的IP地址对所述网络数据进行封装;
将封装后的所述网络数据发送至所述目的IP地址对应的第二服务器,以使所述第二服务器对封装后的所述网络数据进行解封装。
一种可能的实施方式中,处理器701执行的指令中,还包括:
通过中间处理设备向所述第一网络覆盖区域内的各个网络设备发送所述转发设备对应的第二网络的网段信息和所述中间处理设备的IP地址,以及向所述中间处理设备发送所述转发设备的IP地址;所述网段信息用于指示所述转发设备负责转发的网络数据对应的目的IP地址范围;
其中,所述转发设备接收的所述第一网络设备发送的目的IP地址为所述目标IP地址范围内的地址。
一种可能的实施方式中,处理器701执行的指令中,所述接收第一网络中与第一服务器相连的第一网络设备发送的网络数据以及目的IP地址,包括:
接收由所述中间处理设备基于所述转发设备的IP地址转发的,与所述第一服务器相连的第一网络设备发送的网络数据以及目的IP地址。
一种可能的实施方式中,处理器701执行的指令中,所述目的IP地址为虚拟IP地址;
所述基于所述目的IP地址对所述网络数据进行封装,包括:
从预先存储的虚拟IP地址和服务器真实IP地址的对照表中,确定所述虚拟IP地址对应的服务器的真实IP地址;
根据确定的真实IP地址,对所述网络数据进行封装。
一种可能的实施方式中,处理器701执行的指令中,所述第一网络为Underlay网络,所述第二网络为Overlay网络。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图8所示,为本申请实施例提供的计算机设备800的结构示意图,包括处理器801、存储器802、和总线803。其中,存储器802用于存储执行指令,包括内存8021和外部存储器8022;这里的内存8021也称内存储器,用于暂时存放处理器801中的运算数据,以及与硬盘等外部存储器8022交换的数据,处理器801通过内存8021与外部存储器8022进行数据交换,当计算机设备800运行时,处理器801与存储器802之间通过总线803通信,使得处理器801在执行以下指令:
当运行在所述服务器上的虚拟机生成网络数据之后,判断该网络数据对应的目的IP地址是否属于转发设备对应的目的IP地址范围;其中,所述转发设备对应的目的IP地址范围为预先接收的所述转发设备发送的,且存储在所述与所述服务器连接的网络设备中的;
若是,控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,以使所述转发设备将所述网络数据进行封装并发送至所述目的IP地址对应的服务器。
一种可能的实施方式中,处理器801执行的指令中,所述控制网络设备将所述网络数据和目的IP地址发送至对应的转发设备,包括:
基于预先存储的与所述目标IP地址范围对应的中间处理设备的IP地址,控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备。
一种可能的实施方式中,处理器801执行的指令中,所述控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备转发至对应的转发设备,包括:
控制网络设备将所述网络数据和目的IP地址发送至所述中间处理设备,以使所述中间处理设备基于预先设置的负载均衡策略,将所述网络数据和目的IP地址发送至对应的目标转发设备。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据传输方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的数据传输方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据传输方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。