CN116599900A - 云环境访问方法及装置 - Google Patents

云环境访问方法及装置 Download PDF

Info

Publication number
CN116599900A
CN116599900A CN202310561516.2A CN202310561516A CN116599900A CN 116599900 A CN116599900 A CN 116599900A CN 202310561516 A CN202310561516 A CN 202310561516A CN 116599900 A CN116599900 A CN 116599900A
Authority
CN
China
Prior art keywords
virtual machine
routing
gateway
access request
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.)
Pending
Application number
CN202310561516.2A
Other languages
English (en)
Inventor
丁杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310561516.2A priority Critical patent/CN116599900A/zh
Publication of CN116599900A publication Critical patent/CN116599900A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种云环境访问方法及装置,该方法包括:在第二云环境中配置第一路由信息,第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机。建立路由虚拟机和网关虚拟机之间的虚拟链路,虚拟链路用于在路由虚拟机和网关虚拟机之间进行数据传输。配置第二路由信息,第二路由信息用于指示网关虚拟机将访问请求发送至路由虚拟机,以及指示路由虚拟机将访问请求发送至目标服务,访问请求用于请求访问第一云环境中的目标服务。根据第一路由信息、第二路由信息以及虚拟链路,将访问请求经过网关虚拟机转发至路由虚拟机,并由路由虚拟机将访问请求发送至目标服务。本申请的技术方案可以有效的实现第二云环境和第一云环境中的互相访问。

Description

