VPC详解

简介
私有网络(VPC)
私有网络是针对公有云的基础网络(经典网络)来定义的一种概念。

VPC(Virtual Private Cloud)是公有云上自定义的逻辑隔离网络空间,是一块可我们自定义的网络空间,与我们在数据中心运行的传统网络相似,托管在VPC内的是我们在私有云上的服务资源,如云主机、负载均衡、云数据库等。我们可以自定义网段划分、IP地址和路由策略等,并通过安全组和网络ACL等实现多层安全防护。同时也可以通过VPN或专线连通VPC与我们的数据中心,灵活部署混合云。

VPC主要是一个网络层面的功能,其目的是让我们可以在云平台上构建出一个隔离的、自己能够管理配置和策略的虚拟网络环境,从而进一步提升我们在AWS环境中的资源的安全性。我们可以在VPC环境中管理自己的子网结构,IP地址范围和分配方式,网络的路由策略等。由于我们可以掌控并隔离VPC中的资源,因此对我们而言这就像是一个自己私有的云计算环境。

我们可以通过VPC及其他相关的云服务来把企业自己的数据中心与其在云上的环境进行集成,构成一个混合云的架构。

使用私有网络的好处
1) 灵活部署:自定义网络划分、路由规则,配置实施立即生效
2) 安全隔离:100%逻辑隔离的网络空间,我的地盘听我的
3) 丰富接入:支持公网VPN接入和专线接入
4) 访问控制:精确到端口的网络控制,满足金融政企的安全要求

应用场景
安全网络
通过 VPC 网络构建起具有严格安全访问控制的网络,同时兼顾核心数据的安全隔离和来自公网访问的有效接入。用户可以将处理核心数据和业务的核心服务器或数据库系统部署在公网无法访问的子网中,而将面向公网访问的web服务器部署于另一个子网环境中,并将该子网设置与公网连接。在 VPC 网络中,用户可以通过子网间的访问控制来实现对核心数据和业务服务器的访问控制,在确保核心数据安全可控的同时满足公网的访问需求。

混合云网络
通过 VPC 网络提供的隧道或 VPN 服务,建立一套安全高效的网络连接。在 VPC 中部署 Web 应用,通过分布式防火墙获得额外的隐私保护和安全性。用户可以创建防火墙规则,使 Web 应用响应 HTTP/HTTPS 等请求的同时拒绝访问 Internet,以此巩固网站的安全保护,从而实现部署于公有云上的应用与部署在自有数据中心的业务之间的互联互通,构建混合云的架构。

托管网站
通过 VPC 网络提供的目的地址 NAT 功能,实现无 EIP 的安全访问互联网。

解决网络瓶颈
通过 VPC 网络提供的隧道/VPN/专线服务,方便将企业应用部署到云中。

灾难恢复
通过 VPC 网络提供的隧道/VPN/专线服务,方便构建灾备环境。

私有网络(VPC)与基础网络(经典网络)的区别
经典网络:公有云上所有用户共享公共网络资源池,用户之间未做逻辑隔离。用户的内网IP由系统统一分配,相同的内网IP无法分配给不同用户。

VPC:是在公有云上为用户建立一块逻辑隔离的虚拟网络空间。在VPC内,用户可以自由定义网段划分、IP地址和路由策略,安全可提供网络ACL及安全组的访问控制,因此,VPC有更高的灵活性和安全性。
经典网络和VPC的架构对比图:

对比可以看到,VPC优势明显,通过VPC,用户可以自由定义网段划分、IP地址和路由策略;安全方面,VPC可提供网络ACL及安全组的访问控制,VPC灵活性和安全性更高。可适用于对安全隔离性要求较高的业务、托管多层web应用、弹性混合云部署等使用场景中,符合金融、政企等行业的强监管、数据安全要求。

基础网络与私有网络是云上的两种网络模式,用户未标注为VPC网络的云资源均部署在基础网络中。

