VPC NAT 网关 v2.0 上线!VPC 级一次性打通,告别重复配置
VPC(虚拟私有云)是公有云上逻辑隔离、可自定义的私有网络空间,是云上资源部署和通信的基础,核心资源均需部署其中,不同VPC默认隔离以保障安全。用户可自主划分子网、配置路由,而网关是VPC内外及跨VPC通信的关键,其中NAT网关承担着私网IP转换、实现网络互通的核心作用,其性能与配置效率直接影响业务运维成本。
一. 背景
VPC NAT网关可以将 VPC 内的私网 IPv4 地址转换为 NAT IP,用来解决云上地址冲突网络的互访或者满足通过指定地址访问的需求。目前线上运行的v1.0版本,网络打通的粒度为子网到子网。当用户网段扩容新增子网时,需要多次调用 NAT 打通接口,新增并维护多条规则。这不仅增加了配置复杂度,也提高了运维和出错成本。
VPC内扩容子网是常规操作,为了简化用户使用复杂度,同时避免因新增网段而重复配置 NAT 规则,VPC NATv2.0需要对现有能力进行扩展,使其支持源 VPC → 目标 VPC 的一次性打通。
二. 方案设计
1. 控制面逻辑调整
1)snat_rules 表新增4个字段,用于记录目标vpc详情,便于奥创系统查询与关联。
字段名 | 含义 | |
src_vpc_uuid | 源vpc uuid | |
dst_vpc_uuid | 目标vpc uuid | |
cidr | 源 VPC 下的子网 CIDR,支持逗号分割:172.16.2.0/24,172.16.3.0/24 | |
vpc_cidr | 目标 VPC 下的子网集合,按 VNI 维度组织 Value:该 VNI 下的多个子网 CIDR(逗号分割) | { "100":"172.16.0.0/24,172.16.1.0/24", "200": "172.16.2.0/24" } |
2)生成vpc nat规则调整
- NAT IP的VNI,从单个值,改为逗号分割字符串
- 规则匹配的VNI为NAT IP所属VNI,规则包含所有子网
2. 转发面逻辑调整
新增vpc_vni参数,支持VPC粒度转发。数据包达到网关后,匹配转发规则,选择到正确的NAT IP后,根据VNI信息查找目标虚机的全部信息,进行VXLAN封装将数据包送至正确的节点。
三. 整体转发流程
如图所示,vpc1内资源,如虚拟机或者容器访问目标vpc2中的不同资源,数据包转发的路径会有不同。
1.访问虚机/容器:虚机发出的数据包,经由计算节点封装后发送至VPC NAT网关,网关查找snat_rule策略,命中策略后,使用来自目标VPC的NAT IP作为源IP,将新的数据包封装后,发送至目标vpc2的计算节点。目的虚机收到数据包后,回包会发送至CCN网关,CCN网关查找内存中存储的NAT IP信息后,将数据包转发至VPC NAT网关,最终由VPC NAT网关转回给源虚机/容器。
2.访问负载均衡VIP:与访问虚机不同,访问VIP时,VPC NAT网关会将数据包封装后发送至FNAT网关,经负载均衡转发至目标VPC内的真实RS,回包路径与来时一致。
四. 总结
通过 VPC NAT网关 v2.0 的改造,我们显著提升了 VPC 间网络打通的灵活性和效率
- 支持VPC → VPC粒度的一次性打通
- 减少规则数量,降低配置与运维成本
- 兼容历史子网级调用方式
- 控制面逻辑更清晰,适配复杂跨 VPC 场景
目前NAT网关已支持多种转发场景,包括隔离 VPC 出公网、VPC间打通、隔离 VPC 访问 IDC等常见需求。后续VNAT 网关将逐步支持 DNAT 功能,增加安全策略防控模块,进一步提升网关的安全性和管理能力,为云上大规模、复杂的跨 VPC 网络通信提供更加高效和灵活的解决方案。
