一种自定义vlan网络的方法、设备及存储介质与流程

文档序号:30265411发布日期:2022-06-02 03:56阅读:151来源:国知局
一种自定义vlan网络的方法、设备及存储介质与流程

1.本技术涉及通信技术领域,尤其涉及一种自定义vlan网络的方法、设备及存储介质。


背景技术:

2.目前,在vpc(virtualprivatecloud,虚拟私有网络)内,只能使用云厂商统一规划的地址,vpc不支持用户进行地址和网关的自定义。然而,在实际应用中,用户的已有产品内部可能已经完成了地址规划,而由于产品内部的地址规划无法与vpc中的地址相适配,导致用户不得不放弃将已有产品迁移到vpc或者只能迁就vpc中的地址而对已有产品进行修改,无论哪种情况,都会给用户带来了诸多不便。
3.因此,如何实现在vpc中支持用户自定义网络成为亟待解决的技术问题。


技术实现要素:

4.本技术的多个方面提供一种自定义vlan网络的方法、设备及存储介质,用以实现在局域网中支持用户自定义vlan网络。
5.本技术实施例提供一种自定义vlan网络的方法,适用于局域网中的目标设备,所述方法包括:在所述目标设备上创建vxlan组件,所述局域网中各个设备上的vxlan组件之间配合以构建基于所述局域网中原始规划地址的vxlan网络;在所述目标设备上创建虚拟交换组件以及至少一个虚拟网络组件;将所述至少一个虚拟网络组件分别通过所述虚拟交换组件连通至所述vxlan组件,所述至少一个虚拟网络组件的另一端连接至用户层;按照所述用户层中的地址使用需求,在所述至少一个虚拟网络组件上分别配置自定义的vlan地址,以在所述局域网之上构建起自定义的至少一个vlan网络。
6.本技术实施例还提供一种自定义vlan网络的方法,适用于局域网中的指定设备,所述方法包括:在所述指定设备上创建vxlan组件,所述局域网中各个设备上的vxlan组件之间配合以构建基于所述局域网中原始规划地址的vxlan网络;在所述指定设备上创建虚拟交换组件以及至少一个虚拟网络组件;将所述至少一个虚拟网络组件分别通过所述虚拟交换组件连通至所述vxlan组件;按照用户层中的网关使用需求,在所述至少一个虚拟网络组件上分别配置自定义的vlan网关地址,以为在所述局域网中的其它设备上构建起的自定义的vlan网络提供vlan网关服务。
7.本技术实施例还提供一种计算设备,位于局域网中,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:在所述计算设备上创建vxlan组件,所述局域网中各个设备上的vxlan组件之间配合以构建基于所述局域网中原始规划地址的vxlan网络;在所述计算设备上创建虚拟交换组件以及至少一个虚拟网络组件;将所述至少一个虚拟网络组件分别通过所述虚拟交换组件连通至所述vxlan组件,所述至少一个虚拟网络组件的另一端连接至用户层;按照所述用户层中的地址使用需求,在所述至少一个虚拟网络组件上分别配置自定义的vlan地址,以在所述局域网之上构建起自定义的至少一个vlan网络。
8.本技术实施例还提供一种计算设备,位于局域网中,包括存储器、处理器和通信组件;所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:在所述计算设备上创建vxlan组件,所述局域网中各个设备上的vxlan组件之间配合以构建基于所述局域网中原始规划地址的vxlan网络;在所述计算设备上创建虚拟交换组件以及至少一个虚拟网络组件;将所述至少一个虚拟网络组件分别通过所述虚拟交换组件连通至所述vxlan组件;按照用户层中的网关使用需求,在所述至少一个虚拟网络组件上分别配置自定义的vlan网关地址,以为在所述局域网中的其它设备上构建起的自定义的vlan网络提供vlan网关服务。
9.本技术实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的自定义vlan网络的方法。
10.在本技术实施例中,通过在局域网中的各个设备中分别创建vxlan组件,来构建基于所述局域网中原始规划地址的vxlan网络;在局域网中的各个设备中分别创建虚拟交换组件以及至少一个虚拟网络组件;并通过虚拟交换组件将虚拟网络组件和vxlan组件连通,以在局域网中的各个设备各自包含的虚拟网络组件之间构建起四通八达的通信链路;还可将虚拟网络组件的另一端连接至用户层;在此基础上,可按照用户层中的地址使用需求,在虚拟网络组件上按需配置自定义的vlan网络。据此,本技术实施例中,可以局域网作为底层underlay网络,通过纯软件的方式,无需依赖任何物理设备,即可在局域网中构建出上层overlay网络,来实现在局域网中自定义vlan网络,这可有效提高局域网中的地址灵活性,使得局域网可满足用户多样化的组网需求。
附图说明
11.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
图1为本技术一示例性实施例提供的局域网的结构示意图;图2为本技术一示例性实施例提供的一种自定义vlan网络的方法的流程示意图;图3为本技术一示例性实施例提供的另一种自定义vlan网络的方法的流程示意图;图4为本技术一示例性实施例提供的一种应用场景的示意图;图5为本技术另一示例性实施例提供的一种计算设备的结构示意图;图6为本技术又一示例性实施例提供的另一种计算设备的结构示意图。
具体实施方式
12.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
13.目前,局域网中不支持自定义网络,给用户带来了诸多不便。为此,本技术的一些实施例中:通过在局域网中的各个设备中分别创建vxlan(virtual extensible local area network,虚拟扩展局域网)组件,来构建基于所述局域网中原始规划地址的vxlan网络;在局域网中的各个设备中分别创建虚拟交换组件以及至少一个虚拟网络组件;并通过虚拟交换组件将虚拟网络组件和vxlan组件连通,以在局域网中的各个设备各自包含的虚拟网络组件之间构建起四通八达的通信链路;还可将虚拟网络组件的另一端连接至用户层;在此基础上,可按照用户层中的地址使用需求,在虚拟网络组件上按需配置自定义的vlan(virtual local area network,虚拟局域网)网络。据此,本技术实施例中,可以局域网作为underlay(底层)网络,通过纯软件的方式,无需依赖任何物理设备,即可在局域网中构建出overlay(上层)网络,来实现在局域网中自定义vlan网络,这可有效提高局域网中的地址灵活性,使得局域网可满足用户多样化的组网需求。
14.以下结合附图,详细说明本技术各实施例提供的技术方案。
15.图1为本技术一示例性实施例提供的局域网的结构示意图。如图1所示,该局域网中可包括若干设备。在局域网的组建阶段,已经为各个设备规划了地址,本文中,将局域网中为各个设备原始规划的地址称为原始规划地址。局域网中每个设备都拥有网卡,原始规划地址即配置在设备的网卡中。
16.本实施例提供的自定义vlan网络的方法,可应用于各种类型的局域网中,包括但不限于虚拟私有网络vpc等。在不同类型的局域网中,设备的形态也不尽相同,例如,在vpc中,设备可以是指用户创建的vm(虚拟机)。又例如,在物理局域网中,设备可以是指计算机、服务器等物理设备。本实施例对应用场景不做限定。
17.本实施例中,可在局域网包含的各个设备中指定一设备承担router(路由)的角色,本文中将该设备称为指定设备,后文中将提到,指定设备可为局域网中的其它设备提供vlan网关服务。以下,先从局域网中除指定设备之外的其它普通的设备的角度来说明本实施例提供的技术方案。为便于描述,本文中将以目标设备为例,进行技术方案的描述,但应当理解的是,局域网中其它的普通的设备也可采用与目标设备相同的技术逻辑来实施本实施例提供的技术方案。
18.本实施例中,可在目标设备上安装agent(代理程序),以使能目标设备执行后文中的技术逻辑。
19.图2为本技术一示例性实施例提供的一种自定义vlan网络的方法的流程示意图。参考图2,该方法可包括:步骤100、在目标设备上创建vxlan组件,局域网中各个设备上的vxlan组件之间配合以构建基于局域网中原始规划地址的vxlan网络;步骤101、在目标设备上创建虚拟交换组件以及至少一个虚拟网络组件;步骤102、将至少一个虚拟网络组件分别通过虚拟交换组件连通至vxlan组件,至少一个虚拟网络组件的另一端连接至用户层;步骤102、按照用户层中的地址使用需求,在至少一个虚拟网络组件上分别配置自定义的vlan地址,以在局域网之上构建起自定义的至少一个vlan网络。
20.参考图1和图2,在步骤100中,可在目标设备上创建vxlan组件,同样,还可在局域网中的其它设备上也创建vxlan组件,基于此,局域网中各个设备上的vxlan组件之间可以相互配合,以构建起基于局域网中原始规划地址的vxlan网络。本实施例中,各个设备上的vxlan组件可分别关联至其本机上的网卡,如前文提及的,局域网中的各个设备的网卡上配置的是原始规划地址,因此,vxlan网络中发生的通信过程中可使用局域网中的原始规划地址,这使得局域网成为本方法中的底层underlay网络。
21.在一种可选的实现方案中,构建vxlan网络的过程可以是:可将目标设备的原始规划地址上报至局域网包含的各个设备中用于寻址的指定设备,同样,局域网中其它设备对应的原始规划地址也将被上报至指定设备。对于指定设备来说,则可将收集到的局域网中各个设备各自对应的原始规划地址通报给各个设备。局域网中的各个设备可各自维护一fdb(地址表),在地址表fdb中记录局域网包含的各个设备中的vxlan组件与本机网卡中配置的原始规划地址之间的关联关系。其中,地址表fdb可作为vxlan网络中的寻址基础。
22.本实施例中,通过构建vxlan网络,可在局域网(作为底层uderlay网络)之上构建起一层中间网络,为本实施例中在局域网之上构建上层overlay网络提供支持。
23.参考图1和图2,在步骤101中,可在目标设备上创建虚拟交换组件以及至少一个虚拟网络组件。其中,虚拟交换组件具有交换机的功能,虚拟交换组件可以采用bridge(网桥)等,本实施例对此不做限定。本实施例中,可采用二层虚拟交换组件,当然,本实施例并不限于此。其中,虚拟网络组件用于承担网络转发功能,虚拟网络组件可包括但不限于虚拟网卡接口veth对或tap等。其中, veth(virtual ethernet,虚拟网卡接口),是linux提供的另外一种特殊的网络设备,中文称为虚拟网卡接口。它总是成对出现,要创建就创建一个pair(对)。
24.参考图1和图2,在步骤102中,可将至少一个虚拟网络组件分别通过虚拟交换组件连通知vxlan组件。也即是,虚拟交换组件可作为媒介,连通虚拟网络组件和vxlan组件,而且,虚拟交换组件上可连接一个或多个虚拟网络组件。本实施例中,虚拟网络组件的数量可按需设置,而且,可根据需要随时创建新的虚拟网络组件,只需将新创建的虚拟网络组件接入虚拟交换组件即可激活其在本实施例中相关能力。
25.参考图1和图2,本实施例中,虚拟网络组件的一端连接虚拟交换组件,另一端则连
接至用户层。其中,用户层可以是指应用进程可访问的地址空间,应用进程运行在用户层中,这样,虚拟网络组件可与用户层中的应用进程进行通信。本实施例中可采用现有或将来可能出现的各种方式来实现虚拟网络组件与用户层中的应用进行之间的通信,以局域网采用linux结构为例,目前虚拟网络组件已有很多种办法来让linux的内核空间和用户空间(对应本实施例中的用户层)的进程交换数据,在此不做详述。承接前文中提供的几种示例性虚拟网络组件,在虚拟网络组件采用veth对的情况下,veth对中的一个veth端可接入虚拟交换组件,veth对中的两一个veth端则可连接用户层。基于此,用户层中的应用进程可通过虚拟网络组件来进行报文转发;在虚拟网络组件采用tap的情况下,则可将tap直接接入虚拟交换组件。
26.参考图1和图2,在步骤103中,可按照用户层中的地址使用需求,在至少一个虚拟网络组件上分别配置自定义的vlan地址。本实施例中,可提供地址使用需求配置服务,用户可按需为用户层中的应用程序配置地址使用需求,当然,在一些情况下,应用程序自身也可按照某些触发事件而自动确定出地址使用需求,本实施例对地址使用需求的提出方式不做限定。其中,在虚拟网络组件采用veth对的情况下,可将veth对中的一个veth端接入虚拟交换组件;在veth对中的另一个veth端上配置自定义的vlan地址。可选地,用户层中的应用进程可向目标设备中安装的代理程序发起地址使用需求,代理程序可为指定虚拟网络组件配置与该地址使用需求适配的vlan地址,其中,指定虚拟网络组件可由应用进程指定,也可由代理程序指定并通报给应用进程。
27.参考图1,本实施例中,还可为虚拟网络组件创建vlan子接口,并基于vlan子接口自定义更多的vlan网络。在虚拟网络中采用vlan子接口的方式,可以实现vlan标签。以目标设备上的第一虚拟网络组件(第一虚拟网络组件可以是目标设备上至少一个虚拟网络组件中的任意一个)为例,可为第一虚拟网络组件创建至少一个vlan子接口,并可为vlan子接口创建并连接虚拟交换组件,为vlan子接口创建的虚拟交换组件上可连接虚拟网络组件、docker(容器)等。在为vlan子接口创建的虚拟交换组件上连接虚拟网络组件的情况下,可按照用户层中的地址使用需求,为虚拟网络组件配置自定义的vlan地址。在为vlan子接口创建的虚拟交换组件上连接容器docker的情况下,可保持容器docker的原有地址不变,而将容器所对应的原有地址作为自定义的vlan地址引入局域网中。可选地,本实施例中,为vlan子接口创建的虚拟交换组件所连接的容器可以是用户层已经关联的容器,例如,用户层中的应用进程所处的容器,也即是,用于运行应用进程的容器。这样,应用进程可继续沿用其所处容器的原有地址,而无需因将应用程序迁移至局域网中而做出改变。
28.本实施例中,不同虚拟网络组件上配置的自定义的vlan地址可分属不完全相同的vlan网络,也即是,可在虚拟网络组件上按需灵活配置vlan地址,这样,可在局域网上构建其自定义的至少一个vlan网络。
29.另外,本实施例中,在用户层中的地址使用需求发生变化的情况下,还可修改至少一个虚拟网络设备上配置的自定义的vlan地址,也即是,虚拟网络设备上配置的自定义的vlan地址是可变换的。这可支持更加快速地、更加轻量地、更加灵活地自定义vlan网络。
30.经过上述的处理过程,参考图1,本实施例中,可建立起“用户层中的第一应用进程-本端的虚拟网络组件-本端的虚拟交换组件-本端的vxlan组件-本端的网卡-对端网卡-对端vxlan组件-对端的虚拟交换组件-对端的虚拟网络组件-用户层中的第二应用进程”这
一通信链路,而在该通信链路中,应用进程仅感知虚拟网络组件,且应用进程可使用虚拟网络组件上配置的自定义vlan地址(对应于vlan网络)来发送/接收报文,而在vxlan组件层面则可将应用进程发出的报文作为内层报文,并对内层报文进行vxlan封装,以通过在局域网之上建立的vxlan网络来将报文传递至对端。
31.据此,本实施例中,可通过在局域网中的各个设备中分别创建vxlan组件,来构建基于所述局域网中原始规划地址的vxlan网络;在局域网中的各个设备中分别创建虚拟交换组件以及至少一个虚拟网络组件;并通过虚拟交换组件将虚拟网络组件和vxlan组件连通,以在局域网中的各个设备各自包含的虚拟网络组件之间构建起四通八达的通信链路;还可将虚拟网络组件的另一端连接至用户层;在此基础上,可按照用户层中的地址使用需求,在虚拟网络组件上按需配置自定义的vlan网络。据此,本技术实施例中,可以局域网作为底层underlay网络,通过纯软件的方式,无需依赖任何物理设备,即可在局域网中构建出上层overlay网络,来实现在局域网中自定义vlan网络,这可有效提高局域网中的地址灵活性,使得局域网可满足用户多样化的组网需求。
32.在上述或下述实施例中,可基于在局域网上自定义的至少一个vlan网络支持用户层中应用进程之间的通信。
33.对于用户层中的应用进程来说,其自知所应使用的虚拟网络组件以及vlan地址,以应用进程所使用的虚拟网络组件为目标设备中的目标虚拟网络组件为例,本实施例中,可在用户层中的应用进程基于自定义的vlan地址(也即是目标虚拟网络组件中配置的自定义的vlan地址)发出首报文的情况下,通过目标虚拟网络组件将首报文传递至目标设备中的vxlan组件。其中,首报文是指两个应用进程之间进行通信的过程中出现的第一个报文。
34.对于应用进程进行来说,其发出首报文时并无法预知目的地址(为本实施例中自定义的vlan地址)位于局域网中的哪个设备上,因此,本实施例中,目标设备中的vxlan组件可采用多播的方式在vxlan网络中为首报文进行寻址,以在局域网中确定出首报文对应的目的设备。一种示例性的寻址方案可以是:目标设备中的vxlan组件可采用多播的方式在vxlan网络中传输首报文,这样,首报文将被传递至局域网中的各个设备;对于局域网中的各个设备来说,在接收到首报文的情况下,可确定是否需要跨网段传输(也即是首报文的源vlan地址与目的vlan地址是否分属不同的vlan网络),若无需跨网段传输,则目的vlan地址所在的目的设备上的vxlan组件可基于vxlan通信协议感知到首报文的目的vlan地址位于目的设备上,从而确认自身为目的设备;若需要跨网段传输,则前述的用于寻址的指定设备可为首报文提供网关服务,以确定出目的设备。
35.在确定出首报文对应的目的设备后,可利用目的设备中的vxlan组件和虚拟网络组件将首报文传递至用户层中的相关应用进程。基于确定出的目的设备,首报文的传输路径将为:用户层中的第一应用进程-目标设备中的目标虚拟网络组件-目标设备中的虚拟交换组件-目标设备中的vxlan组件-目标设备中的网卡-目的设备中的网卡-目的设备中的vxlan组件-目的设备中的虚拟交换组件-目的设备中的虚拟网络组件-用户层中的第二应用进程。
36.接收到首报文的应用进程可进行回包,并在回包中通报自身的原始规划地址,这样,发出首报文的应用进程可获知目的设备的原始规划地址。在首报文之后,应用程序可发出后续的报文,我们将其称为非首报文,并基于目标虚拟网络组件上配置的自定义的vlan
地址、目的vlan地址以及目的设备的原始规划地址等配置非首报文的路由信息,以使非首报文能够通过vxlan网络精准传递至目的设备并利用目的设备中的vxlan组件和虚拟网络组件将首报文传递至用户层中的相关应用进程。在非首报文需要跨网段的情况下,非首报文的路由信息中可先将局域网中用于寻址的指定设备的地址作为首跳的目的地址,从而使能指定设备中的相应虚拟网络组件提供网关服务,指定设备中提供网关服务的虚拟网络组件可将非首报文中的下一跳目的地址修改为真正的目的设备的原始规划地址以及其上的目的vlan地址,以将非首报文传递至目的设备并使能目标设备中的vxlan组件和虚拟网络组件将首报文传递至用户层中的相关应用进程。
37.据此,本实施例中,用户层中的应用进程可与底层underlay的局域网相解耦,并可基于在局域网上构建的自定义的vlan网络进行通信,而应用进程基于自定义的vlan网络进行通信的过程中,可以vxlan网络作为中间网络,以局域网作为底层underlay网络,保证通信过程的畅通性。
38.在上述或下述实施例中,可在局域网包含的各个设备中指定一设备承担路由router的角色,该设备即是前文中提及的指定设备。以下将从指定设备的角度来说明本实施例提供的技术方案。
39.图3为本技术一示例性实施例提供的另一种自定义vlan网络的方法的流程示意图,参考图3,该方法适用于本实施例中的指定设备,该方法可包括:步骤300、在指定设备上创建vxlan组件,局域网中各个设备上的vxlan组件之间配合以构建基于局域网中原始规划地址的vxlan网络;步骤301、在指定设备上创建虚拟交换组件以及至少一个虚拟网络组件;步骤302、将至少一个虚拟网络组件分别通过虚拟交换组件连通至vxlan组件;步骤303、按照用户层中的网关使用需求,在至少一个虚拟网络组件上分别配置自定义的vlan网关地址,以为在局域网中的其它设备上构建起的自定义的vlan网络提供vlan网关服务。
40.其中,步骤300-301的实现方案与前述实施例中目标设备角度的步骤100-101的实现方案一致,在此不再重复赘述。在步骤302中,可将至少一个虚拟网络组件分别通过虚拟交换组件连通至vxlan组件。这样,本实施例中,基于步骤300-301,可使指定设备加入局域网之上构建起的vxlan网络,并实现“虚拟网络组件-虚拟交换组件-vxlan组件-vxlan网络”的通路。
41.与前述的目标设备不同的是,本实施例中,指定设备中的虚拟网络组件不再接入用户层,而是将虚拟网络组件用作网关,为局域网中的其它设备提供网关服务。参考步骤303,可按照用户层中的网关使用需求,在至少一个虚拟网络组件上分别配置自定义的vlan网关地址,以为在局域网中的其它设备上构建起的自定义的vlan网络提供vlan网关服务。其中,本实施例中,在局域网之上每构建起一个vlan网络,则可在指定设备上提供一个与之相匹配的网关地址,以为vlan网络提供网关服务。
42.基于此,指定设备将位于局域网之上的vxlan网络中,指定设备可为vxlan网络之上的各个vlan网络提供网关服务,以支持用户层中的应用进程之间可能发生的跨网段通信。
43.本实施例中,还可为指定设备中的至少一个虚拟网络组件创建vlan子接口,vlan
子接口上可直接创建新的虚拟网络组件,这样,vlan子接口可支持配置更多的网关地址,以应对用户层中更多的网关使用需求。另外,本实施例中,指定设备中虚拟网络组件上配置的自定义的vlan网关地址也是可变化的,可根据需要进行修改。
44.在局域网中构建起上述四通八达的网络结构后,在用户层中的应用进程之间进行通信的过程中,只需按照相关的路由信息传递报文即可,指定设备提供的网关服务可支持跨网段的通信;在报文经过各层网络(vlan网络、vxlan网络、局域网)边界时,按照下一层网络的通信协议对报文进行封装/解封装,即可保证报文的畅通传输。关于报文传输过程中的封装/解封装细节在此不做展开详述。
45.举例来说,针对首报文需要跨网段传输的情况,指定设备可:接收局域网中的第一设备通过vxlan网络发出的首报文,首报文中以第一设备中指定的虚拟网络组件上所配置的自定义vlan地址作为源vlan地址;若首报文的目的vlan地址与源vlan地址跨网段,则确定目的vlan地址对应的目标vlan网关地址;利用目标vlan网关地址对应的虚拟网络组件为首报文提供vlan网关服务,以将首报文传递至目的vlan地址。在一些情况下,指定设备在提供网关服务的过程中,可能发生网关之间的相互跳转,这种情况下,网关之间可通过内部网络协议栈完成直接跳转,并无需再途径虚拟交换组件及vxlan组件等。
46.据此,本实施例中,可在指定设备中的虚拟网络组件上配置与局域网上自定义的vlan网络相适配的网关地址,以为自定义的vlan网络提供网关服务,从而可支持用户层中的应用进程之间在vlan网络层面进行跨网段通信。
47.图4为本技术一示例性实施例提供的一种应用场景的示意图。参考图4,以将本实施例提供的技术构思应用于vpc场景为例,说明在vpc上自定义vlan网关的技术方案。
48.图4中示出了用户在vpc中创建的3个虚拟机,当然,实际应用中,用户在vpc中的虚拟机的数量远大于此。其中,指定虚拟机3作为用于寻址的设备,虚拟机1和虚拟机2作为用户部署云服务的普通设备。基于本实施例的技术构思,可在虚拟机1和2上安装代理程序agent,在虚拟机3上安装服务端程序sever。
49.从虚拟机1的角度来说,处理逻辑可包括:1、创建vxlan组件,图4中标示为vxlan0,并将vxlan0关联至虚拟机1的本机网卡en0,其中,可通过云网络dhcp自动获取en0的ip地址,该地址为vpc规划过程中为虚拟机1分配的原始规划地址。
50.2、创建linux bridge网桥作为虚拟交换组件。
51.3、创建veth对作为虚拟网络组件,其中一个veth端(图4中标示为veth-br)连接linux bridge网桥,另一个veth端(图4中标示为band0)接入用户层。agent可根据用户层中的地址使用需求,为band0配置自定义vlan地址。参考图4,虚拟机1和虚拟机2中的band0可分别配置不同网段的vlan地址,也即是,这两个vlan地址可分属于不同的vlan网络。
52.4、虚拟机1中的agent可通过心跳等方式向虚拟机3上报本地en0的ip地址,虚拟机3可收集vpc中所有虚拟机(包括虚拟机3自身)上报的ip地址,再同一下发到各个虚拟机,各个虚拟机可分别在本地维护bridge fbd地址表,以记录vpc中各个虚拟机原始规划地址。而且,各个虚拟机上的vxlan组件之间可基于各自关联的原始规划地址,构建起vxlan网络。基于vxlan网络,使得vpc中各个虚拟机上的vxlan组件之间互通。
53.5、还可为band0创建vlan子接口(图4中标示为band0.9和band0.11),并可为vlan
子接口连接新的linux bridge网桥,并可将用户层已关联的容器docker接入vlan子接口所连接的新的linux bridge网桥,以将容器docker的原始地址作为自定义vlan地址而引入到vpc中。当然,也可创建新的虚拟网络组件tap等接入vlan子接口所连接的新的linux bridge网桥。参考图4,基于vlan子接口额外自定义的vlan地址可与band0上配置的vlan地址属于不同vlan网络。
54.从虚拟机3的角度来说,处理逻辑可包括:1、创建vxlan组件,图4中标示为vxlan0,并将vxlan0关联至虚拟机3的本机网卡en0,其中,可通过云网络dhcp自动获取en0的ip地址,该地址为vpc规划过程中为虚拟机3分配的原始规划地址。
55.2、创建linux bridge网桥作为虚拟交换组件。
56.3、创建veth对作为虚拟网络组件,其中一个veth端(图4中标示为veth-br)连接linux bridge网桥,另一个veth端(图4中标示为band0)可用作网关。sever可按照用户层中的网关使用需求,为band0配置自定义的vlan网关地址,以在本地实现三层路由。
57.4、同样,虚拟机3中也在本地维护bridge fbd地址表,以记录vpc中各个虚拟机原始规划地址。
58.5、还可为band0创建vlan子接口,并可在vlan子接口上创建虚拟网络组件(图4中标示为band0.9)。band0.9同band0一样,可支持配置自定义的vlan网关地址,以提供三层路由。
59.经过上述的构建过程,可在虚拟机1和2上分别构建起多个vlan网络,并在虚拟机3上构建出与多个vlan网络适配的vlan网关服务。其中vpc作为底层underlay网络,vxlan网络作为中间网络,而自定义的多个vlan网络作为上层overlay网络。
60.基于此,若用户层中的应用进程a需要通过虚拟机1中的容器a(vlan地址为10.200.8.1)向应用进程b(使用的vlan地址为10.200.12.1)发送报文,则通信过程可以是:1、应用进程a基于源vlan地址、目的vlan地址、所需的vlan网关地址以及数据内容,构建以太网帧数据包,作为首报文;并在网络广播首报文,广播的其中一条路径会经过网桥到达band0.9,band0.9可为首报文打上vlan标签,用于表示首报文现在的地址是属于vlan地址。
61.2、由于band0.9和band0使用同一个介质,因此,首报文可从band0.9到达band0,而band0和vethbr互为veth对,这样,首报文可到达vethbr。
62.3、之后,vethbr可经过网桥将首报文传送至vxland0。
63.4、vxlan0可以首报文作为内层报文,按照vxlan通信协议对首报文进行udp封装,并在udp报文头中携带虚拟机1的原始规划地址。这样,基于vxlan网络,vxlan0可以多播的方式将udp报文传播至vpc中的每个虚拟机上的vxlan0。
64.5、vpc中的各个虚拟机上的vxlan0可解析udp报文头,从而确定首报文是否需要跨网段传输。
65.6、由于首报文确实需要跨网段传输,因此,虚拟机3中的vxlan0可感知到,并可使用首报文中指定的vlan网关地址(应该对应图4中的10.200.11.247)为首报文提供网关服务,该网关发现首报文的目的vlan地址为10.200.12.1,因此,将跳转至目的vlan地址对应的网关地址10.200.15.247,该网关服务可将首报文路由至虚拟机3上的band0
(10.200.247)-vetber-网桥-vxlan0,再从虚拟机3的vxlan0到达虚拟机2的vxlan0。
66.7、虚拟机2中的vxlan0可对udp报文进行解封装,从而将内层报文通过网桥-vethbr-band0-band0.0-网桥-容器b(10.200.12.1)-用户层中的应用进程b。至此,首报文到达应用进程b。
67.8、在应用进程a和应用进程b之间传输后续报文的过程中,应用进程a可在报文中增加与虚拟机2相关的地址信息,从而无需再通过多播的方式来发出报文,而是可通过准确的路由到达应用进程b。
68.通过图4提供的应用场景,可知,本实施例提供的自定义vlan网关的技术方案,可将局域网作为underlay网络,在其上构建vxlan网络作为中间网络,并可在vxlan网络之上构建起overlay网络来实现自定义vlan网络,并可支持自定义vlan网关。这使得用户可根据自己的应用进程的实际需要定义基础网络,应用进程可与vpc网络完全解耦,而不再收到vpc网络的约束,且自定义vlan网络的整个过程中,无需依赖任何物理交换设备,即可在云环境中实现用户个性化的基础网络。
69.需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
70.图5为本技术另一示例性实施例提供的一种计算设备的结构示意图。如图5所示,该计算设备包括:存储器50、处理器51以及通信组件52。
71.处理器51,与存储器50和通信组件52耦合,用于执行存储器50中的计算机程序,以用于:在计算设备上创建vxlan组件,局域网中各个设备上的vxlan组件之间配合以构建基于局域网中原始规划地址的vxlan网络;在计算设备上创建虚拟交换组件以及至少一个虚拟网络组件;将至少一个虚拟网络组件分别通过虚拟交换组件连通至vxlan组件,至少一个虚拟网络组件的另一端连接至用户层;按照用户层中的地址使用需求,在至少一个虚拟网络组件上分别配置自定义的vlan地址,以在局域网之上构建起自定义的至少一个vlan网络。
72.本实施例中的计算设备可以是局域网中的设备,计算设备可以是物理设备,也可以是虚拟机等虚拟设备。本实施例中,存储器50中存储的计算机程序可以是前述实施例中提及的代理程序agent。
73.在一可选实施例中, vxlan组件关联目标设备的原始规划地址,处理器51还可用于:将目标设备的原始规划地址上报至局域网包含的各个设备中用于寻址的指定设备,以供指定设备将收集到的局域网中各个设备各自对应的原始规划地址通报给各个设备,作为vxlan网络中的寻址基础。
74.在一可选实施例中,虚拟网络组件采用虚拟网卡接口veth对或tap。
75.在一可选实施例中,虚拟网络组件采用veth对的情况下,处理器51在至少一个虚
拟网络组件上分别配置自定义的vlan地址的过程中,可用于:将veth对中的一个veth端接入虚拟交换组件;在veth对中的另一个veth端上配置自定义的vlan地址。
76.在一可选实施例中,处理器51还可用于:为第一虚拟网络组件创建vlan子接口;基于vlan子接口,连通用户层已关联的容器docker所对应的vlan地址,以将容器docker所对应的vlan地址作为自定义vlan地址引入局域网;其中,第一虚拟网络组件为至少一个虚拟网络组件中的任意一个。
77.在一可选实施例中,处理器51还可用于:在用户层中的应用进程基于自定义的vlan地址发出首报文的情况下,通过对应的虚拟网络组件将首报文传递至vxlan组件;采用多播的方式,在vxlan网络中为首报文进行寻址,以在局域网中确定出首报文对应的目的设备;利用目的设备中的vxlan组件和虚拟网络组件将首报文传递至用户层中的相关应用进程。
78.在一可选实施例中,处理器51还可用于:在用户层中的应用进程基于自定义的vlan地址发出非首报文的情况下,基于首报文寻址过程中确定出的目的设备的原始规划地址,配置非首报文的路由信息,以使非首报文通过vxlan网络传递至目的设备并利用目的设备中的vxlan组件和虚拟网络组件将首报文传递至用户层中的相关应用进程。
79.在一可选实施例中,处理器51还可用于:在用户层中的地址使用需求发生变化的情况下,修改至少一个虚拟网络设备上配置的自定义的vlan地址。
80.在一可选实施例中,局域网为虚拟私有网络vpc,目标设备为vpc中的虚拟机。
81.进一步,如图5所示,该计算设备还包括:电源组件53等其它组件。图5中仅示意性给出部分组件,并不意味着计算设备只包括图5所示组件。
82.值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
83.图6为本技术又一示例性实施例提供的另一种计算设备的结构示意图。如图6所示,该计算设备包括:存储器60、处理器61以及通信组件62。
84.处理器61,与存储器60和通信组件62耦合,用于执行存储器60中的计算机程序,以用于:在指定设备上创建vxlan组件,局域网中各个设备上的vxlan组件之间配合以构建基于局域网中原始规划地址的vxlan网络;在指定设备上创建虚拟交换组件以及至少一个虚拟网络组件;将至少一个虚拟网络组件分别通过虚拟交换组件连通至vxlan组件;按照用户层中的网关使用需求,在至少一个虚拟网络组件上分别配置自定义的vlan网关地址,以为在局域网中的其它设备上构建起的自定义的vlan网络提供vlan网关服务。
85.本实施例中的计算设备可以是局域网中的设备,计算设备可以是物理设备,也可以是虚拟机等虚拟设备。本实施例中,存储器50中存储的计算机程序可以是前述实施例中提及的服务端程序sever。
86.在一可选实施例中,处理器61还可用于:接收局域网中的第一设备通过vxlan网络发出的首报文,首报文中以第一设备中指定的虚拟网络组件上所配置的自定义vlan地址作为源vlan地址;若首报文的目的vlan地址与源vlan地址跨网段,则确定目的vlan地址对应的目标vlan网关地址;利用目标vlan网关地址对应的虚拟网络组件为首报文提供vlan网关服务,以将首报文传递至目的vlan地址。
87.进一步,如图6所示,该计算设备还包括:电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着计算设备只包括图6所示组件。
88.值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
89.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
90.上述图5和6中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
91.上述图5和6中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
92.上述图5和6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
93.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
94.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
95.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
96.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
97.在一个典型的配置中,计算设备包括一个或多个处理器 (cpu)、输入/输出接口、网络接口和内存。
98.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (ram) 和/或非易失性内存等形式,如只读存储器 (rom) 或闪存(flash ram)。内存是计算机可读介质的示例。
99.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
100.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
101.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1