路由器和交换机
路由器(VRouter)是专有网络的枢纽。作为专有网络中重要的功能组件,它可以连接VPC内的各个交换机,同时也是连接VPC和其他网络的网关设备。每个专有网络创建成功后,系统会自动创建一个路由器。每个路由器关联一张路由表。更多信息,参见路由。

交换机(VSwitch)是组成专有网络的基础网络设备,用来连接不同的云产品实例。创建专有网络之后,您可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。您可以将应用部署在不同可用区的交换机内,提高应用的可用性。


私网地址范围
在创建专有网络和交换机时,您需要以CIDR地址块的形式指定专有网络使用的私网网段。关于CIDR的相关信息,参见维基百科上的Classless Inter-Domain Routing条目说明。也可参考文末。

您可以使用下表中标准的私网网段及其子网作为VPC的私网地址。专有网络创建成功之后,无法修改网段。建议使用比较大的网段,尽量避免后续扩容。

网段 可用私网IP数量 (不包括系统保留)
192.168.0.0/16 65532
172.16.0.0/12 1048572
10.0.0.0/8 16777212
交换机的网段不能和所属的专有网络的网段重叠,可以是其子集或者相同,网段大小在16位网络掩码与29位网络掩码之间。

 

经典网络用户如何平滑迁移
对于已经在经典网络内有较多云主机的客户如何实现经典网络和VPC之间的平滑迁移呢?


AWS(classiclink)和腾讯云(基础网络互通)都提供了平滑过渡方案,可以将经典网络内的云服务器关联至指定VPC,使经典网络中的云服务器可以与VPC内的云服务器、数据库等云服务通信。

VPC网络规划
问题一 应该使用几个VPC
单个VPC
如果您没有多地域部署系统的要求且各系统之间也不需要通过VPC进行隔离,那么推荐使用一个VPC。目前,单个VPC内运行的云产品实例可达15000个,这样的容量基本上可以满足您的需求。


说明:可用区是指在同一地域内,电力和网络互相独立的物理区域,在同一地域内可用区与可用区之间内网互通

多个VPC
如果您有如下任何一个需求,推荐您使用多个VPC。

多地域部署系统

VPC是地域级别的资源,是不能跨地域部署的。当您有多地域部署系统的需求时,就必然需要使用多个VPC。基于阿里巴巴骨干网构建的高速通道产品能轻松实现跨地域,跨国VPC间的互通。详情参考高速通道VPC互通。


多业务系统隔离

如果在一个地域的多个业务系统需要通过VPC进行严格隔离,比如生产环境和测试环境,那么也需要使用多个VPC,如下图所示。

问题二 应该使用几个交换机
首先,即使只使用一个VPC,也尽量使用至少两个交换机,并且将两个交换机分布在不同可用区,这样可以实现跨可用区容灾。

同一地域不同可用区之间的网络通信延迟很小,但也需要经过业务系统的适配和验证。由于系统调用复杂加上系统处理时间、跨可用区调用等原因可能产生期望之外的网络延迟。建议您进行系统优化和适配,在高可用和低延迟之间找到平衡。

其次,使用多少个交换机还和系统规模、系统规划有关。如果前端系统可以被公网访问并且有主动访问公网的需求,考虑到容灾可以将不同的前端系统部署在不同的交换机下,将后端系统部署在另外的交换机下。

问题三 应该选择什么网段
在创建VPC和交换机时,您必须以无类域间路由块 (CIDR block) 的形式为您的专有网络划分私网网段。

VPC网段
您可以根据以下建议规划VPC网段。

网段 可用私网IP数量 (不包括系统保留)
192.168.0.0/16 65532
172.16.0.0/12 1048572
10.0.0.0/8 16777212
注意:VPC创建成功后,网段无法再修改。
您可以使用下表中标准的私网网段及其子网作为VPC的私网地址范围。

如果有多个VPC,或者有VPC和线下IDC构建混合云的需求,建议使用上面这些标准网段的子网作为VPC的网段,掩码建议不超过16位。

