CN109361764B - 内跨vpc的服务访问方法、装置、设备及可读存储介质 - Google Patents

内跨vpc的服务访问方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN109361764B
CN109361764B CN201811443660.1A CN201811443660A CN109361764B CN 109361764 B CN109361764 B CN 109361764B CN 201811443660 A CN201811443660 A CN 201811443660A CN 109361764 B CN109361764 B CN 109361764B
Authority
CN
China
Prior art keywords
vpc
access
shared
service
access message
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.)
Active
Application number
CN201811443660.1A
Other languages
English (en)
Other versions
CN109361764A (zh
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.)
Hangzhou Dt Dream Technology Co Ltd
Original Assignee
Hangzhou Dt Dream Technology 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 Hangzhou Dt Dream Technology Co Ltd filed Critical Hangzhou Dt Dream Technology Co Ltd
Priority to CN201811443660.1A priority Critical patent/CN109361764B/zh
Publication of CN109361764A publication Critical patent/CN109361764A/zh
Application granted granted Critical
Publication of CN109361764B publication Critical patent/CN109361764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • 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)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种内跨VPC的服务访问方法,该方法可无需借助外网,直接将访问报文发送给同属一个云平台***中的其他VPC中。且由于在发送访问报文时通过共享二层网与目标虚拟路由器进行通信,目标VPC内的共享服务VM可并未暴露,共享服务VM的安全性不受影响。另外,由于共享二层网络可将云平台***中的各个VPC的虚拟路由器归属于同一个子网内,因而同属于一个云平台***中的各个用户便可通过共享二层网访问共享服务或提供共享服务。本发明还公开了一种内跨VPC的服务访问装置、设备及可读存储介质和一种云平台***,具有相应的技术效果。

Description

