华为云Stack网络节点深度拆解:BR、vRouter、ENAT网元到底在忙什么?
华为云Stack网络节点深度解析:BR、vRouter、ENAT网元协作全景图
当一份数据包在华为云Stack的网络节点中穿行时,它究竟经历了怎样的旅程?本文将带您深入探索BR、vRouter、ENAT等核心网元如何协同工作,构建起高效可靠的云网络架构。
1. 华为云Stack网络架构概览
华为云Stack采用典型的Spine-Leaf网络架构,结合VXLAN技术构建大二层虚拟网络。这种架构下,网络节点承担着流量转发、安全策略执行、网络服务提供等关键职责。网络节点内部由多个虚拟机组成,每个虚拟机运行特定的网络功能组件,我们称之为"网元"。
主要网元包括:
- BR(Border Router):边界路由器,负责VPC与外部网络的互联
- vRouter:虚拟路由器,处理VPC内部及VPC间的三层流量
- ENAT:弹性NAT网关,提供弹性IP地址转换服务
- CVS/Nginx:负载均衡组件,分别处理四层和七层流量
这些网元通过精心设计的网络平面互联,共同构成了华为云Stack网络服务的实现基础。
2. 网络节点内部架构详解
2.1 BR网元:网络边界的守门人
BR网元全称Border Router,是连接VPC内部网络与外部网络的枢纽。它的主要职责包括:
- 南北向流量转发:处理VPC内实例访问互联网或外部网络访问VPC内服务的流量
- 带宽控制:对出入VPC的流量进行带宽限制和QoS策略实施
- 路由分发:学习外部网络路由并分发到VPC内部
BR网元的网络接口配置:
| 接口 | 连接对象 | 承载流量类型 |
|---|---|---|
| 北向接口 | Inter_Connect网段 | 外部网络流量 |
| 南向接口 | ENAT/NETGW等内部网关 | VPC内部流量 |
在实际流量处理中,BR会根据流量的目的地址和路由策略,决定是将流量转发到外部网络,还是传递给其他内部网元做进一步处理。
2.2 vRouter与ENAT网元:共生的网络服务提供者
vRouter和ENAT网元通常部署在同一台虚拟机上,但功能上各司其职:
vRouter核心功能:
- 实现VPC内部不同子网间的三层互通
- 处理VPC对等连接(Peering)流量
- 支持云专线等增值网络服务
ENAT核心功能:
- 提供弹性IP(EIP)地址转换服务
- 实现私有网络与公网间的地址映射
- 支持SNAT和DNAT两种转换模式
这两个网元通过以下接口分工协作:
eth0:管理面流量 eth1:vRouter业务流量(Tunnel_bearing平面+公共服务区流量) eth2:基础云专线流量 eth3:ENAT业务流量提示:vRouter和ENAT的协同设计减少了跨节点流量转发,提升了网络性能和数据本地性。
2.3 CVS与Nginx网元:流量调度专家
CVS和Nginx网元共同构成华为云Stack的负载均衡服务:
CVS网元:
- 处理四层(TCP/UDP)负载均衡流量
- 维护会话状态表
- 实现流量分发和健康检查
Nginx网元:
- 处理七层(HTTP/HTTPS)负载均衡流量
- 支持高级路由策略和内容改写
- 提供SSL/TLS终止功能
流量处理流程:
- 四层流量直接由CVS处理并转发至BR
- 七层流量先经过Nginx处理,再转发至CVS,最后由CVS转发至BR
3. 关键网络流量路径分析
3.1 同VPC跨子网流量之旅
当VM1(子网A)访问VM2(子网B)时,数据包的完整旅程如下:
源计算节点处理:
- br-int网桥:添加VLAN标签,识别目标子网
- br-router网桥:执行三层转发决策
- br-tun网桥:封装VXLAN隧道
网络节点处理:
- br-tun网桥:解封装VXLAN报文
- vRouter网元:查询路由表,确定下一跳
- 重新封装后发送至目标计算节点
目标计算节点处理:
- br-tun网桥:解封装VXLAN
- br-int网桥:移除VLAN标签
- 最终交付给目标VM
关键配置示例:
# 查看vRouter路由表 ovs-appctl ovs/route/show # 跟踪特定流量的处理路径 ovs-appctl ofproto/trace <流量特征>3.2 弹性IP访问公网全流程
当VM通过弹性IP访问公网资源时,数据流经以下关键节点:
- VM发送请求 → 计算节点br-tun网桥(VXLAN封装)
- 网络节点br-tun网桥(解封装) → ENAT网元
- ENAT执行SNAT转换 → BR网元
- BR转发至公网
返回流量则逆向经过相同路径,ENAT会执行反向的DNAT转换。
3.3 对等连接流量处理机制
VPC对等连接场景下,vRouter网元承担核心转发职责:
源VPC流量到达网络节点后,vRouter会:
- 检查对等连接路由表
- 封装流量到目标VPC的VXLAN隧道
- 通过Spine节点转发至目标VPC
关键控制参数:
- 隧道ID(VNI):标识不同VPC
- 路由表:维护对等连接路由信息
4. 网络性能优化实践
基于对网元工作机理的理解,我们可以在实际部署中采取以下优化措施:
计算节点优化:
- 合理分配物理网卡,避免单一平面拥塞
- 调整Open vSwitch流表缓存大小
- 启用硬件卸载(如支持)
网络节点优化:
- 根据业务特点分配网元资源
- 互联网访问频繁的场景:增强ENAT网元
- VPC互联频繁的场景:增强vRouter网元
- 监控关键指标:
- BR网元:带宽利用率、路由表大小 - vRouter:每秒转发包数(PPS)、路由查询延迟 - ENAT:并发连接数、NAT转换成功率
网络服务设计建议:
- 尽量避免跨AZ的VPC对等连接
- 弹性IP服务尽量靠近访问源部署
- 四层和七层负载均衡合理分工
5. 运维排错指南
当网络出现异常时,可以按照以下步骤排查:
确定故障范围:
- 单VM问题还是整个子网问题?
- 单方向不通还是双向不通?
检查关键网元状态:
# 检查网元虚拟机状态 nova list --host <网络节点> --all-tenants # 检查网元内部进程 ssh <网元虚拟机> "systemctl status <服务名>"跟踪流量路径:
- 使用ovs-appctl工具追踪流表
- 检查各网元上的ACL和安全组规则
常见故障场景:
- BR网元路由丢失:检查BGP/静态路由配置
- ENAT转换失败:检查NAT地址池和端口映射
- vRouter转发异常:检查对等连接状态和路由表
通过深入理解各网元的工作原理和协作机制,网络架构师和运维工程师能够更高效地设计、优化和排查华为云Stack网络环境,为业务提供稳定可靠的网络基础。