如果云上只有一个VPC并且不需要和本地IDC互通时,可以选择上表中的任何一个网段或其子网。

VPC网段的选择还需要考虑到是否使用了经典网络。如果您使用了经典网络,并且计划将经典网络的ECS实例和VPC网络连通,那么,建议您选择非10.0.0.0/8作为VPC的网段,因为经典网络的网段也是10.0.0.0/8。

交换机网段
您可以根据以下建议规划交换机网段。同样,交换机创建成功后,网段无法再修改。

交换机的网段的大小在16位网络掩码与29位网络掩码之间,可提供8-65536个地址。16位掩码能支持65532个ECS实例,而小于29位掩码又太小,没有意义。

交换机的网段可以和其所属的VPC网段相同,或者是其VPC网段的子网。比如VPC的网段是192.168.0.0/16,那么该VPC下的虚拟交换机的网段可以是192.168.0.0/16,也可以是192.168.0.0/17一直到192.168.0.0/29。

注意:如果您的交换机网段和所属VPC网段相同,您在该VPC下只能创建一台交换机。
每个交换机的第一个和最后三个IP地址为系统保留地址。以192.168.1.0/24为例,192.168.1.0、 192.168.1.253、192.168.1.254和192.168.1.255这些地址是系统保留地址。

ClassicLink功能允许经典网络的ECS和192.168.0.0/16,10.0.0.0/8,172.16.0.0/12这三个VPC网段的ECS通信。例如,如果要和经典网络通信的VPC网段是10.0.0.0/8,则要和经典网络ECS通信的交换机的网段必须是10.111.0.0/16。详情参考ClassicLink。

交换机网段的确定还需要考虑该交换机下容纳ECS的数量。

问题四 VPC与VPC互通或者与本地数据中心互通时,如何规划网段
如下图所示,比如您在华东1、华北2、华南1三个地域分别有VPC1、VPC2和VPC3三个VPC。VPC1和VPC2通过高速通道内网互通,VPC3目前没有和其他VPC通信的需求,将来可能需要和VPC2通信。另外,您在上海还有一个自建IDC,需要通过高速通道(专线功能)和华东1的VPC1私网互通。

此例中VPC1和VPC2使用了不同的网段,而VPC3暂时没有和其他VPC互通的需求,所以VPC3的网段和VPC2的网段相同。但考虑到将来VPC2和VPC3之间有私网互通的需求,所以两个VPC中的交换机的网段都不相同。VPC互通要求互通的交换机的网段不能一样,但VPC的网段可以一样。

在多VPC的情况下,建议遵循如下网段规划原则:

尽可能做到不同VPC的网段不同,不同VPC可以使用标准网段的子网来增加VPC可用的网段数。

如果不能做到不同VPC的网段不同,则尽量保证不同VPC的交换机网段不同。

如果也不能做到交换机网段不同,则保证要通信的交换机网段不同。

各家VPC对比
目前,VPC也是各大云厂商正在力推的网络方案。AWS、阿里云、腾讯云等官网对VPC都有详细的介绍:

总的来说,AWS和腾讯云的评分最高,能支持弹性网卡、VPN服务、网络ACL等多项服务,很大程度上降低了用户使用VPC时的技术门槛,让复杂的VPC配置变得更加简便、安全、灵活。

同时,从腾讯云的官网说明看,腾讯云还支持外网IP直通、子网广播和组播、专线NAT功能,这些是目前公有云市场的独家服务。

AWS VPC相关

CIDR概述及其地址块计算
CIDR中文全称是无分类域间路由选择,英文全称是Classless Inter-Domain Routing,在平常,大家多称之为无分类编址,它也是构成超网的一种技术实现。CIDR在一定程度上解决了路由表项目过多过大的问题。CIDR之所以称为无分类编址,就是因为CIDR完全放弃了之前的分类IP地址表示法,它真正消除了传统的A类、B类、C类地址以及划分子网的概念,它使用如下的IP地址表示法:

IP地址 ::= {<网络前缀>, <主机号>} / 网络前缀所占位数

CIDR仅将IP地址划分为网络前缀和主机号两个部分,可以说又回到了二级IP地址的表示,不过大家要注意,最后面用“/”斜线分隔,在其后写上了网络前缀所占的位数,这样就不需要告知路由器地址掩码,仅需要通过网络前缀所占的位数就可以得到地址掩码,为了统一,CIDR中的地址掩码依然称为子网掩码。

CIDR表示法给出任何一个IP地址,就相当于给出了一个CIDR地址块,这是由连续的IP地址组成的,所以CIDR表示法构成了超网,实现了路由聚合,即从一个IP地址就可以得知一个CIDR地址块。例如:已知一个IP地址是:128.14.35.7/20,那么这个已知条件告诉大家的并不仅仅是一个IP地址这么简单,我们来分析一下。

128.14.35.7/20 = 10000000 00001110 00100011 00000111

即前20位是网络前缀,后12位是主机号,那么我们通过令主机号分别为全0和全1就可以得到一个CIDR地址块的最小地址和最大地址,即

最小地址是:128.14.32.0 = 10000000 00001110 00100000 00000000
最大地址是:128.14.47.255 = 10000000 00001110 00101111 11111111
子网掩码是:255.255.240.0 = 11111111 11111111 11110000 00000000

因此就可以看出来,这个CIDR地址块可以指派(47-32+1)*256=4096个地址,这里没有把全0和全1除外。

CIDR子网划分
在CIDR表示法中也可以进行进一步的子网划分,和前面的子网划分类似,我们只需要从主机号中借走一定的位数即可,这里与前面的基本子网划分不同,借走2位时可以划分成4个子网,不用减2,其他位数类似。下面通过一个例子来讲解CIDR中的子网划分。

例:某个机构拥有一个大的CIDR地址块,即206.0.64.0/18,现在某个高校需要申请一个较大的CIDR地址块以供学校使用,学校内部又分为4个系,由于每个系的人数不一样,所以要给人数较多的系分配较多的IP地址,人数较少的系分配较少的IP地址,现在采用以下的分配方案:

机构分配给该高校一个CIDR地址块:206.0.68.0/22,然后该高校内部的分配方案如下:

一系:206.0.68.0/23,一系内部又分为206.0.68.0/25、206.0.68.128/25、206.0.69.0/25和206.0.69.128/25四个子网。
二系:206.0.70.0/24,二系内部又分为206.0.70.0/26、206.0.70.64/26、206.0.70.128/26和206.0.70.192/26四个子网。
三系:206.0.71.0/25,三系内部又分为206.0.71.0/26和206.0.71.64/26两个子网。
四系:206.0.71.128/25,四系内部又分为206.0.71.128/26和206.0.71.192/26两个子网。

请分析以上方案划分的具体细节。

答:这是一个CIDR子网划分中比较复杂的例子,如果大家能分析透彻这个例子,那么对于CIDR的子网划分的计算就基本不在话下了。

我们一步一步来讨论:

第一,这个机构拥有的地址块是206.0.64.0/18 =206.0.0100 0000.0000 0000/18,网络前缀是18位,所以其

最小地址是:206.0.64.0/18 = 206.0.0100 0000.0000 0000/18
最大地址是:206.0.127.255/18 = 206.0.0111 1111.1111 1111/18
子网掩码是:255.255.192.0/18 = 1111 1111.1111 1111.1100 0000.0000 0000/18
拥有的地址数:(127-64+1)*(255-0+1)=16384

然后,我们来看一下这个机构给该高校分配的CIDR地址块,即206.0.68.0/22,由此可以看出来网络前缀由18增加到了22,所以该机构相当于将其CIDR地址块划分成了16个子块即子网,然后给该高校了第二个子网,即206.0.0100 0100.0/22,黑色加粗的部分是原来的网络前缀,后面红色部分类似于前面介绍的子网号,由于是4位,所以可以从0000~1111,共16个子网,0001自然就是第二个子网。

