华为云VPC专有网络网站服务器网络架构规划完全指南
1. 引言:为什么需要认真规划VPC网络架构
在云计算环境中部署网站服务器,网络架构的规划往往决定了整个系统的安全性、可用性和可扩展性。华为云虚拟私有云(Virtual Private Cloud,VPC)作为云上资源的逻辑隔离网络环境,为网站服务器提供了最基础的网络底座。然而,很多开发者在创建VPC时仅仅使用了默认配置,随着业务增长,网络冲突、安全漏洞、性能瓶颈等问题便会接踵而至。
一个精心规划的VPC网络架构,应该能够在项目初期就考虑到未来三到五年的业务扩展需求,包括服务器规模的增长、可用区级别的容灾、混合云互联的可能性等。本文将从网段规划、子网设计、路由策略、安全防护、负载均衡、混合云连接等维度,系统性地讲解如何为网站服务器规划一套健壮、安全、可扩展的华为云VPC网络架构。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
2. VPC核心概念与网段规划原则
2.1 什么是VPC
虚拟私有云VPC是华为云上为用户提供的逻辑隔离的、由用户自主配置和管理的虚拟网络环境。VPC基于隧道网络技术在物理网络之上构建了逻辑隔离层,允许用户在公共云基础设施上通过软件逻辑划分出完全隔离、专属的虚拟网络。VPC内可以自由定义网段划分(子网)、路由策略(路由表),以及针对实例级别的访问控制(安全组)和子网级别的访问控制(网络ACL)。VPC之间的网络默认是完全隔离的,这种租户级隔离机制天然防范了跨VPC的网络攻击。
2.2 VPC支持的网段范围
华为云VPC支持以下三类私有IPv4地址范围作为VPC的网段:
- 10.0.0.0/8~24(掩码长度8~24)
- 172.16.0.0/12~24(掩码长度12~24)
- 192.168.0.0/16~24(掩码长度16~24)
在选择VPC网段时,建议遵循以下核心原则:
第一,规避与本地网络和公网的路由冲突。云上VPC必须被视为企业整体网络的一个延伸部分,而不是一个孤岛。在规划网段时,必须确保不会与已有的本地数据中心网络或办公室网络的IP地址范围发生重叠。如果计划通过VPN或云专线连接线下IDC,VPC子网网段和IDC内的网段绝对不能重叠。
第二,预留足够的IP地址空间用于后续扩展。VPC创建后网段仍可调整(通过添加扩展网段),但子网一旦创建便不支持修改网段。因此建议VPC的掩码长度不超过16,为将来子网扩展预留充足的空间。
第三,避免使用与其他VPC冲突的网段。如果业务涉及多个VPC之间的对等连接或通过云连接互通,各VPC的网段必须互不重叠。
2.3 推荐的网段规划策略
对于大多数网站服务器场景,推荐使用10.0.0.0/16作为VPC的主网段。这个网段提供了65534个可用IP地址,足以支撑数千台服务器的规模。如果业务涉及多环境隔离(如开发、测试、生产环境各一个VPC),可以按如下方式规划:
生产环境VPC:10.0.0.0/16
测试环境VPC:10.1.0.0/16
开发环境VPC:10.2.0.0/16如果企业已有线下IDC使用了10.0.0.0/8网段,则云上VPC应改用172.16.0.0/12或192.168.0.0/16范围内的网段以避免冲突。
3. 子网规划:分层架构的设计艺术
3.1 子网的基本概念
子网是VPC内的IP地址块,可以将VPC的网段分成若干块。VPC中的所有云资源(如弹性云服务器ECS、云数据库RDS、云容器等)都必须部署在子网内,实例的私有IP地址从子网网段中分配。子网创建成功后不支持修改网段,因此提前合理规划子网网段至关重要。同一个VPC内的子网网段不可重复,子网网段必须在VPC网段范围内,子网掩码长度范围为所在VPC掩码到29之间。
3.2 按业务层级划分子网
对于网站服务器架构,最经典的子网划分策略是按照业务层级进行分层隔离。典型的三层架构包括:
- Web层子网(接入层):部署Nginx、Apache等Web服务器或负载均衡器,负责接收和处理用户请求。该层子网中的服务器通常需要绑定弹性公网IP或通过负载均衡对外提供服务。
- 应用层子网(逻辑层):部署应用程序服务器(如Tomcat、Node.js、PHP-FPM等),执行业务逻辑处理。该层服务器不应直接暴露于公网,以保证核心业务逻辑的安全。
- 数据层子网(数据层):部署数据库服务器(如MySQL、PostgreSQL、Redis等)和缓存服务。该层是数据核心,应受到最严格的访问控制,仅允许应用层服务器通过内网访问。
假设VPC网段为10.0.0.0/16,具体的子网规划示例如下:
VPC网段:10.0.0.0/16
├── Web层子网:10.0.1.0/24(可用IP:254个)
├── 应用层子网:10.0.2.0/24(可用IP:254个)
└── 数据层子网:10.0.3.0/24(可用IP:254个)如果业务规模较大,每个层级可能需要多个子网来进一步隔离不同的服务或应用模块。例如Web层可以拆分为前端Web子网和API网关子网,数据层可以拆分为主数据库子网和缓存子网。
3.3 跨可用区的高可用子网设计
华为云的可用区(Availability Zone,AZ)是同一区域内物理上独立的数据中心。为了实现跨可用区容灾,建议在每个可用区都创建一套完整的子网体系。例如在北京四区域,可以在可用区1和可用区2各创建三个子网:
可用区1:
- web-az1:10.0.1.0/24
- app-az1:10.0.2.0/24
- db-az1:10.0.3.0/24
可用区2:
- web-az2:10.0.4.0/24
- app-az2:10.0.5.0/24
- db-az2:10.0.6.0/24同一VPC内不同可用区的子网之间网络默认互通,这使得跨可用区的负载均衡和数据库主从同步可以无缝实现。
3.4 子网规划的数量与规模考量
华为云单个区域默认每个用户可以创建100个子网。在规划子网数量时,需要综合考虑以下因素:
- IP地址容量:每个子网的可用IP数量为2^(32-掩码长度)-2(减去网络地址和广播地址)。例如/24子网提供254个可用IP,/23子网提供510个可用IP。应根据该子网内预期部署的服务器数量选择合适大小的子网。
- 安全隔离粒度:子网越多,可以通过网络ACL实现更细粒度的安全隔离。
- 管理复杂度:子网数量过多会增加路由表和网络ACL的配置复杂度。
4. 路由表与路由策略:掌控网络流量走向
4.1 路由表的基本原理
路由表由一系列路由规则组成,用于控制VPC内子网的出流量走向。VPC中的每个子网都必须关联一个路由表,一个子网只能关联一个路由表,但一个路由表可以同时关联至多个子网。用户创建VPC时,系统会自动生成一个默认路由表。创建子网后,子网会自动关联默认路由表。默认路由表可以确保VPC内不同子网的内网网络互通。
路由分为系统路由和自定义路由两类:
- 系统路由:系统自动添加且无法修改或删除的路由,表示VPC内实例互通。
- 自定义路由:可以修改和删除的路由,用于控制流量走向特定的目标(如NAT网关、对等连接、VPN网关等)。
路由的优先级遵循最长匹配原则,即优先选择匹配度更高的目的地址进行路由转发。无法在VPC路由表中添加目的地址相同的两条路由。
4.2 网站场景下的路由表配置
对于典型的网站架构,子网默认关联默认路由表即可满足基本的内网通信需求。但当需要让子网内的服务器访问公网或与其他VPC通信时,就需要添加自定义路由。
场景一:通过NAT网关访问公网
当VPC内的服务器需要主动访问公网(如下载软件包、调用第三方API)时,可以配置NAT网关的SNAT功能。NAT网关创建完成后,系统会自动在路由表中添加一条目的地址为0.0.0.0/0、下一跳为NAT网关的路由信息。
场景二:通过对等连接实现VPC互通
当需要对等连接两个VPC时,需要在路由表中添加目的地址为对端VPC网段、下一跳类型为对等连接的路由。
路由表示例(VPC-A的路由表):
目的地址 下一跳类型 下一跳地址
10.0.0.0/16 Local -
192.168.0.0/16 对等连接 peering-xxx4.3 自定义路由表的使用场景
当默认路由表无法满足需求时,可以创建自定义路由表。自定义路由表仅影响子网的出流量走向。典型的应用场景包括:
- 将Web层子网关联到包含NAT网关路由的路由表,使其能够访问公网
- 将数据库层子网关联到仅包含内网路由的路由表,严格限制其出站流量
- 为不同的业务模块配置不同的路由策略
5. 安全组与网络ACL:构建双层安全防护体系
5.1 安全组:实例级别的第一道防线
安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器提供访问策略。安全组对实例进行防护,将实例加入安全组内后,该实例将会受到安全组的保护。安全组是必选的,实例必须至少加入到一个安全组中。
安全组的特点包括:
- 有状态:允许入站请求/出站请求的响应流量出入实例,不受规则限制
- 支持报文三元组过滤:协议、端口和源/目的地址
- 多个规则冲突时取其并集生效
对于网站服务器架构,典型的安全组规划如下:
Web服务器安全组:
入方向规则:
- 允许 0.0.0.0/0 访问 TCP 80(HTTP)
- 允许 0.0.0.0/0 访问 TCP 443(HTTPS)
- 允许 内部管理网段 访问 TCP 22(SSH)
出方向规则:
- 允许 0.0.0.0/0 访问所有协议(默认)应用服务器安全组:
入方向规则:
- 允许 Web层子网网段 访问 应用端口(如8080)
- 允许 内部管理网段 访问 TCP 22(SSH)
出方向规则:
- 允许 0.0.0.0/0 访问所有协议(默认)数据库服务器安全组:
入方向规则:
- 允许 应用层子网网段 访问 数据库端口(如3306)
- 允许 内部管理网段 访问 TCP 22(SSH)
出方向规则:
- 严格限制,仅允许必要的出站流量5.2 网络ACL:子网级别的第二道防线
网络ACL是一个子网级别的可选安全防护层,可以对出入子网的流量进行防护。相比安全组针对实例防护,网络ACL的防护范围可覆盖整个子网,实现对子网内所有实例的批量防护。网络ACL是非必选的,可以根据业务需求选择是否为子网关联网络ACL。
网络ACL与安全组的主要区别:
| 对比项 | 安全组 | 网络ACL |
|---|---|---|
| 防护范围 | 实例级别 | 子网级别 |
| 是否有状态 | 有状态 | 有状态 |
| 配置策略 | 不支持允许/拒绝策略 | 支持允许/拒绝策略 |
| 规则过滤 | 报文三元组 | 报文五元组 |
| 规则生效 | 多个规则取并集 | 按优先级顺序 |
当网络ACL和安全组同时存在时,流量先匹配网络ACL规则,然后匹配安全组规则。这种双层防护机制可以实现更精细、更复杂的安全访问控制。
5.3 IP地址组:简化安全规则管理
IP地址组是一个或多个IP地址的集合,可以在配置安全组规则时使用。如果变更了IP地址组内的IP地址,则相当于直接变更了这些IP地址对应的安全组规则,免去逐条修改安全组规则的工作量。对于需要频繁变更管理网段或白名单IP的场景,IP地址组可以显著降低运维成本。
6. 公网访问方案:EIP、NAT网关与负载均衡的协同
6.1 VPC内实例访问公网的三种方式
VPC中的云资源默认无法访问公网。华为云提供了三种主要方式实现VPC与公网的连通:
- 弹性公网IP(EIP):将EIP直接绑定到ECS实例上,实例即可连接公网。适用于少量服务器需要公网访问的场景。
- NAT网关:通过SNAT功能让VPC内多个ECS共享一个或多个EIP访问公网,同时隐藏私有IP。
- 弹性负载均衡(ELB):绑定EIP后,作为公网流量的入口,将请求分发到后端服务器。
6.2 NAT网关的配置与使用
对于网站服务器架构,NAT网关通常用于以下场景:
- SNAT(源地址转换):让应用服务器和数据库服务器能够主动访问公网(如下载更新、调用外部API),同时不暴露其私有IP地址。
- DNAT(目的地址转换):将EIP的特定端口映射到VPC内不同ECS的端口上,使多个ECS共用同一EIP面向公网提供服务。
配置SNAT规则时,需要指定源子网和所使用的EIP。创建NAT网关后,系统会自动在VPC路由表中添加默认路由。
# 使用华为云CLI创建NAT网关的SNAT规则示例
# 前提:已创建NAT网关 nat-gateway-001 和EIP eip-001
# 创建SNAT规则
openstack nat snat rule create \
--nat-gateway nat-gateway-001 \
--source-subnet web-subnet-id \
--floating-ip eip-0016.3 弹性负载均衡的高可用架构
弹性负载均衡(ELB)是将访问流量自动分发到多台后端服务器的核心组件。对于网站服务器架构,ELB通常部署在Web层之前,作为公网流量的统一入口。
ELB的部署要点:
- ELB实例与后端ECS实例应在同一个VPC内
- 确保ECS实例的可用区和ELB实例的可用区相同(或ELB支持跨可用区部署)
- ELB绑定EIP后即可对外提供公网服务
高可用配置建议:
- 将后端ECS部署在至少两个可用区,实现跨可用区容灾
- 配置健康检查,自动屏蔽异常ECS
- 配合弹性伸缩服务(AS),在流量洪峰时自动扩容
ELB支持基于域名和路径的转发策略,可以将来自不同域名或不同路径的请求转发到不同的后端服务器组处理。独享型负载均衡还支持跨VPC添加后端服务器。
7. 多VPC互联与混合云架构
7.1 VPC对等连接
对等连接是建立在两个VPC之间的网络连接,用于连通同一个区域内的VPC,实现不同VPC之间的云上内网通信。对等连接可以连通相同账号或不同账号下的VPC网络。对等连接当前不收取任何费用,但需要手动配置路由。
对等连接的典型应用场景包括:
- 将Web服务器和数据库服务器划分到不同的VPC中,实现更严格的网络隔离
- 连接不同业务线的VPC
- 搭配对等连接和云专线或VPN,实现云上多个VPC和云下IDC的网络通信
7.2 VPN与云专线:连接线下IDC
对于拥有云下数据中心的用户,并非所有业务都能迁移至云上。华为云提供了两种主要方式连接VPC和线下IDC:
- 虚拟专用网络(VPN):基于公网建立加密通道,成本低、配置简单、即开即用,但网络质量依赖公网。
- 云专线(DC):基于物理专线,提供高安全的专属网络通道,低时延、高速率。
在规划混合云网络时,必须确保VPC子网网段与IDC内的网段不重叠。VPN接入时,云上VPC地址段和客户云下地址段不能冲突,且不允许存在包含关系。
7.3 企业路由器:多VPC互联的现代化方案
企业路由器(ER)可以接入同一个区域内的多个VPC,并结合云专线的全球接入网关或VPN的能力,快速实现多个VPC和云下数据中心的网络互通。相比对等连接,企业路由器的优势在于:
- 配置简单,支持路由学习,无需手工配置路由
- 支持多条DC/VPN链路之间联动,实现负载分担或互为主备
当需要连通多个区域内的VPC和云下IDC时,可以使用云专线或VPN连通线下IDC网络,同时搭配云连接实例或中心网络。
8. 完整架构示例:从单VPC到高可用集群
8.1 小型网站架构(单VPC单可用区)
对于访问量较小的小型网站,最简单的架构是在一个VPC内创建三个子网(Web层、应用层、数据层),所有服务器部署在同一个可用区。Web层服务器绑定EIP或通过ELB对外提供服务,应用层和数据层通过内网通信。
VPC: 10.0.0.0/16 (华北-北京四)
├── 子网-web: 10.0.1.0/24 (可用区1)
│ └── ECS: Nginx × 1 (绑定EIP)
├── 子网-app: 10.0.2.0/24 (可用区1)
│ └── ECS: Tomcat × 1
└── 子网-db: 10.0.3.0/24 (可用区1)
└── RDS: MySQL × 18.2 中型网站架构(单VPC跨可用区高可用)
对于需要高可用保障的中型网站,建议在至少两个可用区分别部署服务器,前端使用ELB进行流量分发和健康检查。
VPC: 10.0.0.0/16 (华北-北京四)
├── 子网-web-az1: 10.0.1.0/24 (可用区1)
│ └── ECS: Nginx × 2
├── 子网-web-az2: 10.0.4.0/24 (可用区2)
│ └── ECS: Nginx × 2
├── 子网-app-az1: 10.0.2.0/24 (可用区1)
│ └── ECS: Tomcat × 2
├── 子网-app-az2: 10.0.5.0/24 (可用区2)
│ └── ECS: Tomcat × 2
├── 子网-db-az1: 10.0.3.0/24 (可用区1)
│ └── RDS: MySQL 主库
├── 子网-db-az2: 10.0.6.0/24 (可用区2)
│ └── RDS: MySQL 备库
└── ELB: 绑定EIP,跨可用区分发流量8.3 大型网站架构(多VPC隔离 + 混合云)
对于大型网站或企业级应用,建议将不同安全级别的服务部署在不同的VPC中。例如,Web层VPC对外提供服务,数据层VPC仅对内网开放,两个VPC通过对等连接或企业路由器互通。同时通过VPN或云专线连接线下IDC,实现混合云部署。
VPC-Web: 10.0.0.0/16 (对外服务)
├── 子网-web: 10.0.1.0/24
│ └── ECS + ELB (绑定EIP)
└── 子网-app: 10.0.2.0/24
└── ECS: 应用服务器
VPC-Data: 10.1.0.0/16 (数据核心,不直接暴露)
├── 子网-db: 10.1.1.0/24
│ └── RDS: 数据库集群
└── 子网-cache: 10.1.2.0/24
└── Redis: 缓存集群
VPC-Web ←→ 对等连接/企业路由器 ←→ VPC-Data
VPC-Web ←→ VPN/云专线 ←→ 线下IDC9. 运维与监控:让网络架构持续可观测
网络架构规划完成后,持续的运维与监控同样重要。华为云VPC提供了以下运维能力:
- 流量镜像:将VPC内的流量镜像到指定的目标,用于安全分析和故障排查
- VPC流日志:记录VPC内网络流量的日志,用于审计和异常检测
- 云监控服务:监控VPC、ELB、NAT网关等网络资源的性能指标
建议在架构规划阶段就明确监控指标和告警阈值,确保网络问题能够被及时发现和处理。
10. 总结
华为云VPC专有网络的架构规划是一个系统性工程,需要综合考虑网段规划、子网划分、路由策略、安全防护、公网访问、高可用设计以及混合云互联等多个维度。一个好的VPC网络架构应该具备以下特征:
- 前瞻性:网段和子网规划预留了充足的扩展空间
- 安全性:通过安全组和网络ACL构建了多层防护体系
- 高可用性:通过跨可用区部署和负载均衡保障业务连续性
- 可管理性:架构清晰、文档完善、便于运维
无论网站规模大小,花时间认真规划VPC网络架构都是一项值得的投资——它将在未来数年的业务发展中持续带来安全、稳定和高效的回报。
常见问题解答
问1:VPC创建后还能修改网段吗?
VPC的主网段创建后不能修改,但可以通过添加扩展网段的方式来增加新的IP地址范围。子网一旦创建便不支持修改网段,因此规划阶段务必谨慎。
问2:安全组和网络ACL应该优先使用哪个?
两者并不互斥,而是互补关系。安全组是实例级别的必选防护,网络ACL是子网级别的可选防护。建议两者结合使用:用网络ACL实现子网级粗粒度防护,用安全组实现实例级细粒度控制。流量会先经过网络ACL,再经过安全组。
问3:同一个VPC内不同子网之间的网络是互通还是隔离?
默认情况下,同一个VPC内不同子网之间的网络是互通的。如果需要隔离,可以通过网络ACL或安全组来限制跨子网的流量。
问4:网站服务器应该选择绑定EIP还是使用NAT网关?
Web层服务器如果需要对公网提供服务,建议通过ELB绑定EIP来暴露服务,而非直接给每台ECS绑定EIP。应用层和数据层服务器如果需要主动访问公网(如下载更新),建议通过NAT网关的SNAT功能,既节省EIP资源又隐藏了私有IP。
问5:跨可用区部署时,ELB和后端ECS必须在同一个VPC吗?
是的,ELB实例与后端ECS实例必须在同一个VPC内。但ELB支持将后端ECS部署在同一个VPC内的不同可用区,从而实现跨可用区的高可用容灾。
问6:如何实现云上VPC与线下IDC的网络互通?
华为云提供了两种主要方式:VPN(基于公网的加密通道,成本低、配置简单)和云专线(基于物理专线,高安全、低时延)。选择哪种方式取决于对网络质量、安全性和成本的要求。无论选择哪种方式,都必须确保VPC子网网段与IDC内网段不重叠。


