VPC(虚拟私有云)的网络规划

一、前言

虚拟私有云(Virtual Private Cloud,以下简称VPC,有的厂商也称为私有网络),是一个用户自定义的、逻辑隔离的虚拟网络环境,以提升用户云上资源的安全性,并满足不同的应用场景需求。

您可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性。用户可以通过VPC方便地管理、配置内部网络,进行安全、快捷的网络变更。同时,用户可以自定义安全组内与组间弹性云服务器的访问规则,加强弹性云服务器的安全保护。

从业务连续性的角度,大型业务系统必须支持多中心部署,例如“两地三中心”,“四地八中心”等,为此VPC的网络规划需要基于 Region 和 Zone 。

Region - 地域

地域(Region)是指物理的数据中心的地理区域。
不同Region之间的距离一般大于30公里(预防地震、战争等严重灾害),但是一般不超过1000公里(过高的网络传输延迟可能影响数据同步)。

不同地域之间的VPC完全物理隔离,不同地域之间的VPC默认不能通过内网通信,只能通过公网进行通信。

Zone - 可用区

可用区(Zone)是指同一地域内电力和网络互相独立的物理数据中心。其目标是能够保证可用区间故障相互隔离(大型灾害或者大型电力故障除外),不出现故障扩散,使得用户的业务持续在线服务。

实际上,Zone就是同一个Region(城)的多个数据中心,一般距离小于30公里,具备独立的物理机房、电力供应和网络传输,而且之间有高速数据专线。

二、VPC的核心组件

VPC有几个核心组成部分:私有网络网段、子网、路由表、接入控制列表、安全组。
VPC的基本框架如下图:

CIDR - 私有网络网段

用户在创建私有网络时,需要用 CIDR(无类别域间路由) 作为私有网络指定 IP 地址组。

私有网络CIDR支持使用如下私有网段中的任意一个:
A类:10.0.0.0/8,一个A类网络
B类:172.16.0.0/12,即172.16.0.1-172.31.255.254共16个B类网络
C类:192.168.0.0/16,即192.168.0.1-192.168.255.254共256个C类网络

Subnet - 子网

一个VPC由至少一个子网组成,VPC中的所有云资源(如云服务器、云数据库等)都必须部署在子网内,子网的 CIDR 必须在VPC的 CIDR 内。

单一VPC不能跨Region(如广州IDC)部署,但是可以划分为多个子网,并部署在不同Zone(如广州一区)
同一VPC下,不同Subnet之间默认内网互通
不同VPC之间,无论是否在同一地域,均默认内网隔离,但可通过创建对等连接实现互联互通

Router - 路由表

路由表由一系列路由规则组成,用于控制虚拟私有云内子网的出流量走向。

用户创建私有网络时,系统会自动为其生成一个默认路由表,以保证同一个私有网络下的所有子网互通
每个子网都必须关联一个路由表,但一个路由表可以关联多个子网

ACL(Access Control List) - 接入控制列表

网络 ACL 是一个子网级别的、无状态的包过滤虚拟防火墙,用于控制进出子网的数据流,可以精确到协议和端口粒度。

实际上,ACL的本质就是用于描述一个IP数据包、以太网数据帧若干特征的集合。然后根据这些集合去匹配网络中的流量,根据策略来“允许”或者“禁止”。

Secruity Group - 安全组

安全组是一种有状态的包过滤虚拟防火墙,用于控制实例级别的出入流量,为同一个VPC内具有相同安全保护需求并相互信任的云服务器提供访问策略。

系统为每个用户默认创建一个安全组,默认安全组的规则是在出方向上的数据报文全部放行,入方向访问受限,安全组内的云服务器无需添加规则即可互相访问。

三、VPC的增强组件

除了VPC路由器、子网、安全组等核心功能,通常VPC还提供一些附加技术组件,以方便租户的系统部署。

EIP(Elastic IP Address) - 弹性公网IP

弹性公网IP是可以独立购买和持有的公网IP地址资源,实现IP与服务实例分离,可以动态解绑和绑定可绑定到专有网络VPC内的ECS实例、私网SLB实例和NAT网关上。

EIP实则是一种NAT IP,位于阿里云公网网关上,通过NAT映射的方式绑定到VPC网络的ECS/SLB/NAT等实例的私网网卡上。
对于某个VPC,可以在不同Zone的子网上部署多个实例共享EIP,从而实现公网服务的主用/备用切换。

CLB(Cloud Load Balancer,CLB)- 负载均衡

CLB提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台云服务器上,扩展系统的服务能力并消除单点故障。

对等连接

对等连接是指两个VPC之间的网络连接。您可以使用私有IP地址在两个VPC之间进行通信,就像两个VPC在同一个网络中一样。
同一区域内,您可以在自己的VPC之间创建对等连接,也可以在自己的VPC与其他帐户的VPC之间创建对等连接。
不同区域间的VPC之间不能创建对等连接。

四、几个典型VPC网络的规划分析

1、AWS的私有网络实例

本VPC的CIDR网络地址块为10.0.0.0/16,包含了3个子网:

Subnet1 - 公网互联出口

  • 子网地址块为10.0.0.0/24,位于Zone A
  • 包含2个实例,分别是 1A 实例(10.0.0.5)和 1B 实例(10.0.0.6)
  • 1A实例绑定了一个IPV4公网地址(198.51.100.1),1B实例绑定了一个IPV6公网地址

Subnet2 - 内部应用

  • 子网地址块为10.0.1.0/24,位于Zone B
  • 包含1个实例,2A 实例(10.0.1.5)
  • 这个子网及其内部实例位于VPC内部,不能直接访问公网,也不能被公网直接访问

Subnet3 - 系统维护出口

  • 子网地址块为10.0.2.0/24,位于Zone C
  • 包含1个实例,3A 实例(10.0.2.5)
  • 通过 VPN 连接到企业内部网络,用于开发、维护

2、一个典型的VPC租户

  • 设置独立的互联网边界防火墙,并拥有负载均衡设备CLB,弹性地址EIP。
  • 内部子网通过ACL实现南北流量控制,安全组负责实现东西流量控制

核心VPC

  • 可以认为是一个中台系统,是一个独立的租户
  • 内部分为2个子网,分别承载数据库系统、后台逻辑

互联网VPC

  • 可以认为是某个前台系统,通过VPC边界防火墙与核心VPC互联
  • 内部分为2个子网,分别承载数据库系统、后台逻辑、前端应用

3、一个大规模的VPC租户

  • 2个Mysql数据库的子网,采用主用/备用方式,子网位于不同Zone,有利于提高业务可用性
  • 2个APP应用的子网,也是位于不同Zone,但是采用双活方案,通过 ELB 实现负载均衡
  • 独立设置NAT子网,负责保护公网出口
  • Bastion是一个堡垒机子网,为开发、维护人员提供安全接入,一般通过浏览器接入云平台门户,不需要公共IP地址,不需要代理,也不需要专门的客户端软件

参考文献