第二,既然高校拥有了机构的第二个子网的CIDR地址块206.0.68.0/22 = 206.0.0100 0100.0/22,其网络前缀是22位,所以其

最小地址是:206.0.68.0/22 = 206.0.0100 0100.0000 0000/22
最大地址是:206.0.71.255/22 = 206.0.0100 0111.1111 1111/22
子网掩码是:255.255.252.0/22 = 1111 1111.1111 1111.1111 1100.0000 0000/22
拥有的地址数:(71-68+1)*(255-0+1)=1024

然后该高校内部又对这个CIDR地址块进行了划分,进一步得到了高校内部的子网,紧接着我们来看看一系的CIDR地址块是怎么得到的。

第三,一系的CIDR地址块是206.0.68.0/23,可以看出来其网络前缀相对于高校的CIDR地址块来说增加了1位,说明高校首先将其CIDR地址块划分成了2个子网,其中一个给了一系。那么这两个子网分别是:一系的:206.0.68.0/23 = 206.0.0100 0100.0/23和剩余的(记为余1):206.0.70.0/23 =206.0.0100 0110.0/23,注意其中的红色部分就是新增的这一位,用来标志两个子网。

那么,一系的
最小地址是:206.0.68.0/23 = 206.0.0100 0100.0000 0000/23
最大地址是:206.0.69.255/23 = 206.0.0100 0101.1111 1111/23
子网掩码是:255.255.254.0/23 = 1111 1111.1111 1111.1111 1110.0000 0000/23
拥有的地址数:(69-68+1)*(255-0+1)=512

余1的
最小地址是:206.0.70.0/23 = 206.0.0100 0110.0000 0000/23
最大地址是:206.0.71.255/23 = 206.0.0100 0111.1111 1111/23
子网掩码是:255.255.254.0/23 = 1111 1111.1111 1111.1111 1110.0000 0000/23
拥有的地址数:(71-70+1)*(255-0+1)=512

现在,一系的CIDR地址块已经很明确,然后一系内部又进行了划分,即又分为206.0.68.0/25、206.0.68.128/25、206.0.69.0/25和206.0.69.128/25四个子网,网络前缀从23位变成了25位,相当于占用了主机号两位,所以可以划分为4个子网,分别对应00、01、10、11这四个子网,这四个子网的最小地址、最大地址以及子网掩码和拥有的地址数按照上述的方法就可以得到,这个比较简单,建议大家可以自己手动计算一下,正好看看自己掌握了多少,这里就不再给出这四个子网的细节。

第四,一系明确以后,就要考虑其他系的划分,可以看到二系分配到的CIDR地址块是206.0.70.0/24,可以看出来其网络前缀相对于余1的CIDR地址块来说增加了1位,说明余1的CIDR地址块被划分成了2个子网,其中一个给了二系。那么这两个子网分别是:二系的:206.0.70.0/24 = 206.0.0100 0110.0/24和剩余的(记为余2):206.0.71.0/24 =206.0.0100 0111.0/24,注意其中的红色部分就是新增的这一位,用来标志两个子网。

那么,二系的
最小地址是:206.0.70.0/24 = 206.0.0100 0100.0000 0000/24
最大地址是:206.0.70.255/24 = 206.0.0100 0100.1111 1111/24
子网掩码是:255.255.255.0/24 = 1111 1111.1111 1111.1111 1111.0000 0000/24
拥有的地址数:(70-70+1)*(255-0+1)=256

余2的
最小地址是:206.0.71.0/24 = 206.0.0100 0111.0000 0000/24
最大地址是:206.0.71.255/24 = 206.0.0100 0111.1111 1111/24
子网掩码是:255.255.255.0/24 = 1111 1111.1111 1111.1111 1111.0000 0000/24
拥有的地址数:(70-70+1)*(255-0+1)=256