云环境访问方法及装置
技术领域
本申请实施例涉及计算机技术,尤其涉及一种云环境访问方法及装置。
背景技术
目前存在一种技术可以将专有云部署在公共云上,以解决专有云对于物理设备的强耦合限制。
在专有云中,通常需要部署多种云环境,以满足用户对产品部署的需求。若在物理设备的基础上部署专有云,则可以基于物理设备的通信链路,实现不同云环境的互相访问。然而在公共云上部署专有云的实现方案中,因为没有物理设备的支撑,导致不同的云环境之间无法互相访问,这个问题目前尚没有有效的解决方案。
发明内容
本申请实施例提供一种云环境访问方法及装置,以克服不同的云环境之间无法互相访问的问题。
第一方面,本申请实施例提供一种云环境访问方法,应用于第一云平台,所述第一云平台部署在第二云平台上,所述第一云平台中包括第一云环境以及第二云环境,所述第一云环境中创建有路由虚拟机,所述第二云环境中创建有网关虚拟机,包括:
在所述第二云环境中配置第一路由信息,所述第一路由信息用于指示将访问所述第一云环境的请求发送至所述网关虚拟机;
建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
配置第二路由信息,所述第二路由信息用于指示所述网关虚拟机将访问请求发送至所述路由虚拟机,以及指示所述路由虚拟机将访问请求发送至所述目标服务,所述访问请求用于请求访问所述第一云环境中的目标服务;
根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述网关虚拟机转发至所述路由虚拟机,并由所述路由虚拟机将所述访问请求发送至所述目标服务。
第二方面,本申请实施例提供一种云环境访问方法,应用于第一云平台,所述第一云平台部署在第二云平台上,所述第一云平台中包括第一云环境以及第二云环境,所述第一云环境中创建有路由虚拟机以及slb虚拟机,所述第二云环境中创建有网关虚拟机,所述方法包括:
在所述第一云环境中配置第一路由信息,所述第一路由信息用于指示所述slb虚拟机中的中间组件将访问请求发送至所述路由虚拟机,所述访问请求用于请求访问所述第二云环境中的目标服务;
建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
配置第二路由信息,所述第二路由信息用于指示所述路由虚拟机将所述访问请求发送至所述网关虚拟机;
根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述路由虚拟机转发至所述网关虚拟机,并由所述网关虚拟机将所述访问请求发送至所述目标服务。
第三方面,本申请实施例提供一种云环境访问装置,包括:
配置模块,用于在第二云环境中配置第一路由信息,所述第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机;
处理模块,用于建立路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
所述配置模块,还用于配置第二路由信息,所述第二路由信息用于指示所述网关虚拟机将访问请求发送至所述路由虚拟机,以及指示所述路由虚拟机将访问请求发送至所述目标服务,所述访问请求用于请求访问所述第一云环境中的目标服务;
发送模块,用于根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述网关虚拟机转发至所述路由虚拟机,并由所述路由虚拟机将所述访问请求发送至所述目标服务。
第四方面,本申请实施例提供一种云环境访问装置,包括:
配置模块,用于在第一云环境中配置第一路由信息,所述第一路由信息用于指示slb虚拟机中的中间组件将访问请求发送至所述路由虚拟机,所述访问请求用于请求访问所述第二云环境中的目标服务;
处理模块,用于建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
所述配置模块,还用于配置第二路由信息,所述第二路由信息用于指示所述路由虚拟机将所述访问请求发送至所述网关虚拟机;
发送模块,用于根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述路由虚拟机转发至所述网关虚拟机,并由所述网关虚拟机将所述访问请求发送至所述目标服务。
第五方面,本申请实施例提供一种电子设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本申请实施例提供一种云环境访问方法及装置,该方法通过在第二云环境中配置将访问第一云环境的请求发送至网关虚拟机,以及在第二云环境的网关虚拟机和第一云环境的路由虚拟机之间建立相应的虚拟链路,以及配置相应的第二路由规则,从而可以实现将第二云环境中发起的针对目标服务的访问请求,经由网关虚拟机以及路由虚拟机,发送至第一云环境中的目标服务,通过配置上述介绍的路由以及链路,就可以有效的实现第二云环境对第一云环境中的目标服务的访问。以及,通过在第一云环境中配置将访问请求发送至路由虚拟机,以及在第二云环境的网关虚拟机和第一云环境的路由虚拟机之间建立相应的虚拟链路,以及配置相应的第二路由规则,从而可以实现将第一云环境中发起的针对目标服务的访问请求,经由路由虚拟机以及网关虚拟机,发送至第二云环境中的目标服务,通过配置上述介绍的路由以及链路,就可以有效的实现第一云环境对第二云环境中的目标服务的访问。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的专有云平台的架构示意图;
图2为本申请实施例提供的云环境访问方法的流程图;
图3为本申请实施例提供的云环境访问方法的流程图二;
图4为本申请实施例提供的访问请求的传输示意图一;
图5为本申请实施例提供的访问请求的传输示意图二;
图6为本申请实施例提供的云环境访问方法的流程图三;
图7为本申请实施例提供的访问请求的传输示意图三;
图8为本申请实施例提供的云环境访问方法的软件架构示意图;
图9为本申请实施例提供的云环境访问装置的结构示意图一;
图10为本申请实施例提供的云环境访问装置的结构示意图二;
图11为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本申请的技术方案,下面对本申请所涉及的相关概念首先进行说明。
公共云:公共云是基于标准云计算(cloud computing)的一个模式,在其中,服务供应商创造资源,如应用和存储,公众可以通过网络获取这些资源。
专有云:公共云能够满足大多数客户对计算的需求,但对一些特殊的客户,公共云可能无法满足需求,这就要为客户提供专门的云计算服务,即专有云。专有云这种解决方案,通常是在用户自己的数据中心内部署云计算服务商提供的各种云计算应用的方式,可以理解专有云平台是完全面向单一组织提供虚拟化资源服务的平台。
经典云环境:也可以称为经典网络或者经典环境,其是云上所有用户共享的公共网络区域,用户之间未做逻辑隔离,用户的内网IP由系统统一分配,相同的内网IP无法分配给不同的用户。
私有云环境:也可以称为虚拟私有云(Virtual Private Cloud,VPC),是在云上利用底层技术构建出一个隔离的网络区域。
vxlan:虚拟扩展局域网(Virtual Extensible Local Area Network),是一种基于用户数据报协议(UDP,User Datagram Protocol)的网络隔离技术,其将原始的数据链路层网络数据封装在UDP报文中传输。
vlan:虚拟局域网(Virtual Local Area Network),是一种虚拟LAN技术,常用于隔离数据链路层网络。
veth:虚拟以太网卡(Vitual Ethernet),是一种成对出现的虚拟网卡,其收发端直接连接在一起,假设存在一对veth网卡:A、B,A发出的报文直接接入B的接收端,反之亦然。
虚拟机:也可以称为云服务实例,虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个隔离环境中的完整计算机系统,包括vCPU(虚拟cpu),内存,操作系统,网络,磁盘等最基础的计算机组件。
slb虚拟机:服务器负载均衡(Server Load Balancer)虚拟机,用于在经典云环境中进行负载均衡服务,并执行相应的地址转换和数据收发处理,经典云环境中的slb虚拟机的数量可以根据实际的负载需求进行调整。
在上述介绍内容的基础上,下面再对本申请所涉及的相关技术进行进一步的详细介绍。
目前针对专有云存在一种实现方案,可以通过vxlan、模拟路由器等技术将专有云部署在公共云上,相当于在云上部署一个云平台,这种技术可以解决专有云对于物理设备的强耦合限制,同时可以满足很多上层产品的需求。
但是,还存在很多产品不仅仅部署在专有云的经典网络中,还需要通过专有云提供的ECS(Elasticity Cloud Server,弹性云端服务器)服务和VPC服务来创建自己的专属vpc,进而在这些vpc上部署vSwitch(Virtual Switch,虚拟交换机)、虚拟机等基础设施来部署产品。
因此在公共云平台上部署的专有云平台中,需要包括经典云环境和私有云环境(vpc),下面结合图1对当前介绍的系统架构进行理解,图1为本申请实施例提供的专有云平台的架构示意图。
如图1所示,在公共云平台中部署有专有云平台,在实际实现过程中,在公共云平台中可以部署一个或者多个专有云平台,其取决于需要使用专有云的客户的数量和需求。
以及,针对任一个专有云平台,其中包括经典云环境和至少一个私有云环境。其中,经典云环境就是在专有云中公用的网络环境,因此只存在一个,但是私有云环境是可以根据用户的实际需求进行创建的,因此私有云环境可以存在多个。
在一种可能的实现方式中,在专有云中创建私有云环境的时候,可以是经典云环境中的模拟服务器(mock service)劫持上层创建vpc的接口,当劫持到vpc创建请求的时候,可以使用适配层逻辑实质创建vpc。
其中,mock service可以理解为一台或者多台虚拟机,用于完成相应的控制和处理操作。在本申请中,mock service可以向网关虚拟机的代理单元、路由虚拟机的代理单元、slb虚拟机的代理单元发送配置信息,以使得各个虚拟机完成相应的路由配置。
因为在公共云平台上部署专有云平台的设计中,实质上没有重新建立一套真实的ECS和vpc基础设施,因此对于用户新建vpc和ecs的请求,可以在公共云平台的基础服务上搭建一系列的适配模拟层来实现。
基于上述图1的介绍可以理解的是,专有云中的经典云环境和私有云环境相对于公共云实际上存在一层嵌套的概念,也就是说专有云本身就是在云上部署的,进一步的又需要在专有云上再部署经典云环境以及私有云环境。
同时,针对经典云环境和私有云环境存在如下应用场景:至少一个私有云环境中的客户端需要访问经典云环境中的基础服务,以及至少一个经典云环境中的客户端、服务器、容器等需要访问私有云环境中的基础服务。在本申请中所提到的客户端,可以理解为在环境中创建的实例(比如说ecs实例,也可以理解为虚拟机),或者也可以理解为实例中的软件单元。
也就是说私有云环境和经典云环境需要实现互相访问,以扩大专有云中云环境的应用范围。然而,因为没有基础设施的支撑,因此只能通过模拟的方式实现不同环境的互相访问,在公共云中可以存在多个模拟的vpc,其中不同vpc之间的网络隔离、地址重叠、网络访问等准入限制的既有规则,对于实现专有云中不同类型的环境之间的互相访问带来了很大的限制,因此目前对于部署在公共云上的专有云,要实现其在的经典云环境和私有云环境的互相访问,尚没有有效的解决方案。
针对现有技术中的问题,本申请提出了如下技术构思:在经典云环境中创建路由虚拟机,以及在私有云环境中创建网关虚拟机,之后在两台虚拟机之间建立逻辑链路,并且通过配置相应的路由规则,从而可以有效的避开上述介绍的vpc之间互相隔离、地址重叠、网络访问等限制,以有效实现经典云环境和私有云环境的互相访问。
下面结合具体的实施例对本申请提供的云环境访问方法进行详细介绍,以及在详细介绍之前还需要说明的是,本申请中各实施例的执行主体可以理解为搭建公共云平台的计算设备或者处理设备,基于这些设备搭载相应的云服务,进而实现本申请介绍的技术方案。
以及,本申请提供的云环境访问方法中,包括私有云环境中的实例访问经典云环境的服务,也包括经典云环境中得到实例访问私有云环境中的服务,下面针对这两种访问方向的实现分别进行介绍。
在介绍之前,首先要说明下述实施例的内容中,第一云平台可以理解为上述介绍的专有云平台,第二云平台可以理解为上述介绍的公共云平台。但是其也不局限于上述介绍的这两种平台,只要在一种云平台的基础上再部署另一种云平台的实现方式下,其中用于承载部署的云平台就可以理解为本申请中的第二云平台,以及被部署在云上的云平台就可以理解为本申请中的第一云平台。
以及,下述介绍的内容中,第一云环境可以理解为上述介绍的经典云环境,第二云环境可以理解为上述介绍的私有云环境。但同样的,不局限于上述介绍的这两种环境,在云平台中可以包括多种不同的环境,凡是需要互相访问,但是受限于在云上部署云平台的这种架构无法直接互相访问的两种环境,都可以理解为本申请中介绍的第一云环境和第二云环境。
在上述介绍内容的基础上,下面对第二云环境中的实例访问第一云环境中的服务的实现方式进行介绍,图2为本申请实施例提供的云环境访问方法的流程图。
如图2所示,该方法包括:
S201、在第二云环境中配置第一路由信息,第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机。
在本实施例中,在第二云环境中创建有网关虚拟机,其中网关虚拟机用于实现和经典环境的数据传输。可以理解的是,在第二云环境中可以根据实际需求创建多台虚拟机,其中每台虚拟机可以实现相应的功能,本实施例中的网关虚拟机就是专用于实现数据传输的虚拟机。
以及,可以在第二云环境中配置第一路由信息,路由信息可以指示数据的流转方向,在第二云环境中,需要通过网关虚拟机和第一云环境进行数据传输,因此本实施例中配置第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机。
在一种可能的实现方式中,第二云环境中的客户端或者实例可以向第一云环境发起访问请求,在访问请求中可以包括源地址和目标地址,如果说目标地址属于第一云环境对应的预设网段,则在第二云环境中可以根据第一路由信息将该访问请求发送至网关虚拟机。
S202、建立路由虚拟机和网关虚拟机之间的虚拟链路,虚拟链路用于在路由虚拟机和网关虚拟机之间进行数据传输。
在本实施例中,在第一云环境中创建有路由虚拟机,可以理解的是,第一云环境的数量只有一个,但是第二云环境的数量可能会存在多个,因此第一云环境中的路由虚拟机可以用于对接收到的来自第二云环境的访问请求进行相应的路由处理,从而发送给相应的地址。
因此本实施例中的路由虚拟机和网关虚拟机之间需要进行数据传输,为了可以有效实现数据传输,需要建立路由虚拟机和网关虚拟机之间的虚拟链路,其中虚拟链路就用于实现当前介绍的数据传输。
S203、配置第二路由信息,第二路由信息用于指示网关虚拟机将访问请求发送至路由虚拟机,以及指示路由虚拟机将访问请求发送至目标服务,访问请求用于请求访问第一云环境中的目标服务。
以及本实施例中还需要配置第二路由信息,以使得网关虚拟机在接收到访问请求之后,可以确定访问请求的下一跳,也就是路由虚拟机,路由虚拟机就存在在第一云环境中,因此路由虚拟机对目标服务的访问就是相当便利的。以及第二路由信息还进一步的指示路由虚拟机将访问请求发送至目标服务。
S204、根据第一路由信息、第二路由信息以及虚拟链路,将访问请求经过网关虚拟机转发至路由虚拟机,并由路由虚拟机将访问请求发送至目标服务。
在完成上述介绍的相关配置之后,就可以根据上述介绍的第一路由信息、第二路由信息以及虚拟链路,将第二云环境中发起的访问请求经过网关虚拟机转发至路由虚拟机,并且由路由虚拟机将访问请求发送给相应的目标服务,从而有效的实现第二云环境对第一云环境中的目标服务的访问。
本申请实施例提供的云环境访问方法,包括:在第二云环境中配置第一路由信息,第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机。建立路由虚拟机和网关虚拟机之间的虚拟链路,虚拟链路用于在路由虚拟机和网关虚拟机之间进行数据传输。配置第二路由信息,第二路由信息用于指示网关虚拟机将访问请求发送至路由虚拟机,以及指示路由虚拟机将访问请求发送至目标服务,访问请求用于请求访问第一云环境中的目标服务。根据第一路由信息、第二路由信息以及虚拟链路,将访问请求经过网关虚拟机转发至路由虚拟机,并由路由虚拟机将访问请求发送至目标服务。通过在第二云环境中配置将访问第一云环境的请求发送至网关虚拟机,以及在第二云环境的网关虚拟机和第一云环境的路由虚拟机之间建立相应的虚拟链路,以及配置相应的第二路由规则,从而可以实现将第二云环境中发起的针对目标服务的访问请求,经由网关虚拟机以及路由虚拟机,发送至第一云环境中的目标服务,通过配置上述介绍的路由以及链路,就可以有效的实现第二云环境对第一云环境中的目标服务的访问。
在上述介绍内容的基础上,下面结合图3至图4对本申请提供的云环境访问方法中,创建虚拟链路的实现进行进一步的详细介绍,图3为本申请实施例提供的云环境访问方法的流程图二,图4为本申请实施例提供的访问请求的传输示意图一。
如图3所示,该方法包括:
S301、在网关虚拟机中,创建基于路由虚拟机的IP地址的vxlan隧道。
本实施例中的网关虚拟机和路由虚拟机都对应有各自的IP地址,其中IP地址可以为EIP(弹性网际互连协议,Elastic Internet Protocol),EIP是可以在公网上访问的IP。
以及,在创建vxlan隧道的时候,可以指定对端和哪个目标进行互联,以实现基于vxlan隧道的互通,因此本实施例中,可以在网关虚拟机中,创建基于路由虚拟机的EIP的vxlan隧道。
以及,在路由虚拟机中,也会创建基于网关虚拟机的EIP的vxlan隧道,在网关虚拟机和路由虚拟机中分别进行了创建基于对端的EIP的vxlan隧道的动作,从而可以实现建立网关虚拟机和路由虚拟机之间的vxlan隧道,实现基于对端EIP的点到点的vxlan隧道连接。
进一步的,在网关虚拟机中还可以进行vxlan隧道的的基础FDB(Forwarding DataBase)表的填充,以指示哪些数据包可以进行传输,哪些数据包需要丢弃。
S302、创建第一网桥,其中,vxlan隧道在网关虚拟机中的接口与第一网桥逻辑连接。
以及,在网关虚拟机中还可以创建第一网桥,本实施例中创建的网桥可以理解为虚拟网桥,网桥的作用是数据接收、地址过滤以及数据转发,从而实现多个网络系统之间的数据交换。本实施例中的第一网桥比如说可以为br-vpn网桥,其中br是Bridge(网桥)的缩写。
基于上述介绍可以确定,网关虚拟机和路由虚拟机建立了vxlan隧道,其中vxlan隧道在网关虚拟机中存在一个接口,比如说可以参照图4中在网关虚拟机中的接口vxlan1,以及vxlan隧道在路由虚拟机中也存在接口,比如说可以参照图4中在路由虚拟机中的接口vxlan1。
为了实现经过vxlan隧道传输的数据可以到达第一网桥,需要设置vxlan隧道在网关虚拟机中的接口与第一网桥逻辑连接。参照图4,在网关虚拟机中创建了第一网桥1,可以设置网关虚拟机中的接口vxlan1与网桥1逻辑连接。
S303、创建包括第一接口和第二接口的网关接口对,第一接口与第一网桥逻辑连接,并且第二接口分配有第一IP地址。
以及在网关虚拟机中,还可以创建网关接口对,在网关接口对中包括第一接口和第二接口,其中第一接口和第二接口是天然互通的,可以理解为是一个管道的两端。之后可以设置第一接口与第一网桥逻辑连接,以使得经过第一网桥传输的数据可以经过第一接口到达第二接口。
以及本实施例中针对第二接口分配了第一IP地址,以使得之后可以根据第二接口的IP地址设置相关路由信息,从而有效实现数据流转。
例如可以结合图4进行理解,假设在网关虚拟机中创建了网关接口对,包括第一接口1和第二接口2,其中第一接口1和第一网桥逻辑连接,第二接口2分配有第一IP地址:172.255.1.x/24。
在一种可能的实现方式,在网关虚拟机中可以包括vpn(虚拟专用网络,VirtualPrivate Network)agent(代理)单元,上述介绍的创建vxlan隧道,填充FDB表,创建网桥,建立逻辑连接以及为接口分配IP地址都可以由网关虚拟机中的vpn agent完成。
S304、确定第一子通道,第一子通道依次通过第二接口、第一接口、第一网桥以及vxlan隧道在网关虚拟机中的接口进行数据传输。
基于上述进行的各项工作,就可以确定第一子通道,例如参照图4理解,在网关虚拟机中的第一子通道就可以依次通过第二接口2、第一接口1、第一网桥、vxlan隧道在网关虚拟机中的接口vxlan1进行数据传输。
以及参照图4可以确定的是,在网关虚拟机中还包括两个网卡,分别是eth1和eth0,其中第一子通道传输的数据实际上会通过eth1到达路由虚拟机,因为vxlan隧道在建立的时候,是基于对端的EIP进行建立的,因此可以通过网卡达到路由虚拟机。
S305、在路由虚拟机中,创建基于网关虚拟机的IP地址的vxlan隧道。
上述介绍了在网关虚拟机中的一系列创建操作,实际上在路由虚拟机中也会进行与上述类似的创建操作,S305的内容在上述S301中已经进行了说明,此处不再赘述。
S306、创建第二网桥,其中,vxlan隧道在路由虚拟机中的接口与第二网桥逻辑连接。
以及,路由虚拟机创建第二网桥的操作也与上述网关虚拟机的实现类似。
可以参照图4进一步理解,图4中在路由虚拟机中的接口vxlan1与第二网桥进行了逻辑连接,以实现经过vxlan隧道传输的数据可以到达第二网桥。类似的,本实施例中的第二网桥比如说可以为br-vpn网桥。
S307、创建包括第三接口和第四接口的网关接口对,第三接口与第二网桥逻辑连接,并且第四接口分配有第二IP地址。
以及,路由虚拟机创建网关接口对的相关操作也与上述网关虚拟机的实现类似。可以结合图4进行进一步理解,假设在路由虚拟机中创建了网关接口对,包括第三接口3和第四接口4,其中第三接口3和第二网桥逻辑连接,第四接口4分配有第二IP地址:172.255.1.1/24。
在一种可能的实现方式,在路由虚拟机中同样可以包括vpn agent单元,上述介绍的创建vxlan隧道,填充FDB表,创建网桥,建立逻辑连接以及为接口分配IP地址都可以由路由虚拟机中的vpn agent完成。
S308、确定第二子通道,第二子通道依次通过vxlan隧道在路由虚拟机中的接口、第二网桥、第三接口以及第四接口进行数据传输。
基于上述进行的各项工作,就可以确定第二子通道,例如参照图4理解,在路由虚拟机中的第二子通道就可以依次通过vxlan隧道在路由虚拟机中的接口vxlan1、第二网桥、第三接口3以及第四接口4进行数据传输。
以及参照图4可以确定的是,在路由虚拟机中同样包括两个网卡,分别是eth1和eth0,其中第二子通道传输的数据实际上会通过eth1到达路由虚拟机,因为vxlan隧道在建立的时候,是基于对端的EIP进行建立的,因此可以通过网卡达到路由虚拟机。
S309、根据第一子通道和第二子通道,确定虚拟链路。
基于上述介绍的第一子通道和第二子通道,就可以构成在路由虚拟机和网关虚拟机之间进行数据传输的虚拟链路。在实际实现过程中,创建第一子通道和第二子通道的先后顺序可以根据实际需求进行确定,本实施例对其执行顺序不做限制。
在本实施例中,通过在网关虚拟机和路由虚拟机中分别进行上述介绍的一系列创建工作,从而可以有效的在路由虚拟机和网关虚拟机之间建立虚拟链路,以构造可以在路由虚拟机和网关虚拟机之间进行数据传输的虚拟拓扑结构,为后续的数据传输提供虚拟拓扑的支撑。
上述介绍了虚拟链路的创建方式,但是虚拟链路仅仅能够提供数据传输的链路,数据具体如何传输,还需要配置相应的路由信息,下面对结合图4对本实施例中的第一路由信息和第二路由信息进行进一步的详细介绍。
在介绍路由信息之前,还需要额外说明如下信息:
当第二云环境中的客户端需要访问第一云环境中的目标服务的时候,通常需要第二云环境中的客户端发起服务配置请求,之后第一云环境中的mock-service可以针对该服务配置请求,在第一云环境对应的预设网段中为目标服务分配虚拟IP地址。然后第二云环境中的客户端就可以基于该虚拟IP地址对目标服务发起访问。
在一种可能的实现方式中,上述介绍的服务配置请求,还可以理解其作用是请求创建单通道(Single Tunnel),单通道的作用是使得某个指定vpc中的实例可以通过该通道访问到第一云环境中的服务,则上述介绍的虚拟IP地址,可以理解为是创建单通道,之后为单通道配置虚拟IP地址。
基于当前介绍的虚拟IP地址,下面结合图4对第一路由信息和第二路由信息进行理解。
在本实施例中,第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机。其中,第二云环境中的客户端可以向第一云环境中的目标服务发起访问请求,基于上述介绍可以确定的是,访问请求就是基于虚拟IP地址发起的。
第一路由信息可以进一步解释为,目标地址为第一云环境对应的预设网段中的地址的请求,其下一跳指向网关虚拟机,具体下一跳可以是指向网关虚拟机的网卡(如图4中的eth1或者eth0)的IP地址。
而虚拟IP地址是在第一云环境对应的预设网段中确定的,因此基于该访问请求的虚拟IP地址,就可以确定该访问请求是向第一云环境发起的,然后在第二云环境中,该访问请求就会自然转发至网关虚拟机。
以及,本实施例中的第二路由信息为:
若到达网关虚拟机的访问请求的目的地址为虚拟IP地址,则确定访问请求的下一跳为路由虚拟机中的第四接口的IP地址;
若到达路由虚拟机的访问请求的目的地址为虚拟IP地址,则确定访问请求的下一跳为目标服务的真实IP地址,或者slb虚拟机的目标接口的IP地址。
其中,第二路由信息可以理解为是针对虚拟IP地址(或者说single tunnel)配置的,例如可以由mock service将第二路由信息配置到网关虚拟机的代理单元以及路由虚拟机的代理单元,以完成第二路由信息在相应虚拟机中的配置。
具体的,在网关虚拟机中,若访问请求是访问目标服务,则可以直接将访问请求经过上述介绍的虚拟链路,转发至路由虚拟机中的第四接口。以及在路由虚拟机中,若访问请求是访问目标服务,则可以将该访问请求直接转发至目标服务的真实IP地址,或者slb虚拟机的目标接口的IP地址。
基于上述介绍的第一路由信息以及第二路由信息,下面结合图4对第二云环境中客户端访问第一云环境中的目标服务的数据流转流程进行详细说明,为了便于理解,下面第一云环境为经典云环境,以及第二云环境为私有云环境为例进行介绍,当第一云环境和第二云环境为其余的实现方式时,其具体实现类似。
如图4所示,数据流转流程可以包括步骤1~步骤5,下面对这5个步骤依次进行介绍:
1、私有云环境中的客户端发起访问请求,访问请求转发至网关虚拟机。
参照图4,私有云环境中的客户端所发起的访问请求的源IP地址为:192.168.1.x,也就是图4中示意的vpc的IP地址,其中cidr为无类别域间路由(Classless Inter-DomainRouting),是一个用于给用户分配IP地址以及给路由分配IP地址的方法。
以及访问请求的目标IP地址为:10.202.aa.x,假设其是上述介绍的为访问目标服务分配的虚拟IP地址。则基于上述介绍的第一路由信息,该访问请求会转发至网关虚拟机。
2、网关虚拟机基于虚拟链路以及第二路由信息,将访问请求转发至路由虚拟机。
其中,第二路由信息指示访问请求的目标地址为虚拟IP地址的话,则确定该访问请求的下一跳为路由虚拟机中的第四接口的IP地址,也就是说图4中的接口4的IP地址。
参照图4,网关虚拟机会通过接口2、接口1、网桥1、vxlan隧道(网关虚拟机中的vxlan1、网关虚拟机中的eth1、路由虚拟机中的eth1、路由虚拟机中的vxlan1)、网桥2、接口3以及接口4的路径,将访问请求通过该虚拟链路转发至路由虚拟机中的第四接口4。
以及在一种实现方式中,网关虚拟机还配置有snat(源地址转换,Source NetworkAddress Translation)规则,snat规则指示将去向经典云环境的数据的源地址伪装成网关虚拟机中的第二接口的IP地址,这样才能保证后续有数据返回的时候,可以顺利的到达网关虚拟机。
也就是说,基于snat规则,网关虚拟机会将访问请求的源地址修改为接口2的IP地址:172.255.1.x,以确保后续目标服务返回的数据可以到达接口2。
3、基于路由虚拟机中的IP转发,将访问请求转发至接口bond0.9。
在路由虚拟机中可以开启ip forword(ip转发,或称为ip路由),在ip forword中配置有数据在各个接口之间的如何互相转发。参照图4,例如基于ip forword可以将访问请求从接口4转发至接口bond0.9。此处需要对bond接口(或端口、网卡)进行简单说明,其中bondx不是实体端口,它是通过物理端口绑定(bond)技术来实现网口冗余和负载,从而达到网口高可用的目的,也就是说网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余、带宽扩容和负载均衡。
参照图4可以理解的是,在步骤3的转发过程中,访问请求的源地址就是上述介绍的伪装之后的接口2的IP地址,以及目标地址仍然是目标服务的虚拟IP地址。
4、路由虚拟机基于和slb虚拟机之间的虚拟链路以及第二路由配置,将访问请求转发至slb虚拟机中的接口bond0。
路由虚拟机和slb虚拟机之间的虚拟链路与上述介绍的类似,此处不再赘述。则基于与上述相似的方式,可以将访问请求转发至slb虚拟机中的接口bond0,此处的接口bond0就可以理解为slb虚拟机的目标接口,其比如说可以理解为路由虚拟机和slb虚拟机之间的虚拟链路在slb虚拟机中的末端接口。在实际实现过程中,slb虚拟机中的目标接口可以根据实际需求进行选择,本实施例对此不做限制,只要可以实现将访问请求从路由虚拟机转发至slb虚拟机即可。
其中,因为路由虚拟机和slb虚拟机都是经典云环境中的,则路由虚拟机和slb虚拟机之间的虚拟链路中的网桥,比如说可以是br-ece网桥。
以及类似的,路由虚拟机在转发之前,同样基于snat规则将访问请求的源地址进行了伪装,具体伪装为路由虚拟机的第四接口4的IP地址:172.255.1.x,以保证目标服务返回的数据可以经由路由虚拟机顺利返回。
5、经由接口bond0将访问请求转发至slb虚拟机的中间组件。
其中,中间组件例如可以是设置在slb虚拟机中的nginx服务器,或者其实现方式还可以根据实际需求进行选择,只要中间组件可以实现地址转换以及数据收发的处理即可。
参照图4,在slb虚拟机内部,可以经由接口bond0将访问请求转发至中间组件,其具体的转发规则同样可以是基于配置的路由信息确定的。
6、中间组件确定虚拟IP地址对应的真实IP地址,并将访问请求转发至真实IP地址。
中间组件可以确定虚拟IP地址以及目标服务的真实IP地址之间的对应关系,因此可以确定访问请求中的虚拟IP地址所对应的真实IP地址,之后例如可以将访问请求的目标地址修改为真实IP地址,并根据修改后的目标地址,将访问请求转发至真实IP地址,以实现将访问请求发送给目标服务。其中,真实IP地址就可以理解为目标服务所对应的服务器的IP地址。
以及与上述介绍的类似,slb虚拟机中同样需要进行源地址的伪装,参照图4,在发给真实IP地址的访问请求中,就将源地址伪装为了中间组件的IP地址,以及将目标地址修改为真实IP地址。
在本实施例中,通过第一路由信息,将访问请求转发至网关虚拟机,之后网关虚拟机根据第二路由信息以及虚拟链路,将访问请求转发至路由虚拟机,其中路由虚拟机和目标服务都在经典云环境中,因此路由虚拟机可以便捷的将访问请求通过slb中的中间组件转发给目标服务,从而可以有效的实现私有云环境对经典云环境中的服务的访问。以及网关虚拟机、路由虚拟机以及slb虚拟机在转发访问请求的时候,都会针对访问请求的源地址进行伪装,以保证目标服务在向私有云环境返回数据的时候,可以通过上述介绍的一系列链路将数据发送至私有云环境中的客户端。
上述基于图4介绍的内容中,在路由虚拟机转发访问请求之后,需要中间组件对访问请求中的虚拟IP地址确定对应的真实IP地址,之后依据真实IP地址对目标服务发起访问。这种场景通常是一个虚拟IP地址对应一个或多个真实IP地址,也就是说虚拟IP地址和真实IP地址存在对应关系,但是这两个IP地址并不相同。因此在这种情况下往往就需要中间组件来确定虚拟IP地址对应的真实IP地址,之后再基于真实IP地址对目标服务发起访问。
然而还存在一种特殊的情况,在访问经典云环境中的基础服务时,不需要区分经典云环境中部署的产品,也不需要对产品进行改造,此时需要做到虚拟IP地址和真实IP地址相同。在实际实现的时候,在mock service上设置需要业务侧能够明确区分两个IP地址的字段,使得mock slb虚拟机能够分辨,但是对于路由虚拟机和网关虚拟机是不感知这个区别的。在虚拟IP地址和真实IP地址相同的情况下,路由虚拟机就可以基于虚拟IP地址直接向目标服务发送访问请求,而不需要借助slb虚拟机,下面结合图5对当前的这种情况进行进一步的详细介绍。
图5为本申请实施例提供的访问请求的传输示意图二,如图5所示,该方法同样包括步骤1~步骤5。
其中,步骤1~步骤4与上述实施例介绍的均相同,此处不再赘述。
下面对与上述存在区别的步骤4和步骤5进行单独说明.
步骤4:路由虚拟机基于和真实服务器之间的虚拟链路以及第二路由配置,将访问请求转发至真实服务器所在的虚拟机的bond0接口。
其中,路由虚拟机在向真实服务器发送访问请求的时候,同样是通过路由虚拟机和真实服务器所在的虚拟机之间的虚拟链路进行传输的,虚拟链路和第二路由配置与上述介绍的类似,则基于与上述相似的实现方式,参照图5,可以首先将访问请求转发至真实服务器所在的虚拟机的bond0接口。
其中接口bond0就可以理解为路由虚拟机和slb虚拟机之间的虚拟链路在slb虚拟机中的末端接口,因此在将访问请求转发至真实服务器的时候,可以首先将访问请求转发至接口bond0,之后再通过虚拟链路进行数据传输。
步骤5:经由bond0接口将访问请求转发至真实IP地址。
之后可以通过bond0接口将访问请求转发至真实IP地址,在本实施例中,真实IP地址和虚拟IP地址是一致的,因此参照图5,在步骤5中的访问请求的目标IP地址就是10.202.aa.x,其也就是真实服务器的IP地址。
在本实施例中,在目标服务的真实IP地址和虚拟IP地址一致的时候,可以不经过slb虚拟机进行IP地址的对应转换处理,而是由路由虚拟机直接将访问请求转发至真实IP地址,从而可以在这种场景下,便捷有效的实现对目标服务的访问。
上述图4和图5的实施例介绍了针对服务配置请求,为目标服务分配虚拟IP地址的实现方式下,之后可以基于对虚拟IP地址发起的访问请求,有效的实现在第二云环境对第一云环境的服务访问。以及上述实施例介绍的服务配置请求可以理解为请求创建一个Single Tunnel,其中Single Tunnel的作用是使得vpc中某个指定的实例可以通过该通道访问到第一云环境中的服务,也就是说是为该指定的实例创建了Single Tunnel以实现对目标服务的访问。
在另一种可能的实现方式下,服务配置请求还可以是请求创建一个任意通道(AnyTunnel),其中Any Tunnel的作用是使得用户创建的任意一个vpc中的实例都可以该通道访问到第一云环境中的服务,也就是说可以理解为该用户创建了相应的通道以实现对目标服务的访问。
针对服务配置请求是请求创建Any Tunnel的这种情况,需要对当前该用户已存在的所有vpc均执行上述介绍的相关配置操作,以及针对后续该用户新增的vpc也都补执行上述介绍的相关配置操作,从而可以实现针对任意一个vpc,都有效的实现对第一云环境中的基础服务的访问。
以及本申请提供的云环境访问方法,还有另外一种应用场景,也就是第一云环境访问第二云环境中的服务,下面再结合具体的实施例对这种场景进行进一步的详细介绍。
首先结合图6进行介绍,图6为本申请实施例提供的云环境访问方法的流程图三。
如图6所示,该方法包括:
S601、在第一云环境中配置第一路由信息,第一路由信息用于指示将访问请求发送至路由虚拟机,访问请求用于请求访问第二云环境中的目标服务。
在本实施例中,在第一云环境中创建有路由虚拟机,其中路由虚拟机用于实现和第二云环境的数据传输。可以理解的是,在第一云环境中可以根据实际需求创建多台虚拟机,其中每台虚拟机可以实现相应的功能,本实施例中的路由虚拟机就是专用于实现数据传输的虚拟机。
以及,可以在第一云环境中配置第一路由信息,路由信息可以指示数据的流转方向,在第一云环境中,需要通过路由虚拟机和第二云环境进行数据传输,因此本实施例中配置第一路由信息用于指示将请求访问第二云环境中的目标服务的访问请求发送至路由虚拟机。
在一种可能的实现方式中,第一云环境中的处理节点可以向第二云环境发起访问请求,其中处理节点可以为客户端、服务器、容器等等,其可以根据实际需求进行选择。
在访问请求中可以包括源地址和目标地址,如果说目标地址是为目标服务分配的IP地址,则在第一云环境中可以根据第一路由信息将该访问请求发送至路由虚拟机。
S602、建立路由虚拟机和网关虚拟机之间的虚拟链路,虚拟链路用于在路由虚拟机和网关虚拟机之间进行数据传输。
S603、配置第二路由信息,第二路由信息用于指示路由虚拟机将访问请求发送至网关虚拟机。
其中,S602以及S603的实现方式,与上述介绍的S202以及S203的实现方式类似,具体的虚拟链路的实现方式可以参照上述实施例的介绍,此处不再赘述。
不同之处在于,因为本实施例中介绍的是第一云环境对第二云环境的访问,因此第二路由信息用于指示路由虚拟机将访问请求发送至网关虚拟机。
S604、根据第一路由信息、第二路由信息以及虚拟链路,将访问请求经过路由虚拟机转发至网关虚拟机,并由网关虚拟机将访问请求发送至目标服务。
在完成上述介绍的相关配置之后,就可以根据上述介绍的第一路由信息、第二路由信息以及虚拟链路,将第一云环境中发起的访问请求经过路由虚拟机转发至网关虚拟机,并且由网关虚拟机将访问请求发送给相应的目标服务,从而有效的实现第一云环境对第二云环境中的目标服务的访问。
本申请实施例提供的云环境访问方法,包括:在第一云环境中配置第一路由信息,第一路由信息用于指示将访问请求发送至路由虚拟机,访问请求用于请求访问第二云环境中的目标服务。建立路由虚拟机和网关虚拟机之间的虚拟链路,虚拟链路用于在路由虚拟机和网关虚拟机之间进行数据传输。配置第二路由信息,第二路由信息用于指示路由虚拟机将访问请求发送至网关虚拟机。根据第一路由信息、第二路由信息以及虚拟链路,将访问请求经过路由虚拟机转发至网关虚拟机,并由网关虚拟机将访问请求发送至目标服务。通过在第一云环境中配置将访问请求发送至路由虚拟机,以及在第二云环境的网关虚拟机和第一云环境的路由虚拟机之间建立相应的虚拟链路,以及配置相应的第二路由规则,从而可以实现将第一云环境中发起的针对目标服务的访问请求,经由路由虚拟机以及网关虚拟机,发送至第二云环境中的目标服务,通过配置上述介绍的路由以及链路,就可以有效的实现第一云环境对第二云环境中的目标服务的访问。
在本实施例中,建立路由虚拟机和网关虚拟机之间的虚拟链路的实现方式与上述介绍的类似,此处不再赘述。
进一步的,下面结合图7对本申请提供的云环境访问方法中,第一云环境访问第二云环境的应用场景下,第一路由信息和第二路由信息的实现进行进一步的详细介绍,图7为本申请实施例提供的访问请求的传输示意图三。
在介绍路由信息之前,还需要额外说明如下信息:
当第一云环境中的处理节点需要访问第二云环境中的目标服务的时候,通常需要是第一云环境中的处理节点发起服务配置请求,之后第一云环境中的mock-service可以针对该服务配置请求,为目标服务分配虚拟IP地址,以及在第二云环境对应的预设网段中确定虚拟IP地址对应的中转IP地址。
其中,虚拟IP地址与上述介绍的类似,第一云环境中的处理节点会基于该虚拟IP地址对目标服务发起访问。但是本实施例中还需要针对虚拟IP地址再确定对应的中转IP地址,是因为各个vpc之间是互相隔离的,可能会出现地址重叠的情况,那么这种情况下虚拟IP地址和目标服务的真实IP地址的对应关系就不唯一,可能会出现访问错误的情况。
比如说在vpc1中,服务1的真实IP为IP1,以及在vpc2中,服务2的真实IP也是IP1,然后假设针对服务1分配了虚拟IP地址为IP3,那么IP3和IP1存在对应关系,但是根据该对应关系,无法确定对应的IP1具体是vpc1中的服务1还是vpc2中的服务2。
因此本实施例中引入了中转IP池,比如说可以将172.200.0.0/16作为中转IP池,可以在中转IP池中为每个vpc分配一段专属的预设网段,比如说为某个vpc分配的预设网段为172.200.0.0/24。之后在每个vpc对应的预设网段中,为各自的服务分配相应的中转IP,保证中转IP和真实IP的关系是一对一的,同时因为各个vpc是在自己的预设网段中确定的中转IP,因此可以保证中转IP是不会重叠的。
其中中转IP就可以理解为为服务的真实IP确定的不会出现重叠的IP地址,那么基于虚拟IP地址和中转IP地址之间的对应关系,就可以保证访问到准确的服务,而不会出现访问错误的情况。
其中,虚拟IP地址和中转IP地址之间的关系可以是一对一的情况,例如服务配置请求用于请求为一项目标服务分配虚拟IP地址,则可以为这一项目标服务分配虚拟IP以及对应的中转IP,在这种情况下,虚拟IP地址和中转IP也是一对一的关系。
或者,虚拟IP地址和中转IP地址之间还可以是一对多的情况,例如服务配置请求用于请求为多项目标服务分配虚拟IP地址,则可以为这多项目标服务共同分配一个虚拟IP地址,但是每一项目标服务都对应有单独的中转IP,在这种情况下,虚拟IP地址和中转IP地址也是一对多的关系。
在一种可能的实现方式中,上述介绍的服务配置请求,还可以理解其作用是请求创建反向VPC访问(ReverseVpc)通道,反向VPC访问通道的作用是使得第一云环境中的服务器、虚拟机、容器可以通过该通道访问到第二云环境中的服务,则上述介绍的虚拟IP地址,可以理解为是创建反向VPC访问通道,之后为反向VPC访问通道配置虚拟IP地址。
基于当前介绍的虚拟IP地址,下面结合图7对第二路由信息进行理解。
在本实施例中,第一路由信息用于指示slb虚拟机中的中间组件将访问请求发送至路由虚拟机。其中,第一云环境中的处理节点可以向第二云环境中的目标服务发起访问请求,基于上述介绍可以确定的是,访问请求就是基于虚拟IP地址发起的。
第一路由信息可以进一步解释为,针对目标地址为虚拟IP地址的请求,将其下一跳指向路由虚拟机,具体下一跳可以是指向路由虚拟机的网卡(如图7中的eth1或者eth0)的IP地址。
以及,本实施例中第二路由信息用于指示路由虚拟机将访问请求发送至网关虚拟机,其可以进一步理解为:若到达路由虚拟机的访问请求的目的地址为中转IP地址,则确定访问请求的下一跳为网关虚拟机中的第二接口的IP地址。
基于上述介绍的第一路由信息以及第二路由信息,下面结合图7对第一云环境中处理节点访问第二云环境中的目标服务的数据流转流程进行详细说明,同样为了便于理解,下面第一云环境为经典云环境,以及第二云环境为私有云环境为例进行介绍,当第一云环境和第二云环境为其余的实现方式时,其具体实现类似。
如图7所示,数据流转流程可以包括步骤1~步骤5,下面对这5个步骤依次进行介绍:
1、经典云环境中的处理节点发起访问请求,slb虚拟机中的中间组件通过监听获取该访问请求。
在本实施例中,slb虚拟机中的中间组件(例如nginx)的前端监听地址为虚拟IP的访问请求,则经典云环境中的处理节点发起访问请求的时候,中间组件可以通过监听的方式获取到该访问请求。
在一种可能的实现方式,在slb虚拟机中同样可以包括slb agent单元,本实施例中slb虚拟机的相关配置操作都可以由slb agent单元完成。
参照图7,经典云环境中的处理节点所发起的访问请求的源IP地址为:10.202.x.x,也就是图7中示意的经典云环境中的处理节点自身的IP地址。以及访问请求的目标IP地址为为目标服务分配的虚拟IP。则基于上述介绍的第一路由信息,该访问请求会转发至路由网关虚拟机。
2、中间组件基于第一路由信息,将访问请求转发至slb虚拟机中的接口bond0。
在本实施例中,第一路由信息指示将访问请求发送至路由虚拟机,其中,路由虚拟机和slb虚拟机之间的虚拟链路以及相应的路由配置与上述介绍的类似,则基于与上述相似的方式,中间组件可以基于第一路由信息,首先将访问请求转发至slb虚拟机中的接口bond0,其中bond0接口就是路由虚拟机和slb虚拟机之间的虚拟链路在slb虚拟机中的末端接口。
在一种可能的实现方式中,中间组件可以确定虚拟IP、中转IP以及真实IP的对应关系,则为了保证可以正确的访问到相应的服务,本实施例中还设置:若到达中间组件的访问请求的目的地址为虚拟IP地址,则中间组件将访问请求的目的地址修改为中转IP地址。
也就是说在中间组件中将该访问请求的目标地址修改为虚拟IP对应的中转IP,当虚拟IP对应多个中转IP的时候,则将目标地址修改为多个中转IP。
参照图7,中间组件会将访问请求中的目标IP修改为中转IP:172.200.0.xx/32,以及,为了保证vpc响应于访问请求回复的数据可以顺利的到达相应的处理节点,slb虚拟机同样会进行源地址的伪装。参照图7,中间组件会将访问请求中的源IP修改为中间组件的IP。
3、经由接口bond0将访问请求转发至路由虚拟机。
在本实施例中,路由虚拟机和slb虚拟机之间的虚拟链路与上述介绍的类似,此处不再赘述。则基于与上述相似的方式,可以经由bond0接口将访问请求通过虚拟链路转发至路由虚拟机的bond0.9,其具体的转发规则同样可以是基于配置的路由信息确定的。
4、基于路由虚拟机中的IP转发,将访问请求转发至接口4。
在路由虚拟机中可以开启ip forword,在ip forword中配置有数据在各个接口之间的如何互相转发。参照图7,例如基于ip forword可以将访问请求从接口bond0.9转发至接口bond4。
5、路由服务器基于配置有第二路由信息的虚拟链路,将访问请求转发至网关虚拟机。
其中,第二路由信息指示若到达路由虚拟机的访问请求的目的地址为中转IP地址,则确定访问请求的下一跳为网关虚拟机中的第二接口的IP地址,也就是说图7中的接口1的IP地址。
参照图7,路由虚拟机会通过接口4、接口3、网桥2、vxlan隧道(路由虚拟机中的vxlan1、路由虚拟机中的eth1、网关虚拟机中的eth1、网关虚拟机中的vxlan1)、网桥1、接口1以及接口2的路径,将访问请求转发至网关虚拟机中的第二接口2。
以及在一种实现方式中,路由虚拟机还配置有snat规则,snat规则指示将去向私有云环境的数据的源地址伪装成路由虚拟机中的第四接口的IP地址,这样才能保证后续有数据返回的时候,可以顺利的到达路由虚拟机。
也就是说,基于snat规则,路由虚拟机会将访问请求的源地址修改为接口4的IP地址:172.255.1.1/24,以确保后续目标服务返回的数据可以到达接口4。
6、网关虚拟机将访问请求的目标地址修改为中转IP地址对应的真实IP地址,并将访问请求转发至真实IP地址。
本实施例中的中转IP和真实IP是一对一的关系,因此可以确定访问请求中的中转IP地址所对应的真实IP地址。在网关虚拟机中可以配置有dnat(目标地址转换,Destination Network Address Translation)规则,其中dnat规则指示将访问请求中的目标地址修改为真实IP地址,真实IP地址就为目标服务所对应的服务器的IP地址。
以及与上述介绍的类似,网关虚拟机中同样需要配置snat规则进行源地址的伪装,其中snat规则可以为:将需要经由eth0发出去的数据的源IP伪装为网关虚拟机的eth0的IP地址。
则参照图7,在发给真实IP地址的访问请求中,因为该访问请求需要经由eth0发出去,则将源地址伪装为了eth0的IP地址,以保证之后回复的数据可以到达eht0并按照原链路返回。
可以理解的是,上述介绍的snat规则和dnat规则都是针对经典云环境发起的访问请求所配置的规则,其规定了访问请求在从网关虚拟机进入vpc的时候如何进行地址伪装或者修改。
进一步的,vpc中的目标服务还可以向经典云环境返回访问请求对应的回复信息,当网关虚拟机在发送回复信息的时候,同样需要配置相应的snat规则。这种情况下的snat规则可以为:若收到源地址为目标服务的真实IP的数据包,则将其源地址修改为该真实IP对应的中转IP,基于这样的snat规则,可以确保发起访问请求的处理节点能够确定该回复信息是来自其访问的中转IP的。
之后参照图7,网关虚拟机会经过eth0将访问请求转发至目标服务,其源IP就是eth0的IP,以及其目标IP就是目标服务的真实IP。
在本实施例中,通过中间组件监听访问请求,并通过第一路由信息,将访问请求转发至路由虚拟机,之后路由虚拟机根据第二路由信息以及虚拟链路,将访问请求转发至网关虚拟机,其中网关虚拟机和目标服务都在第二云环境中,因此网关虚拟机可以便捷的将访问请求转发给目标服务,从而可以有效的实现第一云环境对第二云环境中的服务的访问。以及网关虚拟机、路由虚拟机以及中间组件在转发访问请求的时候,都会针对访问请求的源地址进行伪装,以保证目标服务在向第一云环境返回数据的时候,可以通过上述介绍的一系列链路将数据发送至第一云环境中的处理模块。
基于上述介绍的各个实施例,下面结合图8对本申请所涉及的软件架构进行进一步的说明,图8为本申请实施例提供的云环境访问方法的软件架构示意图。
如图8所示,其中的上层总入口可以理解为整个软件架构的入口,其例如可以实现UI界面、日志汇总、数据存储等功能,比如说可以在上层总入口中触发专有云环境的创建,以及触发环境释放时资源的销毁等等。
sp(服务提供商,Service Provider)服务负责拉起模拟服务器(mock-service)服务端,注入第一云平台的基础配置并启动mocke-server上的各组件,使其能够正常运行。以及参照图8,sp服务还可以进行资源的释放,比如说可以通过公共云中相应的接口,释放主要vpc内的资源,或者还可以直接销毁所有专有云环境相关的资源,具体的资源销毁方式可以根据实际需求进行选择和设置。
控制单元用于提供快捷运维以及查询能力,具体的,mock-service收集各个虚拟机的日志数据和状态数据,并向控制单元上报组件的状态信息、日志信息等。以及软件架构中还可以包括公共云的云数据库和对象存储,以为上层数据和控制单元提供相应的支撑。
其中,mock-service负责对专有云的ecs、vpc、slb的openapi(开放应用程序编程接口,Open Application Programming Interface)进行劫持,经过内部逻辑适配转而将实际新资源的对应操作转接到公共云的openapi,实现基础资源的增删改查操作。
结合图8对mock-service的具体实现进行理解,假设某个产品或者平台调用ecs接口或者vpc接口创建ecs或者vpc,则mock-service中的http(超文本传输协议,Hyper TextTransfer Protocol)服务器可以劫持该创建请求,并通过mock-service中的ecs、vpc的增删改查功能接口,将创建请求的实际新资源的对应操作转到公共云的ecs接口或者公共云的vpc接口。其中,公共云的ecs接口可以理解为公共云的ecs的sdk(Software DevelopmentKit,软件工具开发包)/openapi,以及公共云的vpc接口可以理解为公共云的vpc的sdk/openapi。
以及,在mock-servic内部可以监控vpc和ecs的创建情况,并在合适的时机调用公共云的openapi接口,创建网关虚拟机和slb虚拟机,并在相应的虚拟机上部署vpn agent单元和slb agent单元,这些单元负责在相关的配置发生变更时做实际的配置变更,保证实际功能可用。
下面可以结合图8对各个虚拟机上部署的agent(代理)单元进行配置变更的实现进行介绍。
如图8所示,mock-service中的slb虚拟机配置下发组件可以向slb虚拟机的slb代理单元发送配置文件,之后slb代理单元可以读取配置文件,并在slb虚拟机中进行相应的配置,比如说上述介绍的路由配置。
以及,mock-service中的网关虚拟机配置下发组件可以向网关虚拟机的vpnagent单元发送配置文件,之后vpn agent单元可以读取配置文件,并在网关虚拟机中进行相应的配置,比如说上述介绍的路由配置。可选的,在网关虚拟机中还可以存在fdb agent单元,fdb agent单元同样可以读取配置文件,从而执行上述介绍的fdb表的配置。
以及,mock-service中的路由虚拟机配置下发组件可以向路由虚拟机的vpnagent单元发送配置文件,之后vpn agent单元可以读取配置文件,并在路由虚拟机中进行相应的配置,比如说上述介绍的路由配置。其中,配置文件所指示的配置可以理解为上述实施例介绍的路由配置,此处不再赘述。
综上所述,本申请实施例提供的云环境访问方法,通过在第一云环境中部署路由虚拟机,以及在vpc中部署网关虚拟机,在网关虚拟机和路由虚拟机之间建立虚拟链路,就可以有效保证第一云环境和第二云环境的通信可行性,也有效的避免了不同vpc之间的网络隔离、地址重叠、网络访问的准入限制等规则带来的影响。以及通过配置相应的路由信息,可以保证数据可以有序并且正确的在各个单元之间进行转发,从而可以有效的实现第二云环境对第一云环境的服务的访问,以扩大vpc在第一云平台中的应用范围,以及该场景下无论是针对单通道还是任意通道,都可以有效的实现相应的配置。同时,还可以有效实现第一云环境对第二云环境的服务的访问,以扩大在第二云平台上部署的第一云平台的应用范围。
图9为本申请实施例提供的云环境访问装置的结构示意图一。如图9所示,该装置90包括:配置模块901、处理模块902以及发送模块903。
配置模块903,用于在第二云环境中配置第一路由信息,所述第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机;
处理模块902,用于建立路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
所述配置模块903,还用于配置第二路由信息,所述第二路由信息用于指示所述网关虚拟机将访问请求发送至所述路由虚拟机,以及指示所述路由虚拟机将访问请求发送至所述目标服务,所述访问请求用于请求访问所述第一云环境中的目标服务;
发送模块903,用于根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述网关虚拟机转发至所述路由虚拟机,并由所述路由虚拟机将所述访问请求发送至所述目标服务。
在一种可能的设计中,所述处理模块902具体用于:在所述网关虚拟机中,创建所述网关虚拟机对应的第一子通道;在所述路由虚拟机中,创建所述路由虚拟机对应的第二子通道;根据所述第一子通道和所述第二子通道,确定所述虚拟链路。
在一种可能的设计中,所述处理模块902具体用于:在所述网关虚拟机中,创建基于所述路由虚拟机的网际互连协议IP地址的虚拟扩展局域网vxlan隧道;创建第一网桥,其中,所述vxlan隧道在网关虚拟机中的接口与所述第一网桥逻辑连接;创建包括第一接口和第二接口的网关接口对,所述第一接口与所述第一网桥逻辑连接,并且所述第二接口分配有第一IP地址;确定所述第一子通道,所述第一子通道依次通过所述第二接口、所述第一接口、所述第一网桥以及所述vxlan隧道在网关虚拟机中的接口进行数据传输。
在一种可能的设计中,所述处理模块902具体用于:在所述路由虚拟机中,创建基于所述网关虚拟机的IP地址的vxlan隧道;创建第二网桥,其中,所述vxlan隧道在路由虚拟机中的接口与所述第二网桥逻辑连接;创建包括第三接口和第四接口的网关接口对,所述第三接口与所述第二网桥逻辑连接,并且所述第四接口分配有第二IP地址;确定所述第二子通道,所述第二子通道依次通过所述vxlan隧道在路由虚拟机中的接口、所述第二网桥、所述第三接口以及所述第四接口进行数据传输。
在一种可能的设计中,所述第一云环境中还创建有服务器负载均衡slb虚拟机;所述处理模块902还用于:根据所述第二云环境中服务配置请求,在所述第一云环境对应的预设网段中为所述目标服务分配虚拟IP地址;
所述第二路由信息包括:
若到达所述网关虚拟机的访问请求的目的地址为所述虚拟IP地址,则确定所述访问请求的下一跳为所述路由虚拟机中的第四接口的IP地址;若到达所述路由虚拟机的访问请求的目的地址为所述虚拟IP地址,则确定所述访问请求的下一跳为所述目标服务的真实IP地址,或者所述slb虚拟机的目标接口的IP地址。
在一种可能的设计中,所述发送模块903具体用于:所述网关虚拟机根据所述第一路由信息,获取所述第二云环境中发起的访问请求,所述访问请求的目的地址为所述虚拟IP地址;所述网关虚拟机根据所述第二路由信息以及所述虚拟链路,将所述访问请求发送至所述路由虚拟机中的第四接口。
在一种可能的设计中,所述发送模块903具体用于:
若所述虚拟IP地址与所述目标服务的真实IP地址为同一个,则由所述路由虚拟机根据所述第二路由信息将所述访问请求发送至所述目标服务;或者,若所述虚拟IP地址与所述目标服务的真实IP地址不是同一个,则由所述路由虚拟机根据所述第二路由信息将所述访问请求发送至所述slb虚拟机的目标接口;
所述slb虚拟机经由所述目标接口,将所述访问请求发送至所述slb虚拟机中的中间组件;所述中间组件将所述访问请求的目标地址修改为所述真实IP地址,并根据修改后的所述目标地址,将所述访问请求发送至所述目标服务。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图10为本申请实施例提供的云环境访问装置的结构示意图二。如图10所示,该装置100包括:配置模块1001、处理模块1002以及发送模块1003。
配置模块1001,用于在所述第一云环境中配置第一路由信息,所述第一路由信息用于指示所述slb虚拟机中的中间组件将访问请求发送至所述路由虚拟机,所述访问请求用于请求访问所述第二云环境中的目标服务;
处理模块1002,用于建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
所述配置模块1003,还用于配置第二路由信息,所述第二路由信息用于指示所述路由虚拟机将所述访问请求发送至所述网关虚拟机;
发送模块,用于根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述路由虚拟机转发至所述网关虚拟机,并由所述网关虚拟机将所述访问请求发送至所述目标服务。
在一种可能的设计中,所述处理模块1002具体用于:在所述网关虚拟机中,创建所述网关虚拟机对应的第一子通道;在所述路由虚拟机中,创建所述路由虚拟机对应的第二子通道;根据所述第一子通道和所述第二子通道,生成所述虚拟链路。
在一种可能的设计中,所述处理模块1002具体用于:在所述网关虚拟机中,创建基于所述路由虚拟机的IP地址的vxlan隧道;创建第一网桥,其中,所述vxlan隧道在网关虚拟机中的接口与所述第一网桥逻辑连接;创建包括第一接口和第二接口的网关接口对,所述第一接口与所述第一网桥逻辑连接,并且所述第二接口分配有第一IP地址;确定所述第一子通道,所述第一子通道依次通过所述第二接口、所述第一接口、所述第一网桥以及所述vxlan隧道在网关虚拟机中的接口进行数据传输。
在一种可能的设计中,所述处理模块1002具体用于:在所述路由虚拟机中,创建基于所述网关虚拟机的IP地址的vxlan隧道;创建第二网桥,其中,所述vxlan隧道在路由虚拟机中的接口与所述第二网桥逻辑连接;创建包括第三接口和第四接口的网关接口对,所述第三接口与所述第二网桥逻辑连接,并且所述第四接口分配有第二IP地址;确定所述第二子通道,所述第二子通道依次通过所述vxlan隧道在路由虚拟机中的接口、所述第二网桥、所述第三接口以及所述第四接口进行数据传输。
在一种可能的设计中,所述处理模块1002还用于:根据所述第一云环境中服务配置请求,为所述目标服务分配虚拟IP地址,以及在所述第二云环境对应的预设网段中确定所述虚拟IP地址对应的中转IP地址;以及,若到达所述中间组件的访问请求的目的地址为所述虚拟IP地址,则所述中间组件将所述访问请求的目的地址修改为所述中转IP地址;
所述第二路由信息包括:若到达所述路由虚拟机的访问请求的目的地址为所述中转IP地址,则确定所述访问请求的下一跳为所述网关虚拟机中的第二接口的IP地址。
在一种可能的设计中,所述发送模块1003具体用于:所述中间组件监听以获取所述访问请求;所述中间组件根据所述第一路由信息,将所述访问请求转发至所述路由虚拟机;所述路由虚拟机通过配置有所述第二路由信息的虚拟链路,将所述访问请求发送至所述网关虚拟机。
在一种可能的设计中,所述发送模块1003具体用于:所述网关虚拟机将所述访问请求的目标地址修改为所述中转IP地址对应的真实IP地址;所述网关虚拟机根据修改后的所述目标地址,将所述访问请求发送至所述目标服务。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图11为本申请实施例提供的电子设备的硬件结构示意图,如图11所示,本实施例的电子设备110包括:处理器1101以及存储器1102;其中
存储器1102,用于存储计算机执行指令;
处理器1101,用于执行存储器存储的计算机执行指令,以实现上述实施例中云环境访问方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器1102既可以是独立的,也可以跟处理器1101集成在一起。
当存储器1102独立设置时,该电子设备还包括总线1103,用于连接所述存储器1102和处理器1101。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上电子设备所执行的云环境访问方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理模块(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (19)

1.一种云环境访问方法,其特征在于,应用于第一云平台,所述第一云平台部署在第二云平台上,所述第一云平台中包括第一云环境以及第二云环境,所述第一云环境中创建有路由虚拟机,所述第二云环境中创建有网关虚拟机,所述方法包括:
在所述第二云环境中配置第一路由信息,所述第一路由信息用于指示将访问所述第一云环境的请求发送至所述网关虚拟机;
建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
配置第二路由信息,所述第二路由信息用于指示所述网关虚拟机将访问请求发送至所述路由虚拟机,以及指示所述路由虚拟机将访问请求发送至目标服务,所述访问请求用于请求访问所述第一云环境中的目标服务;
根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述网关虚拟机转发至所述路由虚拟机,并由所述路由虚拟机将所述访问请求发送至所述目标服务。
2.根据权利要求1所述的方法,其特征在于,所述建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,包括:
在所述网关虚拟机中,创建所述网关虚拟机对应的第一子通道;
在所述路由虚拟机中,创建所述路由虚拟机对应的第二子通道;
根据所述第一子通道和所述第二子通道,确定所述虚拟链路。
3.根据权利要求2所述的方法,其特征在于,所述在所述网关虚拟机中,创建所述网关虚拟机对应的第一子通道,包括:
在所述网关虚拟机中,创建基于所述路由虚拟机的网际互连协议IP地址的虚拟扩展局域网vxlan隧道;
创建第一网桥,其中,所述vxlan隧道在网关虚拟机中的接口与所述第一网桥逻辑连接;
创建包括第一接口和第二接口的网关接口对,所述第一接口与所述第一网桥逻辑连接,并且所述第二接口分配有第一IP地址;
确定所述第一子通道,所述第一子通道依次通过所述第二接口、所述第一接口、所述第一网桥以及所述vxlan隧道在网关虚拟机中的接口进行数据传输。
4.根据权利要求2所述的方法,其特征在于,所述在所述路由虚拟机中,创建所述路由虚拟机对应的第二子通道,包括:
在所述路由虚拟机中,创建基于所述网关虚拟机的IP地址的vxlan隧道;
创建第二网桥,其中,所述vxlan隧道在路由虚拟机中的接口与所述第二网桥逻辑连接;
创建包括第三接口和第四接口的网关接口对,所述第三接口与所述第二网桥逻辑连接,并且所述第四接口分配有第二IP地址;
确定所述第二子通道,所述第二子通道依次通过所述vxlan隧道在路由虚拟机中的接口、所述第二网桥、所述第三接口以及所述第四接口进行数据传输。
5.根据权利要求4所述的方法,其特征在于,所述第一云环境中还创建有服务器负载均衡slb虚拟机;
所述方法还包括:
根据所述第二云环境中服务配置请求,在所述第一云环境对应的预设网段中为所述目标服务分配虚拟IP地址;
所述第二路由信息包括:
若到达所述网关虚拟机的访问请求的目的地址为所述虚拟IP地址,则确定所述访问请求的下一跳为所述路由虚拟机中的第四接口的IP地址;
若到达所述路由虚拟机的访问请求的目的地址为所述虚拟IP地址,则确定所述访问请求的下一跳为所述目标服务的真实IP地址,或者所述slb虚拟机的目标接口的IP地址。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述网关虚拟机转发至所述路由虚拟机,包括:
所述网关虚拟机根据所述第一路由信息,获取所述第二云环境中发起的访问请求,所述访问请求的目的地址为所述虚拟IP地址;
所述网关虚拟机根据所述第二路由信息以及所述虚拟链路,将所述访问请求发送至所述路由虚拟机中的第四接口。
7.根据权利要求6所述的方法,其特征在于,所述由所述路由虚拟机将所述访问请求发送至所述目标服务,包括:
若所述虚拟IP地址与所述目标服务的真实IP地址为同一个,则由所述路由虚拟机根据所述第二路由信息将所述访问请求发送至所述目标服务;或者,
若所述虚拟IP地址与所述目标服务的真实IP地址不是同一个,则由所述路由虚拟机根据所述第二路由信息将所述访问请求发送至所述slb虚拟机的目标接口;
所述slb虚拟机经由所述目标接口,将所述访问请求发送至所述slb虚拟机中的中间组件;
所述中间组件将所述访问请求的目标地址修改为所述真实IP地址,并根据修改后的所述目标地址,将所述访问请求发送至所述目标服务。
8.一种云环境访问方法,其特征在于,应用于第一云平台,所述第一云平台部署在第二云平台上,所述第一云平台中包括第一云环境以及第二云环境,所述第一云环境中创建有路由虚拟机以及slb虚拟机,所述第二云环境中创建有网关虚拟机,所述方法包括:
在所述第一云环境中配置第一路由信息,所述第一路由信息用于指示所述slb虚拟机中的中间组件将访问请求发送至所述路由虚拟机,所述访问请求用于请求访问所述第二云环境中的目标服务;
建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
配置第二路由信息,所述第二路由信息用于指示所述路由虚拟机将所述访问请求发送至所述网关虚拟机;
根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述路由虚拟机转发至所述网关虚拟机,并由所述网关虚拟机将所述访问请求发送至所述目标服务。
9.根据权利要求8所述的方法,其特征在于,所述建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,包括:
在所述网关虚拟机中,创建所述网关虚拟机对应的第一子通道;
在所述路由虚拟机中,创建所述路由虚拟机对应的第二子通道;
根据所述第一子通道和所述第二子通道,生成所述虚拟链路。
10.根据权利要求9所述的方法,其特征在于,所述在所述网关虚拟机中,创建所述网关虚拟机对应的第一子通道,包括:
在所述网关虚拟机中,创建基于所述路由虚拟机的IP地址的vxlan隧道;
创建第一网桥,其中,所述vxlan隧道在网关虚拟机中的接口与所述第一网桥逻辑连接;
创建包括第一接口和第二接口的网关接口对,所述第一接口与所述第一网桥逻辑连接,并且所述第二接口分配有第一IP地址;
确定所述第一子通道,所述第一子通道依次通过所述第二接口、所述第一接口、所述第一网桥以及所述vxlan隧道在网关虚拟机中的接口进行数据传输。
11.根据权利要求9所述的方法,其特征在于,所述在所述路由虚拟机中,创建所述路由虚拟机对应的第二子通道,包括:
在所述路由虚拟机中,创建基于所述网关虚拟机的IP地址的vxlan隧道;
创建第二网桥,其中,所述vxlan隧道在路由虚拟机中的接口与所述第二网桥逻辑连接;
创建包括第三接口和第四接口的网关接口对,所述第三接口与所述第二网桥逻辑连接,并且所述第四接口分配有第二IP地址;
确定所述第二子通道,所述第二子通道依次通过所述vxlan隧道在路由虚拟机中的接口、所述第二网桥、所述第三接口以及所述第四接口进行数据传输。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述第一云环境中服务配置请求,为所述目标服务分配虚拟IP地址,以及在所述第二云环境对应的预设网段中确定所述虚拟IP地址对应的中转IP地址;
以及,
若到达所述中间组件的访问请求的目的地址为所述虚拟IP地址,则所述中间组件将所述访问请求的目的地址修改为所述中转IP地址;
所述第二路由信息包括:
若到达所述路由虚拟机的访问请求的目的地址为所述中转IP地址,则确定所述访问请求的下一跳为所述网关虚拟机中的第二接口的IP地址。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述路由虚拟机转发至所述网关虚拟机,包括:
所述中间组件监听以获取所述访问请求;
所述中间组件根据所述第一路由信息,将所述访问请求转发至所述路由虚拟机;
所述路由虚拟机通过配置有所述第二路由信息的虚拟链路,将所述访问请求发送至所述网关虚拟机。
14.根据权利要求13所述的方法,其特征在于,所述由所述网关虚拟机将所述访问请求发送至所述目标服务,包括:
所述网关虚拟机将所述访问请求的目标地址修改为所述中转IP地址对应的真实IP地址;
所述网关虚拟机根据修改后的所述目标地址,将所述访问请求发送至所述目标服务。
15.一种云环境访问装置,其特征在于,包括:
配置模块,用于在第二云环境中配置第一路由信息,所述第一路由信息用于指示将访问第一云环境的请求发送至网关虚拟机;
处理模块,用于建立路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
所述配置模块,还用于配置第二路由信息,所述第二路由信息用于指示所述网关虚拟机将访问请求发送至所述路由虚拟机,以及指示所述路由虚拟机将访问请求发送至目标服务,所述访问请求用于请求访问所述第一云环境中的目标服务;
发送模块,用于根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述网关虚拟机转发至所述路由虚拟机,并由所述路由虚拟机将所述访问请求发送至所述目标服务。
16.一种云环境访问装置,其特征在于,包括:
配置模块,用于在第一云环境中配置第一路由信息,所述第一路由信息用于指示slb虚拟机中的中间组件将访问请求发送至所述路由虚拟机,所述访问请求用于请求访问所述第二云环境中的目标服务;
处理模块,用于建立所述路由虚拟机和所述网关虚拟机之间的虚拟链路,所述虚拟链路用于在所述路由虚拟机和所述网关虚拟机之间进行数据传输;
所述配置模块,还用于配置第二路由信息,所述第二路由信息用于指示所述路由虚拟机将所述访问请求发送至所述网关虚拟机;
发送模块,用于根据所述第一路由信息、所述第二路由信息以及所述虚拟链路,将所述访问请求经过所述路由虚拟机转发至所述网关虚拟机,并由所述网关虚拟机将所述访问请求发送至所述目标服务。
17.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至14中任一所述的方法。
18.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至14中任一所述的方法。
19.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一所述的方法。
CN202310561516.2A 2023-05-15 2023-05-15 云环境访问方法及装置 Pending CN116599900A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310561516.2A CN116599900A (zh) 2023-05-15 2023-05-15 云环境访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310561516.2A CN116599900A (zh) 2023-05-15 2023-05-15 云环境访问方法及装置

Publications (1)

Publication Number Publication Date
CN116599900A true CN116599900A (zh) 2023-08-15

Family

ID=87611078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310561516.2A Pending CN116599900A (zh) 2023-05-15 2023-05-15 云环境访问方法及装置

Country Status (1)

Country Link
CN (1) CN116599900A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118118443A (zh) * 2024-03-27 2024-05-31 广州度岭科技有限公司 虚拟机访问的方法、装置、设备以及存储介质
CN118474027A (zh) * 2024-07-09 2024-08-09 比亚迪股份有限公司 通信方法、电子装置、车辆和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118118443A (zh) * 2024-03-27 2024-05-31 广州度岭科技有限公司 虚拟机访问的方法、装置、设备以及存储介质
CN118474027A (zh) * 2024-07-09 2024-08-09 比亚迪股份有限公司 通信方法、电子装置、车辆和存储介质

Similar Documents

Publication Publication Date Title
CN116057910B (zh) 虚拟私有云通信及配置方法以及相关装置
US11265368B2 (en) Load balancing method, apparatus, and system
CN108449282B (zh) 一种负载均衡方法及其装置
CN112470436B (zh) 用于提供多云连通性的系统、方法、以及计算机可读介质
CN113132201B (zh) 一种vpc之间的通信方法及装置
US10541836B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
CN111698338B (zh) 一种数据传输的方法和计算机系统
CN116599900A (zh) 云环境访问方法及装置
CN109728962B (zh) 一种发送报文的方法和设备
CN111556110B (zh) 一种用于私有云系统的不同物理业务网络自动化适配方法
CN109728984B (zh) 一种接入系统、方法及装置
US10193758B2 (en) Communication via a connection management message that uses an attribute having information on queue pair objects of a proxy node in a switchless network
CN115412527B (zh) 虚拟私有网络之间单向通信的方法及通信装置
CN113918326B (zh) 一种处理请求的方法及装置
CN107508845B (zh) 一种组网系统、网络共享方法和系统
CN109587027B (zh) 一种报文转发方法及装置
CN114448667B (zh) 一种数据传输方法、装置及设备
CN118784565A (zh) 一种云平台虚拟私有网络间的通信方法及装置
CN116457756A (zh) 用于内联透明计算机网络设备的高效虚拟化的方法和系统
KR20170001656A (ko) 공인 ip와 사설 ip를 함께 제공하는 nfv 기반의 인터넷 서비스를 위한 서비스 펑션 체이닝을 통한 동적 서비스 구성 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination