注:本文主要是参考AWS的官网的文档。
0. 前言
在本公众号的前面的文章中,简要介绍了云网络的产品,本系列云网络科普文章会详细介绍云网络产品,主要是包括私有网络、专线接入、VPN等产品,也会介绍各个云厂商的差异点。
1. VPC简介
私有网络Virtual Private Cloud (VPC)是用户构建的专属网络空间,云上的资源可以部署到虚拟网络中,和数据中心中运行的传统网络极其相似。不同私有网络间完全逻辑隔离。用户可以自定义网络环境、包括选择自己的 IP 地址范围、创建子网以及配置路由表和网络网关等,同时私有网络支持多种方式连接 Internet、连接其他 VPC、连接本地数据中心。
1.1 VPC相关基本概念
VPC CIDR: 无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。云厂商VPC的cidr 一般要求为RFC 1918中指定的私有 (非公有可路由) IP 地址范围。
同时云厂商也支持IPV6的网络地址。为了限制私有网络的IP规模,一般是支持16为的地址,例如10.0.0.0/16 或 192.168.0.0/16,为了扩大单个VPC空间的IP数目,部分云厂商支持一个VPC多个CIDR的功能,如下图,VPC从10.0.0.0/16,扩展为10.0.0.0/16和10.0.2.0/16。
子网:VPC 内的一个 IP 地址范围,子网一般从VPC CIDR内分配subnet CIDR,例如VPC的CIDR为10.0.0.0/16 ,分配给子网为10.0.0.0/24,10.0.1.0/24.
一个主要私有 IPv4 地址
一个或多个辅助私有 IPv4 地址
每个私有 IPv4 地址一个弹性 IP 地址
一个公有 IPv4 地址,可在启动实例时自动分配给 eth0 的网络接口
一个或多个 IPv6 地址
一个或多个安全组
MAC 地址
路由表:一组称为“路由”的规则,它们用于确定将网络流量发送到何处。每个子网都必须关联一个路由表,这个路由表可指定允许出站流量离开子网的可用路由,每个子网都会自动关联 VPC 的主路由表,如下图所示。
用户也可以自定义路由表和路由策略来控制流量的转发,如下图不同的路由表网络流量的转发路径不同。
网络网关:连接到 VPC 的网关,用于启用 VPC 中的资源与互联网之间的通信。例如互联网网关、NAT 设备连接VPC和互联网、VPN 连接或 Direct Connect 连接是连接VPC和用户的本地网络。
VPC 终端节点(endpoint): 将 VPC 私密地连接到支持的云服务和 VPC 终端节点服务(由 PrivateLink 提供支持),而无需互联网网关、NAT 设备、VPN 连接或 Direct Connect 连接。VPC 中的实例无需公有IP 地址便可与服务中的资源通信。
1.2 其他相关基本概念
Region:区域或者大区,之间相互隔离,实现最大程度的容错能力和稳定性。
Availability Zones:每个区域都有多个相互隔离的位置,称为可用区。当启动实例时,用户可以自己选择一个可用区。如果实例分布在多个可用区且其中的某个实例发生故障,则可对应用程序进行相应设计,以使另一可用区中的实例可代为处理相关请求。
Local Zones:目前AWS支持Local Zones。本地区域是在地理上靠近用户的 AWS 区域的扩展。本地区域 拥有自己的 Internet 连接并支持 AWS Direct Connect,因此在 本地区域中创建的资源可以为本地用户提供超低延迟的通信。
2 VPC通信场景
本章节主要介绍VPC的通信的场景。
2.1 VPC内部互通
默认情况下,同VPC下的子网的子机是可以互通。例如VPC的10.0.0.0/16的子网10.0.0.0/24,10.0.1.0/24关联的路由表会有一个目的网段为10.0.0.0/16, Target为Local的路由策略。
可以配置安全组和ACL使得同VPC的机器之间不互通。
2.2 VPC间互通
2.2.1 对等连接
VPC 对等连接是两个 VPC 之间的网络连接,通过此连接,用户可以使用私有 IPv4 地址或 IPv6 地址在两个 VPC 之间路由流量。这两个 VPC 中的实例可以彼此通信,就像它们在同一网络中一样。用户可以在自己的 VPC 之间创建 VPC 对等连接,或者在自己的 VPC 与其他账户中的 VPC 之间创建连接。VPC 可位于不同区域(Region)内。
2.2.2 transit gateway或者云联网
AWS的 transit gateway是网络中转中心,可用它来互连 Virtual Private Cloud (VPC) 和本地网络。阿里云类似的产品为云企业网,腾讯云类似的产品为云联网。AWS Transit Gateway简介,阿里云云企业网产品和实现剖析,腾讯云云联网产品和实现剖析。
transit gateway互通
每个 VPC 具有一个路由表,并且Transit Gateway具有一个路由表。
vpc路由表
每个 VPC 具有一个包含 2 个条目的路由表。第一个条目是 VPC 中本地 IPv4 路由的默认条目;此条目允许此 VPC 中的实例相互通信。第二个条目将所有其他 IPv4 子网流量路由到Transit Gateway。
默认路由,其中启用了路由传播。
阿里云云企业网互通
腾讯云云联网互通
2.3 访问Internet
2.3.1 Internet 网关
此场景的配置包含一个有单一公有子网的 Virtual Private Cloud (VPC),以及一个 Internet 网关以启用 Internet 通信。
2.3.2 NAT网关
公有子网中的实例可直接将出站流量发往 Internet,私有子网中的实例可使用位于公有子网中的网络地址转换 (NAT) 网关访问 Internet。例如,公有子网运行面向公众的 Web 应用程序,数据库服务器则位于私有子网之内和不想暴露后端服务,这样数据库服务器可以使用 NAT 网关连接到 Internet 进行软件更新,但 Internet 不能建立到数据库服务器的连接。
2.4 访问本地网络
2.4.1 VPN连接
站点到站点VPN连接由云端的虚拟私有网关或中转网关与位于数据中心的客户网关设备之间的两条 VPN 隧道组成。客户网关设备是站点到站点VPN连接在用户这一端配置的实体设备或软件设备。
2.4.2 专线接入
Direct Connect 通过标准的以太网光纤电缆将用户的内部网络链接到 Direct Connect 位置。电缆的一端接到用户的路由器,另一端接到 Direct Connect 路由器。有了此连接以后,用户就可以创建直接连接到云上服务,从而绕过网络路径中的 Internet 服务提供商。目前云厂商一般是支持两种接入,一种是用户直接连接到云厂商的专线接入点,另外一种是用户连接到云厂商的Partner,再由Partner连接到云厂商的专线接入点。
2.4.3 SD_WAN接入服务
SD-WAN 接入服务(SD-WAN Access Service)助力多分支轻松实现与云、数据中心的任意互联,具有即插即用、全球覆盖、智能管控等特性,为企业多分支提供更简单、可靠、智能的一站式的上云体验。
AWS的SD-WAN是把合作伙伴的SD-WAN服务部署在VPC的机器中并且提供transit Gateway和云网络的其他实例互通,阿里云和腾讯云会单独的售卖SD-WAN设备。
其中,Edge 设备为硬件设备形态,在用户 IDC、分支和门店安装 Edge 设备后,可自动与云网络连接。
注:本章节主要使用aws的云服务进行介绍。
把VPC的子网分配到local zone中,可以在靠近最终用户的地理位置运行各种云服务。本地区域具有本地 Internet 出入口,以降低延迟。本地区域还支持 Direct Connect,使用户有机会通过专用网络连接路由流量。
AWS Outposts 是一项完全托管的服务,可提供相同的云基础设施、云服务、API 和工具到几乎任何数据中心、主机托管空间或本地设施,以实现真正一致的混合体验。
Outposts提供一套云的硬件和服务,对于私有网络VPC是分配子网到Outposts中,其中有两种互通模型,一种是专线接入,另外一种是提供internel互通。
专线模式
internet模式
Wavelength 可以将 AWS 标准计算和存储服务部署到电信运营商的 5G 网络边缘。开发人员可以将 Amazon Virtual Private Cloud (VPC) 扩展到一个或多个 Wavelength 区域,然后使用 Amazon Elastic Compute Cloud (EC2) 实例等 AWS 资源来运行需要超低延迟并连接到区域中的 AWS 服务的应用程序。
2.6 PrivateLink 和 VPC endponit
VPC 终端节点使用户能够将 VPC 私密地连接到支持的云服务和 VPC 终端节点服务(由PrivateLink 提供支持),而无需互联网网关、NAT 设备、VPN 连接或Direct Connect 连接。VPC 中的实例无需公有 IP 地址便可与服务中的资源通信。VPC 和其他服务之间的通信不会离开云网络。例如云服务商提供的DNS服务,可以不需要通过访问Internel的DNS服务,可以在云服务商的内部环境完成DNS服务的访问。
2.6.1 VPC Endpoint
通过VPC终端节点可在用户的 VPC 与云服务以及由 PrivateLink 支持的 VPC 终端节点服务之间建立私有连接。
Interface endpoints:一个弹性网络接口,具有来自子网 IP 地址范围的私有 IP 地址,用作发送到受支持的服务的通信的入口点。
子网 1 中的实例可以使用其默认 DNS 名称,通过 AWS 区域中的公有 IP 地址空间与 Amazon Kinesis Data Streams 通信。
在上图中,为终端节点启用私有 DNS。任一子网中的实例都可以使用默认的 DNS 主机名或特定于终端节点的 DNS 主机名,通过接口终端节点向 Amazon Kinesis Data Streams 发送请求。
Gateway Load Balancer endpoints:是一个网关,作为在路由表中指定的路由的目标,用于发往受支持的云服务的流量,例如AWS的Amazon S3,DynamoDB,腾讯云的COS,CDB等服务。
子网 2 中的实例可通过网关终端节点访问 Amazon S3
2.6.2 PrivateLink
服务提供方在 VPC 中创建自己的应用程序并将其配置为 PrivateLink 支持的服务(也称作终端节点服务)。其他用户可以使用接口VPC终端节点,在他们的 VPC 和你的终端节点服务之间创建连接。
PrivateLink 服务提供商配置在其 VPC 中运行服务的实例,并以 Network Load Balancer 为前端。将区域内 VPC 对等连接(VPC 在同一区域中)和区域间 VPC 对等连接(VPC 在不同的区域中)与 PrivateLink 结合使用,可允许跨 VPC 对等连接对使用者进行私有访问。
3. 云厂商VPC的对比
对于VPC,主流的云厂商基本上的功能和实现类似。在VPC的连接方面,云厂商的基本功能也类似,细节有细微的产品,产品的能力有部分差异。
3.1 私有网络的差别
Google Cloud Platform(GCP)
的私有网络和其他云厂商有差别。
GCP VPC的特点
VPC 网络(包括其关联的路由和防火墙规则)属于全球性资源,它们与任何特定地区或区域均无关联。
子网属于地区性资源。每个子网都会定义一个 IP 地址范围。
3.2 专线接入的差别
国内的云厂商阿里云和腾讯云等会支持专线接入的静态路由和BGP动态路由,AWS只支持BGP动态路由。而专线接入也有是否支持NAT的差别。
3.3 transit gateway或者云联网
目前transit gateway是负责本地网络实例的连接和互通,跨地域需要借助transit gateway peering,而腾讯云的云联网,阿里云的云企业网可以支持不同地域的网络实例连接和互通。在路由控制方便,AWS的使用多路由表,控制粒度更细。
3.4 SD-WAN接入服务
AWS的SD-WAN是把合作伙伴的SD-WAN服务部署在VPC的机器中并且提供transit Gateway和云网络的其他实例互通,阿里云和腾讯云会单独的售卖SD-WAN设备。
4. 总结和展望
私有网络VPC作为IAAS层基础设施之一,类似高速公里或高铁的在国民经济的作用,一直在不断的追求高速上云,全球互联的愿景,而云上私有网络VPC的发展是云基础设施和服务不断的扩张和完善的真实写照。相信未来私有网络VPC也能继续的扩展新的应用场景和服务,助力云上和云下的服务的高效智能的互联互通。
参考文献
AWS VPC
https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html
GCP VPC
https://cloud.google.com/vpc/docs/vpc
https://amazonaws-china.com/cn/iot-core/
AWS IoT Greengrass
https://amazonaws-china.com/cn/greengrass/
AWS Snowball
https://amazonaws-china.com/cn/snowball/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc
https://docs.aws.amazon.com/zh_cn/vpc/latest/tgw/what-is-transit-gateway.html
阿里云云企业网
https://help.aliyun.com/product/59006.html
阿里云智能接入网关
https://help.aliyun.com/product/68086.html?spm=a2c4g.11186623.6.540.44636d553D8d6b
https://cloud.tencent.com/document/product/877