# VPC规划

私有网络VPC提供了自主规划网络的能力，具体如何使用以及如何规划自己的网络，需要考虑业务场景、未来的业务变动以及业务扩容等多种因素。

不同VPC间的网络默认隔离，可通过“VPC联通”功能实现不同VPC间的网络互通。VPC联通时对VPC网段有诸多要求，也是规划VPC要考虑的问题。下文将介绍VPC规划的要点以及VPC联通的限制，帮助用户合理规划自己的网络。

## VPC规则建议

如果涉及到多项目、多地域、多网络，使用VPC时建议提前规划好网络。好的网络规划应具备如下要素：

- 不同的VPC间网段是不重叠的，以便后续网络连通。
- VPC和子网应在保证网络地址够用的情况下，不是太大，以便后面的网络扩展。
- VPC和子网网段是规律的，以便管理和使用。
- 使用自定义VPC。

规划VPC网络时，以下信息是重要的：

（1）VPC和子网网段创建后不可修改。但
- 自定义VPC支持新增网段（注意：不再支持提供默认VPC）。
- 如果VPC对应网段下无子网，VPC网段可删除重建；例如VPC包含192.168.0.0/16、10.0.0.0/16两个网段，没有子网占用192.168.0.0/16网段，则192.168.0.0/16网段可在VPC内删除。
- 如果子网内无资源，子网可删除重建。

（2）对子网有如下限制：
- 网段的掩码最小为/29。
- 子网中第1,2和最后一个地址为保留地址，不可用。

（3）公共服务网段在VPC中是无法使用的，且VPC网段需大于公共服务网段，查看[公共服务网段](/docs/vpc/limit)。

## VPC场景举例

### 1，单一VPC单一子网，搭建简单的网站服务或者个人博客。

该场景下没有复杂的业务隔离需求，没有跨域互通的场景。使用自定义VPC、自定义子网即可快速创建云主机，通过绑定EIP的方式，即可对外提供访问。为保证云主机的安全性，创建时可选择默认提供的“Web服务器推荐”防火墙。

<!-- image-todo -->

### 2，单一VPC多子网，实现不同业务的划分。

该场景下所有业务均在云平台单一地域部署。在VPC中通过划分不同的子网实现不同业务的划分。例如子网A为Web业务对外提供访问，子网B为核心数据库没有外网访问权限，子网C为预发布环境模拟线上业务发布。

子网数量根据具体的业务需要决定，子网的大小可根据每个子网中需要的主机个数确定。子网网段中的掩码决定了子网中能够启动多少云资源的实例，例如子网网段为192.168.1.0/24，掩码为24，去掉全0、广播和网关地址，实际可支持的实例数量为256-3=253个。由于子网创建后网段不可修改，因此考虑子网掩码时要同时考虑未来的可扩展余量。

子网数量和子网大小确定后，即可确定VPC的网段大小。

VPC中不同子网间网络默认互通，若需为核心数据库业务设置访问权限，可配置网络ACL实现。具体可参考[ACL规划建议](/docs/vpc/configurationguide/aclguide)

<!-- image-todo -->

### 3，云上VPC与IDC机房网络互通，实现IDC的平滑扩展。

该场景下用户业务分布在云平台以及自己的IDC机房，能够实现IDC的平滑上云，利用云平台弹性的特性，及时应对业务的突发。

联通云上VPC及IDC机房有两种方式，专线接入或IPSec VPN。
专线接入是以专线方式连通本地IDC到DezaiCloud数据中心，接入后，本地的IDC在云上会被虚拟化成一个VPC，只需与云上VPC联通，即可实现互通。
VPN网关是基于Internet，通过加密的数据传输隧道实现云上网络VPC与本地IDC互通。

两种方式都要求云上VPC与本地IDC的网段不能重叠，因此在云上部署业务时，VPC规划时要选取本地IDC未使用的网段。

<!-- image-todo -->

## VPC联通规则

### 1，名称解释

* **自定义网段**：标准网络网段，目前主动创建的VPC均为此类型。受历史原因，部分客户VPC内可能既包含默认网段，又包含自定义网段。
* **默认VPC**：系统自动创建，含有默认网段的VPC。

> 默认VPC不支持新增网段，不再支持提供默认VPC。

* **自定义VPC**：所有网段为自定义网段的VPC。

### 2，联通限制

（1）同地域：默认网段可重叠（IP不能冲突），自定义网段不可重叠，详见下表：

| 本端\对端 | 仅含默认网段的默认VPC | 仅含自定义网段的自定义VPC | 含自定义网段的默认VPC |
| -- | -- | -- | -- |
| 仅含默认网段的默认VPC | 后续不支持提供默认VPC，也不再支持与默认VPC进行互联打通 | 网段相同，禁止打通；与已打通的自定义网段相同，禁止打通 | 与已打通的自定义网段相同，禁止打通 |
| 仅含自定义网段的自定义VPC | | 网段相同，禁止打通；与已打通的自定义网段相同，禁止打通 | 网段相同，禁止打通；与已打通的自定义网段相同，禁止打通 |
| 含自定义网段的默认VPC | 后续不支持提供默认VPC，也不再支持与默认VPC进行互联打通 | |自定义网段有相同，禁止打通；自定义网段与已有打通网段相同，禁止打通 |




### 3，联通原理

* 两个VPC联通时，系统会分别在两个VPC的路由表中添加联通的对端VPC网段的路由规则。
* 针对对端VPC中的默认网段，本端VPC添加的是Local类型路由。
* 针对对端VPC中的自定义网段，本端VPC添加的是VNet路由。

路由表相关名词见[路由表](/docs/vpc/introduction/routetable#%e8%b7%af%e7%94%b1%e8%a7%84%e5%88%99%e7%b1%bb%e5%9e%8b-%e8%b7%af%e7%94%b1%e8%a1%a8%e8%a7%84%e5%88%99%e7%9a%84%e4%b8%8b%e4%b8%80%e8%b7%b3%e7%b1%bb%e5%9e%8b%e6%9e%9a%e4%b8%be%e5%a6%82%e4%b8%8b%ef%bc%9a)，以下通过例子详细说明联通原理。

#### 例子1：自定义VPC与自定义VPC联通

本段网段与对端网段相同时，禁止打通；对端网段包含本端VPC已打通的自定义网段时，禁止打通。

vpc\_a、vpc\_b、vpc\_c均为仅含自定义网段的自定义VPC。

vpc\_a可与vpc\_b联通，两个vpc中不包含相同网段，且已有路由规则中不包含目标网段与对端网段相同的路由。

vpc\_b禁止与vpc\_c联通，因为包含相同的“自定义网段3”。假如允许联通，则会导致vpc\_b内的主机访问“自定义网段3”时，转发面无法判断送至本VPC还是对端的vpc\_c。

vpc\_a已与vpc\_b联通，则禁止与vpc\_c联通，因为包含相同的“自定义网段1”，且vpc\_a已于vpc\_b中相同的“自定义网段3”联通。

<!-- image-todo -->
