华为云VPC专有网络网站服务器网络架构规划完全指南
引言:云上网络架构是网站稳定的基石
部署一个生产级网站,网络架构的规划往往比服务器选型更加关键。一个设计良好的虚拟私有云网络,能够决定网站的安全性、可用性、可扩展性乃至运维成本。华为云VPC(Virtual Private Cloud)作为云上网络的核心基础设施,提供了逻辑隔离的私有网络环境,是承载网站服务器的基本网络容器。然而,很多初次接触华为云的用户在创建VPC时往往采取默认配置走天下的策略,随着业务增长,网段冲突、安全漏洞、性能瓶颈等问题接踵而至。本文将从零开始,系统讲解华为云VPC专有网络下网站服务器网络架构的完整规划方法,涵盖从VPC数量决策、网段选择、子网划分到安全组配置、公网访问、VPC互联等全链路内容,并提供可直接复用的配置代码。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
一、VPC基础概念与核心组件
1.1 什么是VPC
虚拟私有云VPC是华为云上为用户提供的逻辑隔离的虚拟网络环境。从技术底层来看,VPC是基于网络虚拟化技术在物理网络之上构建的隔离网络空间。每个VPC在逻辑上与其他VPC完全隔离,用户可以在VPC内自由定义IP地址范围、创建多个子网、自定义路由表和网关。VPC具有区域属性,VPC内的云资源(如ECS、RDS、CCE等)必须与VPC位于同一个区域。
1.2 VPC的核心组件
一个完整的华为云VPC网络由以下核心组件构成:子网是VPC内的IP地址块,所有云资源都必须部署在子网内;路由表用于控制子网内流量的转发路径,每个VPC创建时会自动生成一个默认路由表;安全组是实例级别的虚拟防火墙,控制进出实例的流量;网络ACL是子网级别的可选安全防护层。此外,弹性公网IP、NAT网关、弹性负载均衡等服务与VPC协同工作,共同构成完整的云上网络体系。
二、VPC数量规划:一个VPC还是多个VPC
2.1 单一VPC的适用场景
如果业务部署在单个区域、业务量不大且不同业务模块之间不需要网络隔离,那么规划一个VPC是最佳选择。在一个VPC中可以创建多个子网和路由表,不同子网承载不同的业务模块。例如,一个中小型网站的所有组件(Web服务器、应用服务器、数据库、缓存等)都可以部署在同一个VPC的不同子网中,通过安全组和网络ACL实现访问控制。
2.2 多VPC的适用场景
当业务需要部署在多个区域时,每个区域至少需要规划一个VPC。不同区域的VPC之间默认隔离,需要通过云连接等服务实现互通。如果业务部署在一个区域内但不同业务之间需要严格网络隔离,也应在同一区域规划多个VPC。例如,将生产环境和测试环境部署在不同的VPC中,避免测试流量影响生产系统。此外,高安全场景下可以将Web服务器和数据库服务器划分到不同的VPC中,通过安全组和网络ACL设置严格的入站/出站规则。需要注意的是,单个用户在单个区域可创建的VPC数量默认为5个,如有特殊需求可申请扩大配额。
三、VPC网段选择:避开冲突,留足余量
3.1 推荐的私有网段范围
创建VPC时需要指定IPv4网段。华为云推荐使用RFC 1918中指定的私有IPv4地址范围:10.0.0.0/8-24(IP范围10.0.0.0~10.255.255.255)、172.16.0.0/12-24(IP范围172.16.0.0~172.31.255.255)、192.168.0.0/16-24(IP范围192.168.0.0~192.168.255.255)。
3.2 网段选择的核心考量
网段选择需要重点考虑两个因素。第一是IP地址数量:要为业务预留足够的IP地址,防止业务扩展给网络带来冲击。第二是网段冲突:当前VPC与其他VPC、云下数据中心连通时,要避免网络两端的IP地址冲突,否则无法正常通信。云上网络必须被视为企业整体网络的一个延伸部分,而不是一个孤岛。如果规划时使用了与本地数据中心相同的网段,后续VPN或云专线打通时将面临路由冲突的困境。此外,应避免使用127.0.0.0/8、169.254.0.0/16、224.0.0.0/3、100.64.0.0/10等系统预留或公网保留地址。
3.3 网段规划的最佳实践
对于大多数网站场景,推荐使用10.0.0.0/16作为VPC网段,该网段可提供65534个可用IP地址。如果预计未来可能与其他VPC或IDC互通,建议使用较为不常见的网段,如10.88.0.0/16,以降低冲突概率。
四、子网划分:分层架构的核心
4.1 子网的基本概念
子网是VPC内的IP地址集,可以将VPC的网段分成若干块。子网划分可以帮助合理规划IP地址资源。VPC中的所有云资源都必须部署在子网内。子网创建成功后不支持修改网段,因此需要提前合理规划。子网的网段必须在VPC网段范围内,同一个VPC内的子网网段不可重复。
4.2 基于业务模块的分层划分
通常情况下,部署在同一个VPC内的业务可以根据业务模块来划分子网。对于网站服务器架构,经典的三层划分方案如下:Web层子网部署Web层应用的云服务器,通过配置弹性IP与Internet互通,响应用户请求;应用层子网部署逻辑层应用的云服务器,保证逻辑层应用不被公网直接访问;数据层子网单独分配用于部署数据库产品,只允许应用层的流量访问,保障数据安全。每个子网关联不同的网络ACL,实现子网级别的访问控制。
4.3 子网大小规划
子网网段的掩码长度范围为8~24。规划子网时需要结合业务所需的IP地址数量提前规划。对于Web层子网,由于需要部署多台ECS以实现负载均衡和高可用,建议使用/24掩码(254个可用IP)。应用层子网同样建议使用/24掩码。数据层子网如果只部署少量数据库实例,可以使用/26掩码(62个可用IP)以节省IP资源。但需注意,子网创建后无法变更网段,应适当预留扩展空间。
4.4 子网与可用区的关系
一个VPC的多个子网可以位于不同的可用区,不影响通信。ECS可以和VPC子网位于不同可用区。为了实现高可用,建议将同一层的ECS部署在不同的可用区,并分别使用对应可用区的子网。
五、路由表设计:掌控流量走向
5.1 默认路由表与自定义路由表
每个VPC创建时会自动生成一个默认路由表。默认路由表中包含一条本地路由(local),用于VPC内子网之间的通信,由系统自动配置。用户可以根据业务需求创建自定义路由表,并将不同子网关联至不同的路由表,灵活控制子网的网络流量。
5.2 典型路由配置示例
在网站架构中,路由表配置通常涉及以下几个方面。首先是通过NAT网关访问公网的路由:在路由表中添加一条目的地址为0.0.0.0/0、下一跳为NAT网关的路由,使子网内的ECS可以通过NAT网关访问公网。其次是通过对等连接或企业路由器实现VPC互通的路由:目的地址为对端VPC的网段,下一跳为对等连接或企业路由器。
以下是一个典型的路由表配置示例(以华为云控制台配置为例):
路由表名称:rtb-web-layer
关联子网:subnet-web(192.168.1.0/24)
路由条目:
- 目的地址:192.168.1.0/24,下一跳:Local(系统自动)
- 目的地址:0.0.0.0/0,下一跳:NAT网关(nat-001)
路由表名称:rtb-app-layer
关联子网:subnet-app(192.168.2.0/24)
路由条目:
- 目的地址:192.168.2.0/24,下一跳:Local(系统自动)
- 目的地址:192.168.3.0/24,下一跳:对等连接(peering-db)
路由表名称:rtb-data-layer
关联子网:subnet-data(192.168.3.0/24)
路由条目:
- 目的地址:192.168.3.0/24,下一跳:Local(系统自动)六、安全防护体系:安全组与网络ACL
6.1 安全组:实例级别的防护
安全组是对实例进行防护的虚拟防火墙。将实例加入安全组后,该实例将受到安全组的保护。安全组是必选的,每个实例必须至少加入一个安全组。安全组是有状态的,允许入站请求或出站请求的响应流量出入实例,不受规则限制。安全组支持报文三元组(协议、端口、源或目的地址)过滤。多个规则冲突时取其并集生效。实例创建时必须选择一个安全组,如果当前用户名下没有安全组,系统会自动创建默认安全组。
6.2 网络ACL:子网级别的批量防护
网络ACL是一个子网级别的可选安全防护层。相比安全组针对实例防护,网络ACL的防护范围覆盖整个子网,能够实现对子网内所有实例的批量防护。网络ACL是非必选的。网络ACL也是有状态的。网络ACL支持报文五元组(协议、源端口、目的端口、源地址和目的地址)过滤。一个子网只能绑定一个网络ACL,当网络ACL存在多条规则时,根据规则的优先级生效,优先级数字越小越先生效。创建子网时没有网络ACL选项,需要先创建网络ACL并添加出入规则,然后在网络ACL内关联子网。
6.3 双层防护的协同工作
当网络ACL和安全组同时存在时,流量先匹配网络ACL规则,然后匹配安全组规则。这种双层防护机制提供了纵深防御的能力。在设计网站安全策略时,建议在网络ACL层面设置粗粒度的子网间访问控制(如允许Web层到应用层的流量、拒绝外部直接访问数据层),在安全组层面设置细粒度的实例级访问控制(如允许特定的源IP访问特定的端口)。
6.4 典型安全组规则配置
以下是一个典型网站架构的安全组规则配置示例(JSON格式):
{
'security_group': {
'name': 'sg-web-layer',
'description': 'Web层安全组',
'rules': [
{
'direction': 'ingress',
'protocol': 'tcp',
'port_range_min': 80,
'port_range_max': 80,
'remote_ip_prefix': '0.0.0.0/0',
'description': '允许所有来源的HTTP访问'
},
{
'direction': 'ingress',
'protocol': 'tcp',
'port_range_min': 443,
'port_range_max': 443,
'remote_ip_prefix': '0.0.0.0/0',
'description': '允许所有来源的HTTPS访问'
},
{
'direction': 'ingress',
'protocol': 'tcp',
'port_range_min': 22,
'port_range_max': 22,
'remote_ip_prefix': '10.0.0.0/8',
'description': '仅允许内网SSH管理'
}
]
}
}七、公网访问方案:EIP、NAT网关与ELB
7.1 弹性公网IP:最直接的公网访问方式
弹性公网IP是一个独立的公网IP地址,可以绑定至ECS、NAT网关或ELB等实例。VPC中的云资源默认无法访问公网。绑定EIP后,ECS可以直接被公网访问,也可以主动访问公网。EIP适合需要独立公网IP的场景,如需要对外提供HTTPS服务的Web服务器。但每台ECS单独绑定EIP会增加公网IP的管理成本和暴露面。
7.2 NAT网关:多台ECS共享公网出口
NAT网关通过SNAT功能可以实现VPC内多台ECS共用EIP访问公网。一个VPC可以创建一个NAT网关,VPC内的一个子网可以配置一条SNAT规则,每条SNAT规则最多可配置20个弹性IP。NAT网关的DNAT功能可以实现端口级别的转发,将EIP的端口映射到不同ECS的端口上,使VPC内多个ECS共用同一EIP和带宽面向公网提供服务。但DNAT没有均衡流量的功能。
以下是通过华为云CLI配置NAT网关SNAT规则的示例:
# 创建NAT网关
hcloud nat CreateNatGateway \
--region cn-north-4 \
--name nat-gateway-001 \
--vpc_id vpc-001 \
--spec small
# 创建SNAT规则
hcloud nat CreateSnatRule \
--nat_gateway_id nat-gateway-001 \
--source_type 0 \
--network_id subnet-web-001 \
--source_ip 192.168.1.0/24 \
--floating_ip_id eip-0017.3 弹性负载均衡:流量分发与高可用
弹性负载均衡ELB能够根据配置的分配策略将访问流量分发到多台后端服务器,提升业务系统的可用性和扩展性。ELB支持将访问流量均衡分发到多个VPC内的后端服务器上。确保ECS实例的可用区和ELB实例的可用区相同,并且ECS实例与ELB实例属于同一个VPC。ELB支持配置基于域名和路径的转发策略。独享型ELB还支持跨VPC后端功能,可以将其他VPC甚至云下IDC的服务器添加至后端服务器组。
以下是一个简单的ELB配置示例(使用Terraform):
resource 'huaweicloud_elb_loadbalancer' 'web_lb' {
name = 'web-loadbalancer'
vip_subnet_id = huaweicloud_vpc_subnet.subnet-web.id
availability_zone = ['cn-north-4a', 'cn-north-4b']
description = 'Web层负载均衡器'
}
resource 'huaweicloud_elb_listener' 'http_listener' {
name = 'http-listener'
protocol = 'HTTP'
protocol_port = 80
loadbalancer_id = huaweicloud_elb_loadbalancer.web_lb.id
}
resource 'huaweicloud_elb_pool' 'web_pool' {
name = 'web-server-pool'
protocol = 'HTTP'
lb_method = 'ROUND_ROBIN'
listener_id = huaweicloud_elb_listener.http_listener.id
}
resource 'huaweicloud_elb_member' 'web_member' {
count = 2
pool_id = huaweicloud_elb_pool.web_pool.id
address = huaweicloud_compute_instance.web[count.index].network[0].fixed_ip_v4
protocol_port = 80
subnet_id = huaweicloud_vpc_subnet.subnet-web.id
}7.4 三种方案的选择建议
对于生产级网站,推荐采用ELB+NAT网关的组合方案:ELB绑定EIP作为流量入口,将公网请求分发到多台Web服务器;Web服务器通过NAT网关的SNAT功能主动访问公网(如调用第三方API、下载更新包等)。这种方案既实现了高可用和负载均衡,又避免了每台ECS单独绑定EIP的安全风险和成本。数据库服务器和应用服务器则无需任何公网访问能力,通过安全组和网络ACL严格限制其入站流量来源。
八、VPC互联与混合云方案
8.1 对等连接:同区域VPC互联
对等连接是建立在两个VPC之间的网络连接,用于连通同一个区域内的VPC,可以实现不同VPC之间的云上内网通信。对等连接可以连通相同账号或不同账号下的VPC网络。对等连接当前不收取任何费用,但需要手动配置路由。对等连接两端的VPC使用私有IP地址进行通信。对等连接适用于同区域内少量VPC之间的互联场景。
8.2 企业路由器:中心辐射型组网
企业路由器可以在一个路由器中接入相同账号或不同账号下的多个VPC,构建中心辐射型组网。相比对等连接需要两两建立连接,企业路由器通过中心路由的方式大大简化了多VPC互联的配置复杂度。企业路由器支持路由自动传播,可以自动学习VPC网段。但如果VPC网段存在重叠,则不建议使用传播路由,需要在ER路由表中手动添加静态路由。
8.3 云连接:跨区域VPC互联
云连接用于连通不同区域内的VPC。VPC是区域级别的服务,一个VPC无法实现跨区域部署业务。对于多区域部署的网站,需要使用云连接将不同区域的VPC网络打通。
8.4 VPN与云专线:混合云连接
对于拥有云下数据中心的用户,通过虚拟专用网络或云专线可以连通VPC和云下数据中心网络,构建混合云组网。VPN用于在线下IDC和华为云VPC之间建立一条安全加密的公网通信隧道。相比通过云专线构建混合云,VPN更加快速、成本更低。云专线提供高性能、低延迟、安全专用的数据网络连接。为了提升混合云组网的可靠性,可以同时部署DC和VPN两条网络链路互为主备。
九、完整网站架构设计示例
以下是一个完整的华为云VPC网站服务器网络架构设计方案:
网络规划:区域选择华北-北京四,VPC网段使用10.0.0.0/16。创建三个子网:Web层子网10.0.1.0/24(可用区1)、应用层子网10.0.2.0/24(可用区2)、数据层子网10.0.3.0/24(可用区1)。
安全设计:创建三个安全组分别对应三层。Web层安全组开放80和443端口给0.0.0.0/0,22端口仅允许管理网段。应用层安全组仅允许来自Web层子网的流量访问应用端口。数据层安全组仅允许来自应用层子网的流量访问数据库端口。创建三个网络ACL分别关联三个子网,在子网层面实施粗粒度的访问控制。
公网访问:创建独享型ELB绑定EIP作为统一流量入口,将请求分发至Web层多台ECS。创建NAT网关并配置SNAT规则,使Web层ECS可以主动访问公网。应用层和数据层ECS不绑定任何EIP,也不配置公网路由。
高可用设计:Web层至少部署2台ECS分布在不同的可用区。ELB配置健康检查,自动剔除不健康的后端服务器。数据库采用主备架构或RDS云数据库服务。关键数据定期备份至OBS。
可扩展设计:VPC网段预留了充足的IP地址空间,未来可以新增子网或扩展现有子网。ELB后端服务器组可以动态添加或移除ECS,支持水平扩展。
十、基础设施即代码:Terraform完整示例
以下是一个使用Terraform部署完整网站网络架构的示例:
# 创建VPC
resource 'huaweicloud_vpc' 'website_vpc' {
name = 'website-vpc'
cidr = '10.0.0.0/16'
}
# 创建三个子网
resource 'huaweicloud_vpc_subnet' 'subnet_web' {
name = 'subnet-web'
cidr = '10.0.1.0/24'
gateway_ip = '10.0.1.1'
vpc_id = huaweicloud_vpc.website_vpc.id
availability_zone = 'cn-north-4a'
}
resource 'huaweicloud_vpc_subnet' 'subnet_app' {
name = 'subnet-app'
cidr = '10.0.2.0/24'
gateway_ip = '10.0.2.1'
vpc_id = huaweicloud_vpc.website_vpc.id
availability_zone = 'cn-north-4b'
}
resource 'huaweicloud_vpc_subnet' 'subnet_data' {
name = 'subnet-data'
cidr = '10.0.3.0/24'
gateway_ip = '10.0.3.1'
vpc_id = huaweicloud_vpc.website_vpc.id
availability_zone = 'cn-north-4a'
}
# 创建安全组
resource 'huaweicloud_networking_secgroup' 'sg_web' {
name = 'sg-web'
description = 'Web层安全组'
vpc_id = huaweicloud_vpc.website_vpc.id
}
# 安全组规则(HTTP)
resource 'huaweicloud_networking_secgroup_rule' 'web_http' {
direction = 'ingress'
ethertype = 'IPv4'
protocol = 'tcp'
port_range_min = 80
port_range_max = 80
remote_ip_prefix = '0.0.0.0/0'
security_group_id = huaweicloud_networking_secgroup.sg_web.id
}
# 创建NAT网关
resource 'huaweicloud_nat_gateway' 'nat_gw' {
name = 'nat-gw'
vpc_id = huaweicloud_vpc.website_vpc.id
subnet_id = huaweicloud_vpc_subnet.subnet_web.id
spec = 'small'
}
# 创建SNAT规则
resource 'huaweicloud_nat_snat_rule' 'snat_web' {
nat_gateway_id = huaweicloud_nat_gateway.nat_gw.id
network_id = huaweicloud_vpc_subnet.subnet_web.id
floating_ip_id = huaweicloud_vpc_eip.nat_eip.id
}
# 创建ELB
resource 'huaweicloud_elb_loadbalancer' 'web_lb' {
name = 'web-lb'
vip_subnet_id = huaweicloud_vpc_subnet.subnet_web.id
availability_zone = ['cn-north-4a', 'cn-north-4b']
}总结
华为云VPC专有网络的网站服务器网络架构规划是一项系统性工程,需要从VPC数量决策、网段选择、子网划分、路由表设计、安全组与网络ACL配置、公网访问方案选型到VPC互联与混合云方案进行全面考量。核心原则可概括为:网段规划留足余量并避免冲突、子网按业务分层划分、安全防护采用双层纵深防御、公网访问采用ELB+NAT网关组合方案、多VPC互联根据场景选择合适的服务。遵循这些原则,可以构建一个安全、高可用、可扩展的云上网站网络架构,为业务的稳定运行奠定坚实的网络基础。
常见问题解答
问1:VPC创建后还能修改网段吗?
答:VPC创建后不支持修改网段。子网创建后同样不支持修改网段。因此在创建VPC和子网之前,务必结合业务需求和未来扩展规划,合理选择网段。
问2:安全组规则和网络ACL规则同时配置时,哪个先生效?
答:当网络ACL和安全组同时存在时,流量先匹配网络ACL规则,然后匹配安全组规则。网络ACL在子网级别生效,安全组在实例级别生效,两者配合实现纵深防御。
问3:Web服务器必须绑定弹性公网IP才能被公网访问吗?
答:不一定。更推荐的方案是将ELB绑定EIP作为统一流量入口,ELB将请求分发到后端的Web服务器。Web服务器本身不需要绑定EIP,这样更安全且便于管理。
问4:不同VPC之间的ECS如何通信?
答:不同VPC之间默认网络隔离。同区域的VPC可以通过对等连接或企业路由器实现互通。不同区域的VPC需要通过云连接实现互通。
问5:一个VPC内最多可以创建多少个子网?
答:子网数量没有严格的上限限制,但受限于VPC网段的大小。子网的网段必须在VPC网段范围内且不能重叠。例如VPC网段为10.0.0.0/16时,最多可以划分256个/24的子网。
问6:网站部署在华为云上,如何实现与本地数据中心的混合云架构?
答:可以通过虚拟专用网络或云专线连通VPC和云下数据中心。VPN通过公网建立安全加密隧道,成本更低、部署更快。云专线提供专用物理连接,性能更高、延迟更低。为提升可靠性,可以同时部署两条链路互为主备。