内跨VPC的服务访问方法、装置、设备及可读存储介质
技术领域
本发明涉及通信技术领域,特别是涉及一种内跨VPC的服务访问方法、装置、设备及可读存储介质和一种云平台***。
背景技术
云平台***内提供的VPC实现不同租户的子网隔离,且不同VPC之间的网络是可重复的,是不可见且不可访问的,同一VPC下的网络通过VPC内的路由器实现三层互通。虽然,利用VPC可实现云平台***中各个子网之间的隔离,但有些服务需要在云平台***内跨VPC访问,比如租户A的数据分析服务可能要提供给租户B使用,而A和B分属不同的VPC;又如,云平台本身内部了一些公共服务如RDS服务、OSS服务等,这些服务需要其他租户VPC都可以使用。
对于上述问题,目前存在两种常见的解决方案:方案一、请参考图1,通过外网访问其他VPC共享服务。即为VPC内提供代理服务的SLB分配外网EIP,其他VPC的VM通过外网通道访问其服务;方案二、请参考图2,创建内部共享网络,提供共享服务的VM或者SLB直接使用此网络,同时此网络连接到所有VPC的Router,租户VM访问这些服务时通过在Router上做DNAT。方案一和方案二均有其对应的缺点,即方案一会额外占用外部网络的带宽,会在外部网关处形成瓶颈热点,***内流量对网关节点形成流量压力,会将内部服务暴露到云平台***外,引入安全问题。其中,额外占用外网IP资源,尤其是互联网,公网IP是非常昂贵和紧缺的资源。方案二提供共享服务的VM直接接入共享网络,无法访问外网,不利于服务分层设计,服务VM直接暴露在共享网络内,封装性不好,只能实现多VPC访问同一区域的服务,无法实现任意VPC之间对外提供服务,用户无法把自定义VPC内的服务共享给其他VPC。
综上所述,如何有效地解决跨VPC提供服务等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种内跨VPC的服务访问方法、装置、设备及可读存储介质和一种云平台***,以保障共享服务的安全性,及减少占用外网资源。
为解决上述技术问题,本发明提供如下技术方案:
一种内跨VPC的服务访问方法,包括:
接收本地VPC消费者VM发送的第一访问报文,读取所述第一访问报文中的目的地址;
判断所述目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,所述共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;
如果是,则对所述第一访问报文进行SNAT处理,获得第二访问报文;
将所述第二访问报文直接发送给所述目标虚拟路由器,以便所述目标虚拟路由器对所述第二访问报文进行转发处理。
优选地,所述目标虚拟路由器对所述第二访问报文进行转发处理,包括:
目标虚拟路由器对所述第二访问报文进行DNAT处理,获得第三访问报文;
将所述第三访问报文发送给所述目标VPC内的共享服务VM进行处理。
优选地,所述将所述第三访问报文发送给所述目标VPC内的共享服务VM进行处理,包括:
将所述第三访问报文发送所述目标VPC内的共享服务SLB,以便所述共享服务SLB将所述第三访问报文发送给所述共享访问VM进行处理。
优选地,所述对所述第一访问报文进行SNAT处理,获得第二访问报文,包括:
对所述第一访问报文中的源地址进行修改,获得所述第二访问报文。
优选地,对所述第一访问报文中的源地址进行修改,获得所述第二访问报文,包括:
将所述第一访问报文中的源地址替换为本地共享地址,获得所述第二访问报文。
优选地,在将所述第二访问报文直接发送给所述目标虚拟路由器之后,还包括:
接收所述目标虚拟路由器返回经过undo DNAT处理的应答报文;
对所述应答报文进行undo SNAT处理,得到目标应答报文;
将所述目标应答报文发送至所述本地VPC消费者VM。
一种内跨VPC的服务访问装置,包括:
目的地址读取模块,用于接收本地VPC消费者VM发送的第一访问报文,读取所述第一访问报文中的目的地址;
判断模块,用于判断所述目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,所述共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;
SNAT处理模块,用于如果是,则对所述第一访问报文进行SNAT处理,获得第二访问报文;
报文发送模块,用于将所述第二访问报文直接发送给所述目标虚拟路由器,以便所述目标虚拟路由器对所述第二访问报文进行转发处理。
一种内跨VPC的服务访问设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内跨VPC的服务访问方法的步骤。
一种云平台***,包括:
至少两个VPC和连接所述VPC的共享二层网;其中,所述共享二层网为所述VPC中的虚拟路由器配置了共享地址;所述VPC内的虚拟路由器通过所述共享二层网跨所述VPC访问共享服务VM。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述内跨VPC的服务访问方法的步骤。
应用本发明实施例所提供的方法,接收本地VPC消费者VM发送的第一访问报文,读取第一访问报文中的目的地址;判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;如果是,则对第一访问报文进行SNAT处理,获得第二访问报文;将第二访问报文直接发送给目标虚拟路由器,以便目标虚拟路由器对第二访问报文进行转发处理。
云平台***中的VPC的虚拟路由器接收到本地VPC消费者VM发送的第一访问报文时,读取第一访问报文中的目的地址。然后,判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同。如果相同,即表明本地VPC消费者VM请求访问云平台***中的目标VPC中的共享服务VM。又因存在共享二层网络,且该共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络,即该目标虚拟路由器是与本虚拟路由器直接相连的路由器,因此,在对第一访问报文进行SNAT处理,得到第二访问报文之后,可将第二访问报文直接发送给目标虚拟路由器。以便目标虚拟路由器对该第二访问报文进行转发处理。如此,便可无需借助外网,直接将访问报文发送给同属一个云平台***中的其他VPC中。且由于在发送访问报文时通过共享二层网与目标虚拟路由器进行通信,目标VPC内的共享服务VM可并未暴露,共享服务VM的安全性不受影响。另外,由于共享二层网络可将云平台***中的各个VPC的虚拟路由器归属于同一个子网内,因而同属于一个云平台***中的各个用户便可通过共享二层网访问共享服务或提供共享服务。
相应地,本发明实施例还提供了与上述内跨VPC的服务访问方法相对应的内跨VPC的服务访问装置、设备及可读存储介质和一种云平台***,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为云平台***中通过外网访问其他VPC的共享服务示意图;
图2为云平台***中通过创建内部共享网络提供共享服务示意图;
图3为本发明实施例中一种内跨VPC的服务访问方法的实施流程图;
图4为本发明实施例中一种共享二层网的结构示意图;
图5为本发明实施例中一种云平台***的结构示意图;
图6为本发明实施例中的一种云平台***示意图;
图7为本发明实施例中一种跨VPC进行服务访问的报文处理过程示意图;
图8为本发明实施例中一种内跨VPC的服务访问装置的结构示意图;
图9为本发明实施例中一种内跨VPC的服务访问设备的结构示意图;
图10为本发明实施例中一种内跨VPC的服务访问设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便描述,下文对技术方案进行说明时,采用了如下缩略词:
共享服务:在云平台***内,可以被其他VPC的VM访问的服务。
共享服务VM:提供共享服务的VM。
消费者VM:使用共享服务的客户端虚拟机,在此方案中特指与共享服务VM不在同一VPC的客户端虚拟机。
共享服务SLB:用于代理共享服务的SLB,通常也是VM形式,后端连接一个或者多个共享服务VM,并和后端的共享服务VM处于同一个VPC内(可同网段或者跨网段)。
共享网:共享网是一个规划出的内部网络,是一个特殊的私网,大二层,连接所有的VPC的Router,消费者VM向此网络IP请求共享服务,共享网和用户自定义私网的区别在于,此网络在所有的VPC内可见,且不能与VPC内用户自定义的私网有重叠。
共享网服务IP:虚拟Router在共享网的网段内,为共享服务分配的IP,该IP通过一比一的DNAT方式对应到共享服务SLB的私网IP上。
共享网NAT-IP:虚拟Router在共享网的网段内,为该VPC下所有消费者分配一个或者多个IP,作为消费者VM访问共享服务时的源IP。
实施例一:
请参考图3,图3为本发明实施例中一种内跨VPC的服务访问方法的流程图。该方法可应用于云平台***中的各个VPC的虚拟路由器中,该方法包括以下步骤:
S101、接收本地VPC消费者VM发送的第一访问报文,读取第一访问报文中的目的地址。
当本地VPC消费者VM需要访问云平台***中的其他VPC提供的共享服务时,可将消费者VM生成的第一访问报文通过虚拟交换机发送给本地虚拟路由器,也可直接发送给本地虚拟路由器。其中,VM指云平台***内提供模拟计算机的单元成为虚拟主机,简称VM,它有完整的模拟网络、模拟磁盘、模拟外设,相比传统计算主机功能上没有差异,用户的服务可以部署到VM成本更低,管理更加灵活丰富。
虚拟交换机接收到本地VPC消费者发送的第一访问报文,可利用通信协议从第一访问报文中读取目标地址。其中,目的地址具体可为目的IP地址。
S102、判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同。
其中,共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络。
在本发明实施例中,可以预先在云平台***中部署规划一个共享二层网,请参考图4,图4为本发明实施例中一种共享二层网的结构示意图。该共享二层网即将云平台***中的各个VPC的虚拟路由器相连接的二层网络。也就是说,为每一个VPC中的虚拟路由器配置共享地址,且每一个共享地址均归属于共享二层网对应的网段内。还需说明的是,共享二层网类似于VPC内的私网,但与私网不同的是,该共享二层网在云平台***中的所有VPC均可见,且不能与云平台***内的任何一个VPC内用户自定义的私网重叠。
读取到目标地址之后,可通过读取路由表,判断该目标地址是否与共享二层网为目标VPC的虚拟路由器配置的共享地址是否相同。其中,目标VPC可为云平台***中的任意一个VPC。如果相同,则表明该本地VPC消费者VM欲访问云平台***中的目标VPC内的共享服务VM,此时可执行步骤S103;如果不同,则表明该本地消费者VM欲访问云平台***以外的网络,此时可直接按照目前的处理访问报文的处理方式,执行步骤S105,即将访问报文发送至外网。
S103、对第一访问报文进行SNAT处理,获得第二访问报文。
在确定本地VPC消费者VM欲访问云平台***内的目标VPC内的共享服务VM时,则对第一访问报文进行SNAT处理,获得第二访问报文。其中,SNAT即源地址转换,其作用是将ip数据包的源地址转换成另外一个地址。在本发明实施例中的SNAT处理,指对第一访问报文中的源地址进行修改,获得第二访问报文。具体的,将第一访问报文中的源地址替换为本地共享地址,获得第二访问报文,即将本地VPC消费者VM在私网中的私网地址转换为虚拟路由器的本地共享地址,得到第二访问报文。
S104、将第二访问报文直接发送给目标虚拟路由器,以便目标虚拟路由器对第二访问报文进行转发处理。
得到第二访问报文之后,由于共享二层网连接了各个VPC的虚拟路由器,也就是说,各个VPC的虚拟路由器至少存在一个端口同处于共享二层网内,此时可直接将第二访问报文发送给目标虚拟路由器,以便目标虚拟路由器对第二访问报文进行转发处理。
其中,在目标虚拟路由器对第二访问报文进行转发处理时,具体包括:
步骤一、目标虚拟路由器对第二访问报文进行DNAT处理,获得第三访问报文;
步骤二、将第三访问报文发送给目标VPC内的共享服务VM进行处理。
为便于描述,下面将上述两个步骤结合起来进行说明。
目标虚拟路由器接收到第二访问报文之后,首先对第二访问报文进行DNAT处理,可获得第三访问报文。其中,DNAT(Destination Network Address Translation,目的地址转换)常用于防火墙中。目的地址转换的作用:将一组本地内部的地址映射到一组全球地址。在本发明实施例中,即将第二访问报文中的目的地址转换为共享服务VM对应的地址。
应用本发明实施例所提供的方法,接收本地VPC消费者VM发送的第一访问报文,读取第一访问报文中的目的地址;判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;如果是,则对第一访问报文进行SNAT处理,获得第二访问报文;将第二访问报文直接发送给目标虚拟路由器,以便目标虚拟路由器对第二访问报文进行转发处理。
云平台***中的VPC的虚拟路由器接收到本地VPC消费者VM发送的第一访问报文时,读取第一访问报文中的目的地址。然后,判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同。如果相同,即表明本地VPC消费者VM请求访问云平台***中的目标VPC中的共享服务VM。又因存在共享二层网络,且该共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络,即该目标虚拟路由器是与本虚拟路由器直接相连的路由器,因此,在对第一访问报文进行SNAT处理,得到第二访问报文之后,可将第二访问报文直接发送给目标虚拟路由器。以便目标虚拟路由器对该第二访问报文进行转发处理。如此,便可无需借助外网,直接将访问报文发送给同属一个云平台***中的其他VPC中。且由于在发送访问报文时通过共享二层网与目标虚拟路由器进行通信,目标VPC内的共享服务VM可并未暴露,共享服务VM的安全性不受影响。另外,由于共享二层网络可将云平台***中的各个VPC的虚拟路由器归属于同一个子网内,因而同属于一个云平台***中的各个用户便可通过共享二层网访问共享服务或提供共享服务。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
优选地,为了均衡目标VPC内各个共享服务VM的压力,还可在目标VPC内设置共享服务SLB,以均衡压力,提高性能。其中SLB提供四层或者七层负载分担和高可用切换功能,可在提供服务的VM(如WEB服务器)前端架设SLB来代理VM的服务,这样做有如下好处:
SLB只放开服务端口,屏蔽真实服务器(VM),更好的保护了服务端;
有些服务需要HTTPS包装,IP6转换,这样做更容易实现扩展功能;
一个SLB可以连接多个VM后端,实现负载均衡和避免单点故障;
更好的管理服务的开启、关闭、流量监控、性能分析。
如此,目标虚拟路由器在对第三访问报文进行处理时,便可将第三访问报文发送目标VPC内的共享服务SLB,以便共享服务SLB将第三访问报文发送给共享访问VM进行处理。共享服务SLB接收到第三访问报文,按照预先设置的分发规则将第三访问报文发送给相应的共享服务VM,以便共享服务VM做相应应答处理。共享服务VM对第三访问报文进行处理之后,便会产生原始应答报文,此时共享服务VM可将原始应答报文通过共享服务SLB发送至目标虚拟路由器。
优选地,当目标虚拟路由器接收到该原始应答报文之后,首先对原始应答报文做undo DNAT处理,得到可在共享二层网上进行传输的应答报文。目标虚拟路由器将应答报文直接发送给应答报文内的共享地址的虚拟路由器。
即,在将第二访问报文直接发送给目标虚拟路由器之后,虚拟路由器对应答报文的处理过程如下:
步骤一、接收目标虚拟路由器返回经过undo DNAT处理的应答报文;
步骤二、对应答报文进行undo SNAT处理,得到目标应答报文;
步骤三、将目标应答报文发送至本地VPC消费者VM。
为便于描述,下面将上述三个步骤结合起来进行说明。
虚拟路由器接收到目标虚拟路由器返回经过undo DNAT处理的应答报文,然后对应答报文进行undo SNAT处理,便可得到可发送至本地VPC消费者VM的目标应答报文。此时可直接将目标应答报文发送给本地VPC消费者VM,也可通过虚拟交换机将目标应答报文发送至本地VPC消费者CM。
实施例二:
相应于上面的方法实施例,本发明实施例还提供了一种云平台***,下文描述的云平台***与上文描述的内跨VPC的服务访问方法可相互对应参照。
参见图5所示,该***包括:
至少两个VPC(VPC1和VPC2)和连接VPC的共享二层网(M);
其中,共享二层网为VPC中的虚拟路由器(图示虚拟Router)配置了共享地址(图示中的共享网NAT-IP);VPC内的虚拟路由器通过共享二层网跨VPC访问共享服务VM。
在部署共享二层网时,即为各个VPC中的虚拟路由器分配共享地址,需要说明的是该共享地址同属于与共享二层网。共享二层网的具体的部署时,可参见在VPC内部署子网/私网的方式相互参照,但需注意的是,共享二层网不能与云平台***内的任意一个子网重叠。
如此,VPC内的消费者VM便可通过共享二层网,访问云平台***中任意一个VPC的共享服务。具体的,通过该共享二层网具体跨VPC进行服务访问的实现方法可参照上述实施例一所提供的内跨VPC的服务访问方法,在此不再赘述。
实施例三:
为了便于理解本发明实施例所提供的技术方案,下面将内跨VPC的服务访问方法结合具体的云平台***,对本发明实施例所提供的技术方案进行详细说明。
本发明的核心是:规划并创建一个内部大二层共享网,该共享网连接所有VPC的虚拟Router,在共享服务所在VPC,Router上为每个共享服务分配一个共享服务IP;在消费者VM所在VPC,Router为消费者VM分配一个或者多个共享NAT-IP;云平台内所有的共享服务IP,共享NAT-IP都处于一个二层网段内,即无需配置网关。
当消费者VM访问共享服务时,目的地址为共享服务IP,报文在本地VPC的Router处做SNAT处理,源地址从私网IP更改为共享NAT-IP;报文通过二层转发到达目的VPC的Router后,做DNAT处理,目的地址从共享服务IP更改为共享服务SLB的私网IP,共享服务SLB将请求转发给后端的共享服务VM。
共享服务SLB收到共享服务VM的应答报文之后,向Router发送,Router做undoDNAT处理,源地址从SLB的私网IP更改为共享服务IP;应答报文被继续转发到消费者VM所在Router后,做undo SNAT处理,目的地址从共享NAT-IP更改为消费者VM的私网IP,从而到达消费者VM。
此共享网可在部署时初始化,也可以在部署后修改。
其中,通过SLB代理共享服务的策略是可选的,目的是为了屏蔽非服务端口、容忍单点故障和支持负载分担,如果没有这些需求,无需增加SLB,共享网服务IP直接映射到共享服务VM的私网IP上。
具体实现过程如下:
1、云平台部署时规划出共享网络,此网络没有网关,只二层通信。
2、为共享服务创建VPC,VPC内缺省创建一个虚拟Router。
(1)虚拟Router连接共享网络。
(2)在VPC内创建1个或者多个私有网络,这些私有网络接入虚拟Router。
(3)在VPC内通过上述私有网络为同一个服务创建1个或多个共享服务VM,VM获得私网地址。
(4)在VPC内通过上述私有网络之一创建1个共享服务SLB的VM,VM获得私网地址,SLB使用此地址监听前端连接,后端连接上述共享服务VM。
(5)在VPC内的虚拟Router上绑定一个共享网络的IP,此处称为共享网服务IP,并配置一对一的DNAT转换,将发往共享网服务IP的报文更改目的地址为SLB私网IP。
3、消费者VM创建VPC,VPC内缺省创建一个虚拟Router。
(1)虚拟Router连接共享网络。
(2)在VPC内创建1个或者多个私有网络,这些私有网络接入虚拟Router。
(3)在VPC内通过上述私有网络创建多个消费者VM,VM获得私网地址。
(4)在VPC内的虚拟Router上绑定此共享网络的一个或者多个IP,此处称为共享网NAT-IP,并配置一对一或者多对一的SNAT转换,使得VM访问共享服务的报文经过虚拟Router做SNAT处理,源地址更改为绑定的共享网NAT-IP。
下面以图6为例,图6为本发明实施例中的一种云平台***示意图,对部署进行举例说明。
为达到消费者VM跨VPC访问RDS服务和DNS服务,而RDS服务和DNS服务使用SLB做负载分担的目的,可进行如下网络配置:
规划一个共享网,网段10.20.0.0/16,无网关。
创建2个VPC,分别为VPC1和VPC2,每个VPC创建一个Router分别为Router1和Router2,2个Router都连接共享网。需要说明的,此处为了便于描述仅创建了2个VPC,在本发明的其他实施例中还可创建2个以上的VPC,创建方式可参照与此,在此不在赘述。
在VPC1创建2个私网,分别为私网1和私网2,其中私网1的网段为192.168.1.0/24,网关为192.168.1.1;私网2的网段为192.168.2.0/24,网关为192.168.2.1。两个私网都连接Router1,并且网关都绑定到Router上。
在VPC1上使用私网1和私网2分别创建消费者VM1,VM2,IP分别为192.168.1.2和192.168.2.6。
在Router1上从共享网分配IP,10.20.0.1,并配置SNAT表项:匹配源地址为192.168.1.0/24或192.168.2.0/24,目的地址为10.20.0.0/16的报文,更改源地址为10.20.0.1。
在VPC2上创建2个私网,分别为私网3和私网4,其中私网3的网段为192.168.1.0/16,网关为192.168.1.1;私网4的网段为192.168.2.0/16,网关为192.168.2.1(即私网在VPC间是隔离的,即私网可重复或者重叠)。两个私网都连接Router2,并且网关都绑定到Router上。
在VPC2上使用私网3和私网4分别创建VM4,VM5,VM6,VM7,VM8,具体关联关系如图所示,IP分别为192.168.1.2,192.168.1.3,192.168.1.4,192.168.2.2,192.168.2.3。其中VM4为共享服务SLB虚机,VM5和VM7为RDS服务虚机,VM6和VM8为DNS服务虚机。
在SLB上配置2个服务代理,配置分别为:RDS代理:192.168.1.2:6000->192.168.1.3:6000,192.168.2.2:6000;DNS代理:192.168.1.2:53->192.168.1.4:53,192.168.2.3:53。
在Router2上从共享网分配IP,10.20.0.2,并配置DNAT表项:匹配目的地址为10.20.0.2的报文,更改目的地址为192.168.1.2。即,在云平台内,通过10.20.0.2可访问RDS和DNS服务。
需要说明的是,由于连接外网的配置可参照现有的配置方式,在此不再赘述,在图6也并未绘制,消费者VM和共享服务VM仍能够继续访问外网。
请参考图7,图7为本发明实施例中一种跨VPC进行服务访问的报文处理过程示意图。报文处理流程如下,为简化说明,只取VM1访问RDS服务的请求和应答报文举例:
其中,步骤F1—F4为请求报文的四个处理阶段:
F1:VM1请求RDS服务的请求报文,四元组为192.168.1.2:56555(随机端口)->10.20.0.2:6000,向网关Router1上转发;
F2:Router1上做SNAT处理,四元组修改为10.20.0.1:60123(随机端口)->10.20.0.2:6000,继续向Router2上转发;
F3:Router2上做DNAT处理,四元组修改为10.20.0.1:60123->192.168.1.2:6000,继续向共享服务SLB转发;
F4:SLB做4层负载分担,做DNAT-and-SNAT处理,将请求转发给VM5,四元组为192.168.1.2:45895(随机端口)->192.168.1.3:6000;
F5—F8为应答报文的处理阶段:
F5:VM5处理完发送应答报文返回给SLB,四元组为192.168.1.3:6000->192.168.1.2:45895;
F6:SLB做undo DNAT-and-SNAT处理,修改四元组为192.168.1.2:6000->10.20.0.1:60123,继续向Router2转发;
F7:Router2上做undo DNAT处理,修改四元组为10.20.0.2:6000->10.20.0.1:60123,继续向Router1转发;
F8:Router1上做undo SNAT处理,修改四元组为10.20.0.2:6000->192.168.1.2:56555,继续向VM1转发。
通过设置内部共享网连接所有VPC的路由器。该路由器通过DNAT将此共享网的IP映射为共享服务VM(或者共享服务SLB)私网IP。当消费者VM访问共享服务时,由本地VPC路由器通过SNAT将源地址更改为共享网IP。如此,每个VPC都可以将自己的共享服务通过此共享网络的IP发布出去,即租户自定义VPC内的服务可以通过内部网络共享给其他VPC的VM使用。云平台也以内置一些公共服务给所有VPC的VM使用。另外,请求共享服务的数据承载在独立的内网上,即请求共享服务的数据分布在每个VPC的路由器上,不占用外网带宽和外网IP资源,也就不会给外网路由器带来额外压力。共享服务只暴露服务端口和服务IP,而隔离服务后端实现。共享服务只在云平台***内可见,对外不会暴露。提供共享服务的VM还可以正常访问外网和其他VPC的服务。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种内跨VPC的服务访问装置,下文描述的内跨VPC的服务访问装置与上文描述的内跨VPC的服务访问方法可相互对应参照。
参见图8所示,该装置包括以下模块:
目的地址读取模块101,用于接收本地VPC消费者VM发送的第一访问报文,读取第一访问报文中的目的地址;
判断模块102,用于判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;
SNAT处理模块103,用于如果是,则对第一访问报文进行SNAT处理,获得第二访问报文;
报文发送模块104,用于将第二访问报文直接发送给目标虚拟路由器,以便目标虚拟路由器对第二访问报文进行转发处理。
应用本发明实施例所提供的装置,接收本地VPC消费者VM发送的第一访问报文,读取第一访问报文中的目的地址;判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;如果是,则对第一访问报文进行SNAT处理,获得第二访问报文;将第二访问报文直接发送给目标虚拟路由器,以便目标虚拟路由器对第二访问报文进行转发处理。
云平台***中的VPC的虚拟路由器接收到本地VPC消费者VM发送的第一访问报文时,读取第一访问报文中的目的地址。然后,判断目标地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同。如果相同,即表明本地VPC消费者VM请求访问云平台***中的目标VPC中的共享服务VM。又因存在共享二层网络,且该共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络,即该目标虚拟路由器是与本虚拟路由器直接相连的路由器,因此,在对第一访问报文进行SNAT处理,得到第二访问报文之后,可将第二访问报文直接发送给目标虚拟路由器。以便目标虚拟路由器对该第二访问报文进行转发处理。如此,便可无需借助外网,直接将访问报文发送给同属一个云平台***中的其他VPC中。且由于在发送访问报文时通过共享二层网与目标虚拟路由器进行通信,目标VPC内的共享服务VM可并未暴露,共享服务VM的安全性不受影响。另外,由于共享二层网络可将云平台***中的各个VPC的虚拟路由器归属于同一个子网内,因而同属于一个云平台***中的各个用户便可通过共享二层网访问共享服务或提供共享服务。
在本发明的一种具体实施方式中,收到内跨VPC的服务访问装置发送的第二访问报文的目标虚拟路由器,具体用于对第二访问报文进行DNAT处理,获得第三访问报文;将第三访问报文发送给目标VPC内的共享服务VM进行处理。其中,目标虚拟路由器可为云平台
在本发明的一种具体实施方式中,目标虚拟路由器,具体用于将第三访问报文发送目标VPC内的共享服务SLB,以便共享服务SLB将第三访问报文发送给共享访问VM进行处理。
在本发明的一种具体实施方式中,SNAT处理模块103,具体用于对第一访问报文中的源地址进行修改,获得第二访问报文。
在本发明的一种具体实施方式中,SNAT处理模块103,具体用于将第一访问报文中的源地址替换为本地共享地址,获得第二访问报文。
在本发明的一种具体实施方式中,目标虚拟路由器,还包括:
应答报文处理模块,用于在将第二访问报文直接发送给目标虚拟路由器之后,接收目标虚拟路由器返回经过undo DNAT处理的应答报文;对应答报文进行undo SNAT处理,得到目标应答报文;将目标应答报文发送至本地VPC消费者VM。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种内跨VPC的服务访问设备,下文描述的一种内跨VPC的服务访问设备与上文描述的一种内跨VPC的服务访问方法可相互对应参照。
参见图9所示,该内跨VPC的服务访问设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的内跨VPC的服务访问方法的步骤。
具体的,请参考图10,图10为本实施例提供的一种内跨VPC的服务访问设备的具体结构示意图,该内跨VPC的服务访问设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在内跨VPC的服务访问设备301上执行存储介质330中的一系列指令操作。
内跨VPC的服务访问设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的内跨VPC的服务访问方法中的步骤可以由内跨VPC的服务访问设备的结构实现。
实施例六:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种内跨VPC的服务访问方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的内跨VPC的服务访问方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (10)

