1. 华为云公网服务核心组件解析
在华为云架构中,弹性公网IP(EIP)、NAT网关和弹性负载均衡(ELB)构成了公网接入的三大支柱组件。这三个服务看似功能有所重叠,实则各司其职且能灵活组合。理解它们的设计逻辑和协作关系,是构建高效云网络架构的基础。
1.1 弹性公网IP(EIP)的本质特性
EIP本质上是一个静态的公网IPv4地址资源,具有以下核心特征:
- 独占性绑定:一个EIP同一时间只能绑定到一个云资源实例(如ECS、NAT网关、ELB等)
- 带宽独立配置:每个EIP可单独设置带宽峰值(1Mbps~5Gbps),支持按流量或按带宽计费
- 灵活解绑:支持随时解绑并重新绑定到其他资源,IP地址保持不变
- 计费独立性:EIP的计费与绑定的资源相互独立,按小时或包周期计费
实际使用中,EIP最典型的应用场景是直接绑定到ECS实例,使其获得独立的公网出入口。例如电商系统中需要直接暴露公网访问的API服务器,就适合采用这种直连模式。
1.2 NAT网关的工作原理
NAT网关的核心价值在于解决私有子网内多台ECS共享公网访问的需求,其技术实现基于两种转换机制:
SNAT(源地址转换)
- 工作流程:私有IP → NAT网关(替换源IP为EIP)→ 公网
- 典型应用:子网内多台ECS需要访问互联网下载更新包
- 连接数计算:每个TCP/UDP会话记为1个连接,默认规格支持100万并发连接
DNAT(目的地址转换)
- 工作流程:公网 → NAT网关(将EIP+端口映射到私有IP+端口)→ 私有IP
- 典型应用:将内网数据库的3306端口通过特定公网端口暴露
- 端口映射:支持1:1全端口映射或N:1端口映射(多个公网端口映射到不同内网服务)
注意:华为云NAT网关采用分布式架构,每个可用区需要独立部署。跨AZ访问会产生额外的内网流量费用。
1.3 弹性负载均衡(ELB)的流量路径
ELB的设计重点在于流量分发而非地址转换,其工作流程具有以下特点:
- 公网型ELB创建时自动分配EIP(也可绑定已有EIP)
- 客户端请求到达ELB的EIP后,经LVS集群进行四层分发或Nginx集群进行七层处理
- 流量通过内网转发到后端服务器组(ECS或容器)
- 回包直接经内网返回ELB节点,由ELB统一对外响应
与NAT网关的关键区别在于:
- ELB具有健康检查、会话保持等高级流量管理功能
- 后端服务器完全无需配置公网IP
- 响应流量路径不对称(请求走ELB入口,响应直接经内网返回)
2. 典型组网方案与流量路径
2.1 基础直连模式(EIP+ECS)
这是最简单的公网接入方案,适用于需要独占公网带宽的独立业务节点:
code复制客户端 → EIP → ECS(处理并直接响应)
优势:
- 网络延迟最低(无额外跳转)
- 带宽完全独享
- 配置简单直接
劣势:
- 单点故障风险
- 扩展性差
- EIP费用较高(需为每台ECS配置)
适用场景:
- 开发测试环境
- 小型静态网站
- 需要固定公网IP的特殊服务(如邮件服务器)
2.2 NAT网关共享模式
中型企业最常用的经济型方案,实现多台ECS共享公网出口:
code复制[出向] ECS → SNAT → EIP → Internet
[入向] Internet → EIP → DNAT → ECS
配置要点:
- 创建NAT网关并绑定EIP
- 在目标子网的路由表中添加默认路由(0.0.0.0/0),下一跳指向NAT网关
- 如需入向访问,需配置DNAT规则(建议限制源IP范围)
性能考量:
- 单个NAT网关支持10Gbps吞吐量
- 建议每500台ECS配置一个NAT网关
- 监控SNAT连接数(超过80%需扩容)
2.3 ELB流量分发模式
面向生产环境的高可用方案,特别适合Web类应用:
code复制客户端 → EIP(ELB) → [LVS/Nginx集群] → 后端ECS集群(私网)→ 内网返回 → ELB → 客户端
高级配置技巧:
- 启用健康检查:建议HTTP检查间隔≤5秒
- 会话保持:电商类应用建议使用cookie插入方式
- 带宽控制:单个监听器可设置独立带宽限制
成本优化:
- 对流量突增明显的业务,选择按流量计费
- 结合Auto Scaling自动调整后端服务器数量
- 七层负载均衡可节省后端ECS的公网带宽消耗
3. 混合架构设计与实战案例
3.1 电商平台典型架构
某跨境电商平台采用以下混合方案:
- Web层:公网ELB(绑定EIP-1)分发到20台ECS
- API层:内网ELB(不绑定EIP)服务内部调用
- 数据库:通过NAT网关(EIP-2)的DNAT提供跨境专线接入
- 运维通道:跳板机单独绑定EIP-3
流量路径示例:
- 用户访问www.example.com → DNS解析到ELB的EIP-1
- ELB将请求分发到Web层ECS(私网IP 192.168.1.10)
- Web服务调用内网API(通过内网ELB 192.168.2.100)
- 跨境物流系统通过NAT网关EIP-2的3306端口访问数据库
3.2 高可用设计要点
多AZ部署方案:
- 在华北-北京四的AZ1和AZ2各部署一个NAT网关
- 每个AZ配置独立的路由表指向本AZ的NAT
- ELB开启跨AZ负载均衡
- 使用云解析服务DNS实现AZ级别的故障转移
连接数优化实践:
- Linux内核参数调优:
bash复制# 增加本地端口范围 echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf # 增加TIME_WAIT复用 echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf sysctl -p - 应用层使用连接池技术
- 对长时间连接(如WebSocket)实施超时控制
4. 深度排查与性能优化
4.1 NAT连接数瓶颈分析
当出现SNAT端口耗尽时,典型表现为:
- 新建连接超时
- 现有连接保持正常
- 监控图表显示连接数接近配额
排查步骤:
- 登录NAT网关控制台查看监控指标
- 通过以下命令统计各ECS的连接数:
bash复制netstat -an | grep ESTABLISHED | wc -l - 分析连接目标:异常高连的ECS可能需要优化应用代码
解决方案:
- 升级NAT网关规格(最高支持1000万连接)
- 部署多个NAT网关分流
- 优化应用减少长连接
4.2 ELB异常流量处理
当ELB出现流量异常时,应按以下流程排查:
-
确认问题范围:
- 检查ELB监控指标(QPS、带宽、后端健康ECS数)
- 对比访问日志与业务预期
-
常见问题处理:
- 后端ECS全不健康:检查安全组是否放行100.125.0.0/16
- 带宽跑满:启用弹性带宽或限速策略
- 特定IP攻击:配置访问控制策略(白名单/黑名单)
-
日志分析技巧:
bash复制# 统计TOP 10访问IP awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 # 检测扫描行为 grep -E '404|500' access.log | awk '{print $1}' | sort | uniq -c | sort -nr
4.3 混合使用最佳实践
成本优化组合:
- 关键业务使用ELB+多AZ部署
- 普通业务通过NAT网关共享出口
- 开发环境使用按量计费的EIP直连
安全增强建议:
- ELB层面:
- 启用WAF防护
- 配置HTTPS监听器(建议使用华为云SSL证书服务)
- NAT网关层面:
- DNAT规则限制源IP范围
- 关联网络ACL限制出入站规则
- EIP层面:
- 绑定到ECS的EIP建议配置安全组白名单
- 闲置EIP及时释放(持续产生费用)
在实际架构设计中,我通常会先绘制详细的流量路径图,明确各组件边界。例如某客户的原方案将所有ECS都绑定EIP,经优化改为ELB+NAT组合后,月度网络成本降低62%,且安全性得到显著提升。关键是要根据业务实际流量模式选择最适合的组合方式,而非简单套用固定模式。