目录
文章目录
VPC(虚拟私有云/网络)
VPC(Virtual Private Cloud,虚拟私有云)是一个容易让人误解的称谓,是云?是网?让人迷惑。其实,从服务的角度来看是云;而从技术的角度来看是一种网络模式。
VPC 最早由 AWS 在 2009 年提出,不过 VPC 的一些组成元素(网络、存储、计算)在其提出之前就已经存在。VPC 只是将这些元素以私有云的视角重新包装了一下,单一用户的云主机只能使用 VPC 内部的元素。所以 VPC 的本质是公有云服务商以打包的形式提供服务。
用户可以在公有云上创建一个或者多个 VPC,每个部门一个 VPC,对于需要连通的部门创建 VPC 连接。同时,用户也可以通过 VPN 将自己内部的数据中心与公有云上的 VPC 连接,构成混合云。不论哪种用例,VPC 都以更加直观形象让用户来设计如何在公有云上存放自己的数据。
AWS VPC
阿里云 VPC
OpenStack VPC
从服务的角度来看 VPC 是一种服务
云计算可分为公有云、私有云、和混合云,但 VPC 这三者都不是。
VPC 是一种运行在公有云上,将一部分公有云资源为某个用户隔离出来,给这个用户私有使用的资源的集合。它由公有云管理,但是保证每个用户之间的资源是隔离,用户在使用的时候不受到其他用户的影响,用户可以要求享受管理面、数据面、故障面的三重隔离,感觉就像是在使用自己的私有云(孤岛)一样。
VPC 有两种硬件租用模式,共享(Shared)和专属(Dedicated)。前者指 VPC 中的虚拟机运行在共享的硬件资源上;后者是指 VPC 中的虚拟机运行在专属的硬件资源上,不同 VPC 中的虚拟机在物理上是隔离的,同时 VPC 还帮助实现了网络上的隔离。专属模式相当于用户直接向公有云服务商租用物理主机,适合对数据安全比较敏感的用户。
专属 VPC 与私有云的多租户隔离有本质的区别,多租户隔离是为了 “共享” 底层基础架构的物理资源,只能做到管理面和数据面的隔离,做不到故障面的隔离(因为物力资源是共享的)。
从技术的角度来看 VPC 是一种网络模式
在 VPC 内,有多个 AZ(Available Zone,可用域)。用户可以自由定义 Subnet 划分、IP Address 和路由策略,可提供网络 ACL 及安全组的访问控制。以 AWS VPC 为例,一个 VPC 会提供一个 Internet GW,用于 NAT、LB、VxLAN Routing。还会提供一个 VPC GW,通过 IPSec VPN 接入 VPC 和企业远程上云(Cloud Onboarding)的业务。
现代的 VPC 主流都基于 VxLAN、IP in IP 或 VLAN in VLAN(QinQ)等类似的 Overlay 技术来实现。以 VxLAN 为例,能够支持 1600 万个 VPC 实例,才足以支撑云计算海量的客户增长。
Overlay 网络的核心思想是利用隧道封装协议在底层网络上构建虚拟网络,底层网络负责提供转发通道,虚拟网络作为业务网络对外呈现。虚拟网络和物理网络分层解耦,虚拟网络按需部署业务,物理网络一次性配置完成后不再变化。
简而言之,VPC 是用户专属的一个二层网络,是一个构建在 L3 之上的 L2 Overlay 网络。VPC 的数据封装与 VxLAN 之类的 Overlay 网络技术很类似,原始的二层帧,被 VPC 标签封装,之后再封装到另一个 IP 数据包内。
VPC 虽然指的是专有二层网络,但是跟网络配套的资源有很多,这些网络资源都是以 VPC 作为单位划分。定义在一个 VPC 内的网络资源,只能被这个 VPC 内的虚机使用。这些网络资源包括:Security Group、Subnet、Network ACL、Routing Table、Router。
AWS VPC
AWS VPC 拥有自己专属的 Overlay 封装技术 —— Mapping Service。
当虚机之间要通信的时候,请求先发到 Mapping Service,再由它找到目的虚机对应的信息(e.g. 目的虚机所在的主机 IP 地址),Mapping Service 用对应的信息,封装成 Overlay 网络包,再进行传输。
这里的 Mapping Service,与 SDN Controller 的作用可以说是一样的。SDN Controller 掌握了所有的网络信息,当需要进行 L2、L3 通信时,SDN Controller 会根据网络数据包下发 OpenFlow 流表,使得虚机之间直接通信。
Mapping Service 还是一个分布式的 SDN 控制器,因为每个主机上都有一个 Mapping Service 的缓存。通过这种分布式,可以实现高速运算处理。
AWS 的 VPC 类型
以 AWS VPC 为例,一般会有 2 种 GW 类型:
- IGW(Internet GW):提供互联网缺省路由、NAT、LB 等功能。
- VGW(VPC GW):提供 IPSec 互联,比如:AWS Blackfoot Edge Device 提供了 VGW IPsec 功能。
AWS 的 VPC 互联类型
相对的,VPC 的互联,一般也有两种方式:
- IGW 互联
- VGW互联
IGW 互联
通过 IGW 互联方式,客户可以跨越多个 Rejoin 部署多个不同的 VPC。
例如:VPC-A 采用 VxLAN100,VPC-B 采用 VxLAN200 进行隔离。每个 VPC 都通过自己的 IGW 来访问 Internet,都分别有自己的路由表。VPC-A、VPC-B 之间建立 VxLAN VTEP Tunnel,同时把互相的 Prefix Route 指向对方的 VxLAN Tunnel。
当 VPC-B 收到 VxLAN100 的报文时,会经过 VxLAN Routing 路由查表,找到相应的 VPC-B 里面的 Host,封装转换成 VxLAN200 发送给相应的计算实例。
具体实现方式可以有 Symmetric 和 Asymmetric 这 2 种方式。
- Symmetric:需要两个 VPC 翻译本地 VxLAN 到第三个 VxLAN VNI,带来管理和配置的复杂问题。
- Asymmetric:常用的方式,由 VPC 做本地和远端 VxLAN的 Routing。
注意,IGW 实现了 EVPN VxLAN 大二层网络,所以两个 VPC 的 Subnet 的 IP 地址池不可以重叠。
VGW 互联
VGW 互联方式通常采用了 IPSec VPN 来接入到 VPC,还可以通过BGP over IPsec提供动态路由分发。
相对的,IGW 互联方式,利用了云服务提供商的内部网络,在网络传输上不需要加密,性能比较好。
企业接入 AWS VPC 的方式
Direct Connect 接入
通过在 IXP/Colo 数据中心,通过一对儿云路由器和企业路由器上的 VLAN 接口,连接云和企业,并且支持 BGP 路由分发。可以提供高达 80Gbps 的大带宽接入。一些云公司还提供通过运营商 / IXP 的 MPLS VPN 网络接入云。
Private Link 接入
满足多个 VPC 互访要求,企业可以在 VPC 上注册一个私有链路(Private Link),在 VPC 上提供 Elastic Network Interfaces(ENI),其他 VPC 可以通过这个 ENI 以白名单方式访问对应 VPC 的资源。
IPsec VPN 接入
一般通过 IPSec 连接到 Cloud 的 VGW 上。云提供客户 CPE 的配置模版,但并不管理客户的 CPE 设备。提供大概 1Gbps 的接入带宽。
SD-WAN 接入
在没有 SD-WAN 方案之前,企业用户接入公有云 VPC 可以使用 AWS Direct Connect 方式,在 IXP/Colo(互联网交换中心)数据中心,通过 VPC 路由器和企业本地路由器上的 VLAN 接口,连接 VPC 和企业网络,但这种方式不仅价格昂贵还缺乏灵活的配置方式。
随着 SD-WAN 应用的普及,企业用户只需要简单的几步即可实现 Remote VPC 接入,极大的方便了中小企业上云。例如:
- 网上下单购买 SD-WAN 接入套餐,云公司快递发送小盒子(CPE)去分支机构或者企业总部。
- 给 CPE 上电,扫码,上网,自动注册,自动下载配置。
- 登录统一的管理平台管理 VPC 和 SD-WAN CPE 设备。
- 可配置本地流量的分流,如:访问 VPC,访问 Office365 和视频流量走不同的路径。
2018 年 7 月,微软宣布开始最新的 SD-WAN 接入方案试运行。企业用户可以通过 SD-WAN CPE 设备接入微软的不同 VPC Region,继而访问 VPC 里的各种资源,此举极大加速了分公司/个人基于云产品的 DevOps。
从上面的微软 SD-WAN 控制台可见。客户可以自行创建新的 SD-WAN Site,上线新的 SD-WAN CPE 盒子。管理 Site/Hub(微软 POP 点)之间的 VQN 连接,提供自动化 CPE 配置脚本。还能够配置统一接入策略和监控网络运行情况。
AWS Blackfoot Edge Device
注:Blackfoot,是开普敦的一种黑脚企鹅。
2008 年,为了解决云服务特性带来的网络设备控制平面的挑战,AWS 开始了定制化设计硬件设备,第一个是提供 NAT 功能的设备,称为 AWS Blackfoot Edge Device。
Blackfoot Edge Device 是一个 Edge(边缘)设备,它使得 VPC 变得异常强大,是公有云厂商的真正竞争力的所在。通过这个 Edge,AWS VPC 可以做到:
- Internet traffic:通过 Internet 与 IGW 相连。
- Direct Connect
- VPN:与私有云的 VPN 相连。
- S3/DynamoDB Endpoints:与 AWS 的其他服务相连。
有了这样的 Edge 设备,VPC 不再是孤岛,而是有了连接其他陆地的桥梁,打通了公有云、私有云、混合云网络。这里的 Edge 设备,可以看成是 VNF,AWS 需要用户在 VPC 内部手动配置路由来引流到这个 Edge 设备。