1.一种内跨VPC的服务访问方法,其特征在于,包括:
接收本地VPC消费者VM发送的第一访问报文,读取所述第一访问报文中的目的地址;
判断所述目的地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,所述共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;
如果是,则对所述第一访问报文进行SNAT处理,获得第二访问报文;
将所述第二访问报文直接发送给所述目标虚拟路由器,以便所述目标虚拟路由器对所述第二访问报文进行转发处理。
2.根据权利要求1所述的内跨VPC的服务访问方法,其特征在于,所述目标虚拟路由器对所述第二访问报文进行转发处理,包括:
目标虚拟路由器对所述第二访问报文进行DNAT处理,获得第三访问报文;
将所述第三访问报文发送给所述目标VPC内的共享服务VM进行处理。
3.根据权利要求2所述的内跨VPC的服务访问方法,其特征在于,所述将所述第三访问报文发送给所述目标VPC内的共享服务VM进行处理,包括:
将所述第三访问报文发送所述目标VPC内的共享服务SLB,以便所述共享服务SLB将所述第三访问报文发送给所述共享服务VM进行处理。
4.根据权利要求1所述的内跨VPC的服务访问方法,其特征在于,所述对所述第一访问报文进行SNAT处理,获得第二访问报文,包括:
对所述第一访问报文中的源地址进行修改,获得所述第二访问报文。
5.根据权利要求4所述的内跨VPC的服务访问方法,其特征在于,对所述第一访问报文中的源地址进行修改,获得所述第二访问报文,包括:
将所述第一访问报文中的源地址替换为本地共享地址,获得所述第二访问报文。
6.根据权利要求1至5任一项所述的内跨VPC的服务访问方法,其特征在于,在将所述第二访问报文直接发送给所述目标虚拟路由器之后,还包括:
接收所述目标虚拟路由器返回经过undo DNAT处理的应答报文;
对所述应答报文进行undo SNAT处理,得到目标应答报文;
将所述目标应答报文发送至所述本地VPC消费者VM。
7.一种内跨VPC的服务访问装置,其特征在于,包括:
目的地址读取模块,用于接收本地VPC消费者VM发送的第一访问报文,读取所述第一访问报文中的目的地址;
判断模块,用于判断所述目的地址与共享二层网为目标VPC的目标虚拟路由器配置的共享地址是否相同;其中,所述共享二层网为云平台***中连接各个VPC的虚拟路由器的二层网络;
SNAT处理模块,用于如果是,则对所述第一访问报文进行SNAT处理,获得第二访问报文;
报文发送模块,用于将所述第二访问报文直接发送给所述目标虚拟路由器,以便所述目标虚拟路由器对所述第二访问报文进行转发处理。
8.一种内跨VPC的服务访问设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述内跨VPC的服务访问方法的步骤。
9.一种云平台***,其特征在于,包括:
至少两个VPC和连接了各个所述VPC的虚拟路由器组成的共享二层网;其中,所述共享二层网为所述VPC中的虚拟路由器配置了共享地址;发出访问请求的VPC中的虚拟路由器对访问报文进行SNAT处理,将本地共享地址替换所述访问报文中的源地址,将地址替换后的访问报文发送到目的虚拟路由器以及接收响应报文,使得VPC内的消费者VM通过所述共享二层网跨所述VPC访问共享服务VM。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述内跨VPC的服务访问方法的步骤。
CN201811443660.1A 2018-11-29 2018-11-29 内跨vpc的服务访问方法、装置、设备及可读存储介质 Active CN109361764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811443660.1A CN109361764B (zh) 2018-11-29 2018-11-29 内跨vpc的服务访问方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811443660.1A CN109361764B (zh) 2018-11-29 2018-11-29 内跨vpc的服务访问方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN109361764A CN109361764A (zh) 2019-02-19
CN109361764B true CN109361764B (zh) 2021-02-05