现在,二系的CIDR地址块已经很明确,然后二系内部又进行了划分,即又分为206.0.70.0/26、206.0.70.64/26、206.0.70.128/26和206.0.70.192/26四个子网,网络前缀从24位变成了26位,相当于占用了主机号两位,所以可以划分为4个子网,分别对应00、01、10、11这四个子网,这四个子网的最小地址、最大地址以及子网掩码和拥有的地址数按照上述的方法就可以得到,这个比较简单,建议大家可以自己手动计算一下,正好看看自己掌握了多少,这里就不再给出这四个子网的细节。

第五,二系明确以后,就要考虑其他系的划分,可以看到三系分配到的CIDR地址块是206.0.71.0/25,而四系分配到的CIDR地址块是206.0.71.128/25,可以看出来其网络前缀相对于余2的CIDR地址块来说增加了1位,说明余2的CIDR地址块被划分成了2个子网,其中一个给了三系,另外一个给了四系。那么这两个子网分别是:三系的:206.0.71.0/25 = 206.0.71.0000 0000/25和四系的:206.0.71.128/25 = 206.0.71.1000 0000/25,注意其中的红色部分就是新增的这一位,用来标志两个子网。

那么,三系的
最小地址是:206.0.71.0/25 = 206.0.0100 0100.0000 0000/25
最大地址是:206.0.71.127/25 = 206.0.0100 0100.0111 1111/25
子网掩码是:255.255.255.128/25 = 1111 1111.1111 1111.1111 1111.1000 0000/25
拥有的地址数:(71-71+1)*(127-0+1)=128

四系的
最小地址是:206.0.71.128/25 = 206.0.0100 0100.1000 0000/25
最大地址是:206.0.71.255/25 = 206.0.0100 0100.1111 1111/25
子网掩码是:255.255.255.128/25 = 1111 1111.1111 1111.1111 1111.1000 0000/25
拥有的地址数:(71-71+1)*(255-128+1)=128

现在,三系和四系的CIDR地址块已经很明确,到目前为止,该高校已经将所有的CIDR地址块分配给了四个系,一系有512个地址,二系有256个地址,三系和四系各有128个地址。然后三系内部又进行了划分,即又分为206.0.71.0/26和206.0.71.64/26两个子网,网络前缀从25位变成了26位,相当于占用了主机号一位,所以可以划分为2个子网,分别对应0、1这两个子网,同时,四系内部也又进行了划分,即又分为206.0.71.128/26和206.0.71.192/26两个子网,网络前缀从25位变成了26位,相当于占用了主机号一位,所以可以划分为2个子网,分别对应0、1这两个子网,三系和四系各自的两个子网的最小地址、最大地址以及子网掩码和拥有的地址数按照上述的方法就可以得到,这个比较简单,建议大家可以自己手动计算一下,正好看看自己掌握了多少,这里就不再给出这些子网的细节。

最后,我用一副图来展示下这个划分过程。

 

总之,目前已经广泛使用CIDR表示法,之前的分类方法和子网划分已经很少使用,所以大家要重点掌握CIDR表示法及其子网划分,了解以前的基本分类和划分方法即可。

aws的vpc配置步骤
向导模式

选择带有公网和私网的vpc

输入名称 选择相关可用区就可以

单步模式

新建vpc网段

划分为public部分和private部分

新建internet网关

新建nat网关

编辑public子网的路由表加入internet网关 0.0.0.0/0
编辑private子网的路由表加入nat网关 0.0.0.0/0

申请弹性ip绑定到nat网关

S3可以挂到privte子网

参考文献:
https://blog.csdn.net/dan15188387481/article/details/49873923
https://yunlongs.cn/wordpress/?p=302

posted @ 2021-12-27 10:57  星火撩原  阅读(738)  评论(0编辑  收藏  举报