一、技术背景在公有云多VPC、多地域、多节点的复杂组网架构中不同VPC之间默认网络隔离无法直接进行内网互通。但实际业务场景中普遍存在跨VPC的业务交互需求如业务VPC与数据库VPC数据互通、子业务VPC与核心服务VPC资源调用、多地域VPC集群联动等。为了在保障网络隔离安全性的前提下实现跨VPC内网安全互通、流量统一调度平台引入VPC NAT能力。区别于传统VPC网关出网NAT公网访问转换本文所述VPC NAT核心用于私有网络域内源VPC到目标VPC的内网SNAT流量打通通过固定VIP地址、统一NAT规则、多节点同步配置的方式实现跨VPC的定向网络互通。同时由于云平台VPC支持动态扩缩容、子网增删、多地域多Neutron节点部署且NAT配置涉及Neutron底层网络配置、网关路由规则、上层VPC业务记录多层数据极易出现上下层数据不一致、配置缺失、规则失效等问题。因此除核心的VPC NAT打通创建流程外平台配套设计了专属的数据同步机制与数据完整性检查机制保障跨VPC NAT打通配置的准确性、一致性和有效性。下文将详细阐述VPC NAT的具体实现步骤、底层数据表设计、数据同步逻辑及完整性校验核心流程。二、VPC NAT的实现步骤vpc nat是描述的一个vpc到另一个vpc的snat打通关系的实例。创建vpc nat需要执行三个动作1.在目标vpc中创建一个port这个port就是源vpc访问目的vpc的vipvip可以有多个2.把刚刚创建的port信息通知给源vpc的所有neutron因为vpc下可以有多个region每个region对应一个neutron所以源vpc有多少个region就要通知多少次通知的信息包括port的uuidport的mac地址port的IP地址vipport的network的vni源vpc在当前通知的region中的network名字3.通知网关更新nat规则更新的是port的idc所在的地域一个vpc nat打通关系在网关侧相同的idc中只有一个nat规则同时这个规则可以绑定到多个port这个port的地址就是规则的wan ip相同IDC的wan ip全部绑定在同一个规则上。规则需要包含wan ip的port所在的region调度算法默认设置为wrr最主要的要包含所有源vpc覆盖的cidr字符串用逗号隔开以及目的vpc的所有子网的vni和网段的对应关系vpc nat实例用openstack_network_vpc_nats中的记录表示原设计是一个记录表示一个打通关系。openstack_network_vpc_nats记录的是vpc层面的信息。由于后续可能同一组vpc打通关系中需要有多个目的nat ip也就是多个wan ip的场景因此之后应该以nat ip源vpc目的vpc来表示一个打通关系了。openstack_neutron_vpc_nats表用来记录neutron通知过的vip信息对于每个nat ip在源vpc的所有region里都应该有一个底层实例与之对应。由于网关nat规则和打通关系不是一一对应的关系因此单独创建一个表openstack_neutron_vpc_nat_rules来记录给网关下的nat规则。由于neutron保存了源vpc的region中的network vni和nat ip对应的port uuid因此通过这两个信息就能获取到源vpc和目的vpc了。三、VPC NAT的数据同步neutron不保存具体的vpc打通信息只包含打通操作的nat ip以及需要知道nat ip的neutron节点由于nat ip的port是在目的vpc的而保留nat ip的信息的neutron是源vpc的打通维度又是在vpc维度。因此通过获取neutron的数据就能从底层看出vpc nat的打通关系从而对vpc nat进行反向还原以保证上层数据和底层数据的一致性。同步动作分为两个部分1.分别获取neutron的vip信息和网关的nat规则2.通过neutron信息分析出源vpc和目的vpc以及nat ip通过这三个字段唯一定位出一个打通实例然后再通过这个实例按照打通原则检查数据完整性。四、VPC NAT的数据完整性检查由于vpc会动态变化增删子网因此它打通的实例应该具有的规则是会变化的所以需要有一个检查流程能够发现我当前vpc针对某个实例实际上应该是什么样子。思路以真正会影响到用户的点开始检查上下层。并且上层优先级高原则。可依赖的点有两个neutron和网关因为网关规则大多关注IP地址网段信息而这些在公有云场景下是会重复的因此为了更通用选择包含上下层uuid信息的neutron作为发起点。遍历所有neutron节点从节点上拉取neutron侧的vpc nat信息这样可以获得两个重要信息network_vni和port_uuid。根据创建vpc nat的流程就能知道network_vni是属于源vpc的而port则是属于目的vpc的某个子网的。因此通过network_vni和port就能反查出源vpc和目的vpc了。有了这个再加上nat_ip就能定位到唯一一个vpc nat实例。接下来分步骤来完成检查1.数据收集阶段获取数据 → 分类处理├── networkVpcNats (网络VPC NAT列表)├── neutronVpcNats (中子VPC NAT VIP)├── vpcNatRules (VPC NAT规则)└── wanips (WAN IP地址)2.数据分类阶段neutronVpcNatMap: 按 NetworkV2Uuid|ClientNetworkV2Uuid|Idc|NatIpAddress 分类natRuleMap: 按 源vpc_uuid|目的vpc_uuid|IDC 分类vpcNatMap: 按 NetworkV2Uuid|ClientNetworkV2Uuid|Idc|NatIpAddress 分类3. 验证主循环遍历 neutronVpcNatMap 中的每个条目├── 检查对应的 vpcNatMap 中是否存在├── 避免重复检查同一个 VPC NAT├── 准备验证所需的辅助数据(CIDR、区域信息)└── 调用 VpcNatValidate 进行详细验证4. VpcNatValidate 验证逻辑阶段1初始化与 NeutronInfo 映射构建阶段2遍历 srcRegions 校验配置阶段3NAT 规则校验与完成该函数执行两个主要验证A. Neutron 信息验证检查每个源区域是否都有对应的 neutron VPC NAT 信息验证 neutron 信息的正确性(IP、MAC、端口ID、隧道ID)处理缺失或错误的信息B. NAT 规则验证检查是否存在对应的 NAT 规则验证规则的源/目标 CIDR 配置确认 WAN IP 是否正确绑定到规则处理重复或缺失的规则整体处理流程图END360智汇云开发者公众号专注于为大家提供更多技术分享更多产品干货请移步“360智汇云”360智汇云是企业智数云底座以“智-数-云”三大核心底座为支柱以贯穿全程的 “观测与管控” 为神经中枢全链路赋能企业数智基建在 “用、运、管、看、维” 五维生命周期中实现价值闭环。提供数据库、中间件、存储、大数据、人工智能、计算等多种产品服务以及一站式解决方案让每一份IT投入都转化为智能生产力。官网https://zyun.360.cn添加工作人员企业微信get更快审核通道产品免费试用包哦~
VPC NAT跨VPC打通实现原理、数据同步与完整性检查机制
发布时间:2026/5/30 20:34:08
一、技术背景在公有云多VPC、多地域、多节点的复杂组网架构中不同VPC之间默认网络隔离无法直接进行内网互通。但实际业务场景中普遍存在跨VPC的业务交互需求如业务VPC与数据库VPC数据互通、子业务VPC与核心服务VPC资源调用、多地域VPC集群联动等。为了在保障网络隔离安全性的前提下实现跨VPC内网安全互通、流量统一调度平台引入VPC NAT能力。区别于传统VPC网关出网NAT公网访问转换本文所述VPC NAT核心用于私有网络域内源VPC到目标VPC的内网SNAT流量打通通过固定VIP地址、统一NAT规则、多节点同步配置的方式实现跨VPC的定向网络互通。同时由于云平台VPC支持动态扩缩容、子网增删、多地域多Neutron节点部署且NAT配置涉及Neutron底层网络配置、网关路由规则、上层VPC业务记录多层数据极易出现上下层数据不一致、配置缺失、规则失效等问题。因此除核心的VPC NAT打通创建流程外平台配套设计了专属的数据同步机制与数据完整性检查机制保障跨VPC NAT打通配置的准确性、一致性和有效性。下文将详细阐述VPC NAT的具体实现步骤、底层数据表设计、数据同步逻辑及完整性校验核心流程。二、VPC NAT的实现步骤vpc nat是描述的一个vpc到另一个vpc的snat打通关系的实例。创建vpc nat需要执行三个动作1.在目标vpc中创建一个port这个port就是源vpc访问目的vpc的vipvip可以有多个2.把刚刚创建的port信息通知给源vpc的所有neutron因为vpc下可以有多个region每个region对应一个neutron所以源vpc有多少个region就要通知多少次通知的信息包括port的uuidport的mac地址port的IP地址vipport的network的vni源vpc在当前通知的region中的network名字3.通知网关更新nat规则更新的是port的idc所在的地域一个vpc nat打通关系在网关侧相同的idc中只有一个nat规则同时这个规则可以绑定到多个port这个port的地址就是规则的wan ip相同IDC的wan ip全部绑定在同一个规则上。规则需要包含wan ip的port所在的region调度算法默认设置为wrr最主要的要包含所有源vpc覆盖的cidr字符串用逗号隔开以及目的vpc的所有子网的vni和网段的对应关系vpc nat实例用openstack_network_vpc_nats中的记录表示原设计是一个记录表示一个打通关系。openstack_network_vpc_nats记录的是vpc层面的信息。由于后续可能同一组vpc打通关系中需要有多个目的nat ip也就是多个wan ip的场景因此之后应该以nat ip源vpc目的vpc来表示一个打通关系了。openstack_neutron_vpc_nats表用来记录neutron通知过的vip信息对于每个nat ip在源vpc的所有region里都应该有一个底层实例与之对应。由于网关nat规则和打通关系不是一一对应的关系因此单独创建一个表openstack_neutron_vpc_nat_rules来记录给网关下的nat规则。由于neutron保存了源vpc的region中的network vni和nat ip对应的port uuid因此通过这两个信息就能获取到源vpc和目的vpc了。三、VPC NAT的数据同步neutron不保存具体的vpc打通信息只包含打通操作的nat ip以及需要知道nat ip的neutron节点由于nat ip的port是在目的vpc的而保留nat ip的信息的neutron是源vpc的打通维度又是在vpc维度。因此通过获取neutron的数据就能从底层看出vpc nat的打通关系从而对vpc nat进行反向还原以保证上层数据和底层数据的一致性。同步动作分为两个部分1.分别获取neutron的vip信息和网关的nat规则2.通过neutron信息分析出源vpc和目的vpc以及nat ip通过这三个字段唯一定位出一个打通实例然后再通过这个实例按照打通原则检查数据完整性。四、VPC NAT的数据完整性检查由于vpc会动态变化增删子网因此它打通的实例应该具有的规则是会变化的所以需要有一个检查流程能够发现我当前vpc针对某个实例实际上应该是什么样子。思路以真正会影响到用户的点开始检查上下层。并且上层优先级高原则。可依赖的点有两个neutron和网关因为网关规则大多关注IP地址网段信息而这些在公有云场景下是会重复的因此为了更通用选择包含上下层uuid信息的neutron作为发起点。遍历所有neutron节点从节点上拉取neutron侧的vpc nat信息这样可以获得两个重要信息network_vni和port_uuid。根据创建vpc nat的流程就能知道network_vni是属于源vpc的而port则是属于目的vpc的某个子网的。因此通过network_vni和port就能反查出源vpc和目的vpc了。有了这个再加上nat_ip就能定位到唯一一个vpc nat实例。接下来分步骤来完成检查1.数据收集阶段获取数据 → 分类处理├── networkVpcNats (网络VPC NAT列表)├── neutronVpcNats (中子VPC NAT VIP)├── vpcNatRules (VPC NAT规则)└── wanips (WAN IP地址)2.数据分类阶段neutronVpcNatMap: 按 NetworkV2Uuid|ClientNetworkV2Uuid|Idc|NatIpAddress 分类natRuleMap: 按 源vpc_uuid|目的vpc_uuid|IDC 分类vpcNatMap: 按 NetworkV2Uuid|ClientNetworkV2Uuid|Idc|NatIpAddress 分类3. 验证主循环遍历 neutronVpcNatMap 中的每个条目├── 检查对应的 vpcNatMap 中是否存在├── 避免重复检查同一个 VPC NAT├── 准备验证所需的辅助数据(CIDR、区域信息)└── 调用 VpcNatValidate 进行详细验证4. VpcNatValidate 验证逻辑阶段1初始化与 NeutronInfo 映射构建阶段2遍历 srcRegions 校验配置阶段3NAT 规则校验与完成该函数执行两个主要验证A. Neutron 信息验证检查每个源区域是否都有对应的 neutron VPC NAT 信息验证 neutron 信息的正确性(IP、MAC、端口ID、隧道ID)处理缺失或错误的信息B. NAT 规则验证检查是否存在对应的 NAT 规则验证规则的源/目标 CIDR 配置确认 WAN IP 是否正确绑定到规则处理重复或缺失的规则整体处理流程图END360智汇云开发者公众号专注于为大家提供更多技术分享更多产品干货请移步“360智汇云”360智汇云是企业智数云底座以“智-数-云”三大核心底座为支柱以贯穿全程的 “观测与管控” 为神经中枢全链路赋能企业数智基建在 “用、运、管、看、维” 五维生命周期中实现价值闭环。提供数据库、中间件、存储、大数据、人工智能、计算等多种产品服务以及一站式解决方案让每一份IT投入都转化为智能生产力。官网https://zyun.360.cn添加工作人员企业微信get更快审核通道产品免费试用包哦~