Family

ID=65343332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811443660.1A Active CN109361764B (zh) 2018-11-29 2018-11-29 内跨vpc的服务访问方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN109361764B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936629B (zh) * 2019-02-27 2021-09-03 浪潮云信息技术股份公司 一种混合云网络互连方法及***
CN109995759B (zh) * 2019-03-04 2022-10-28 平安科技(深圳)有限公司 一种物理机接入vpc的方法及相关装置
CN111698338B (zh) * 2019-03-15 2021-10-01 华为技术有限公司 一种数据传输的方法和计算机***
CN111917893B (zh) * 2019-05-10 2022-07-12 华为云计算技术有限公司 虚拟私有云与云下数据中心通信、配置方法及相关装置
CN110290174B (zh) 2019-05-24 2021-02-05 华为技术有限公司 一种主主集群的控制方法以及控制节点
CN110336730B (zh) * 2019-07-09 2022-01-18 腾讯科技(深圳)有限公司 一种网络***及数据传输方法
CN113132201B (zh) * 2019-12-30 2022-11-25 华为云计算技术有限公司 一种vpc之间的通信方法及装置
CN111404801B (zh) * 2020-03-27 2021-09-28 四川虹美智能科技有限公司 跨云厂商的数据处理方法、装置及***
CN111694519B (zh) * 2020-05-29 2023-11-21 北京世纪互联宽带数据中心有限公司 一种裸金属服务器挂载云硬盘的方法、***及服务器
CN111866124B (zh) * 2020-07-17 2022-06-24 北京金山云网络技术有限公司 访问网页页面的方法、装置、服务器和机器可读存储介质
CN112583949A (zh) * 2020-11-26 2021-03-30 新华三云计算技术有限公司 一种vpc访问公网的方法和vpc设备
CN113645210B (zh) * 2021-08-02 2023-05-02 上海云轴信息科技有限公司 政务云多区域的纳管方法和设备
CN114025010B (zh) * 2021-10-20 2024-04-16 北京奥星贝斯科技有限公司 建立连接的方法和网络设备
CN114124896B (zh) * 2021-11-03 2023-08-08 中盈优创资讯科技有限公司 一种解决客户与服务***间广播域被隔离方法及装置
CN114125025B (zh) * 2021-11-23 2024-02-13 北京奥星贝斯科技有限公司 一种多目标网络下的数据传输方法及装置
CN114726827B (zh) * 2022-03-31 2022-11-15 阿里云计算有限公司 多集群服务***、服务访问与信息配置方法、设备及介质
CN115102903A (zh) * 2022-06-17 2022-09-23 济南浪潮数据技术有限公司 一种基于云平台的vpc设备连接方法、***、设备和介质
CN115499434A (zh) * 2022-07-29 2022-12-20 天翼云科技有限公司 跨vpc的流量转发方法
CN115412527B (zh) * 2022-08-29 2024-03-01 北京火山引擎科技有限公司 虚拟私有网络之间单向通信的方法及通信装置
CN115426313B (zh) * 2022-08-31 2023-08-18 中电云数智科技有限公司 一种基于ovn虚机网络的nat优化装置和方法
CN116155857A (zh) * 2022-12-27 2023-05-23 天翼云科技有限公司 一种云内通信方法、装置、***及设备、介质和产品
CN115913824B (zh) * 2023-02-10 2023-07-25 中航金网(北京)电子商务有限公司 跨vpc的虚拟服务器通信方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394130A (zh) * 2014-11-12 2015-03-04 国云科技股份有限公司 一种多租户虚拟网络隔离方法
CN105099779A (zh) * 2015-07-29 2015-11-25 北京京东尚科信息技术有限公司 多租户云平台架构
CN105379227A (zh) * 2013-05-07 2016-03-02 环球互连及数据中心公司 用于与多个虚拟私有云一对多连接的直接连接虚拟私有接口
CN105391771A (zh) * 2015-10-16 2016-03-09 张陵 一种面向多租户的云网络架构
CN105721306A (zh) * 2016-02-04 2016-06-29 杭州数梦工场科技有限公司 一种配置信息的传输方法和装置
CN106789367A (zh) * 2017-02-23 2017-05-31 郑州云海信息技术有限公司 一种网络***的构建方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912536B2 (en) * 2015-04-01 2018-03-06 Brocade Communications Systems LLC Techniques for facilitating port mirroring in virtual networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105379227A (zh) * 2013-05-07 2016-03-02 环球互连及数据中心公司 用于与多个虚拟私有云一对多连接的直接连接虚拟私有接口
CN104394130A (zh) * 2014-11-12 2015-03-04 国云科技股份有限公司 一种多租户虚拟网络隔离方法
CN105099779A (zh) * 2015-07-29 2015-11-25 北京京东尚科信息技术有限公司 多租户云平台架构
CN105391771A (zh) * 2015-10-16 2016-03-09 张陵 一种面向多租户的云网络架构
CN105721306A (zh) * 2016-02-04 2016-06-29 杭州数梦工场科技有限公司 一种配置信息的传输方法和装置
CN106789367A (zh) * 2017-02-23 2017-05-31 郑州云海信息技术有限公司 一种网络***的构建方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Virtual machine mapping policy based on load balancing in private cloud environment;JunJie Ni;《2011 International Conference on Cloud and Service Computing》;20120126;全文 *
基于OpenStack的私有云设计与实现;李文刚;《中国优秀硕士学位论文全文数据库信息科技辑》;20180315;第I139-289页 *

Also Published As

Publication number Publication date
CN109361764A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN109361764B (zh) 内跨vpc的服务访问方法、装置、设备及可读存储介质
US11509577B2 (en) Linking resource instances to virtual network in provider network environments
US10547463B2 (en) Multicast helper to link virtual extensible LANs
US10911398B2 (en) Packet generation method based on server cluster and load balancer
US20190342161A1 (en) Managing use of alternative intermediate destination computing nodes for provided computer networks
CN115699699B (zh) 虚拟私有云与云下数据中心通信、配置方法及相关装置
US9794116B2 (en) Managing use of intermediate destination computing nodes for provided computer networks
US9736016B2 (en) Managing failure behavior for computing nodes of provided computer networks
CA2751733C (en) Providing logical networking functionality for managed computer networks
US9432287B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
US10355991B1 (en) Managing communications using alternative packet addressing
US8725898B1 (en) Scalable port address translations
US9356860B1 (en) Managing external communications for provided computer networks
US20180375762A1 (en) System and method for limiting access to cloud-based resources including transmission between l3 and l7 layers using ipv6 packet with embedded ipv4 addresses and metadata
US10237235B1 (en) System for network address translation
CN111225071B (zh) 一种云平台及跨云平台网络互通***、方法
Kjorveziroski et al. Evaluating IPv6 Support in Kubernetes
CN114760263A (zh) 一种地址解析方法、云平台及介质
CN109787879A (zh) 一种可扩展虚拟局域网络vxlan地址聚合方法、装置和设备
Sun et al. LISP-Based Control Plane for Service Connectivity in Multi-Cluster Cloud Systems
CN116546012A (zh) 边缘云nat网关的实现方法、装置、电子设备及存储介质
CN117501664A (zh) 边缘平台管理装置、边缘平台管理装置的操作方法、以及边缘网关装置

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
GR01 Patent grant
GR01 Patent grant