NAT网关仅执行SNAT,不处理入站流量,其核心是将私网IP/端口转换为公网IP/端口并维护五元组连接表,高可用依赖多AZ分布式部署而非主备切换。

NAT网关只做SNAT,不处理入站流量
云环境中的NAT网关是专用于私有子网出站流量的托管服务,它仅执行源地址转换(SNAT),即把私网IP(如10.0.1.5)和端口替换成绑定的公网IP或SNAT池中的某个IP:端口组合。它不响应外部主动发起的连接,也不做DNAT、端口转发或防火墙策略。入站请求到达时,因无对应状态表项,直接被丢弃——这是NAT天然的安全边界。
状态表靠五元组唯一标识会话
NAT网关内部维护一张动态连接跟踪表,每条记录由以下五元组构成:内网IP、内网端口、协议类型、公网IP、公网端口。例如:10.0.1.5:49152 → 203.0.113.8:61200 (TCP)。这个组合必须全局唯一,才能区分同一公网IP下成百上千台私网主机的并发连接。表项在首次出包时创建,超时后自动老化:TCP连接通常保留至FIN交换完成后再加30–60秒;UDP依赖定时器,一般设为2–5分钟。
数据包改写与校验和重算不可省略
当私网实例发出SYN包,NAT网关执行三项关键操作:
• 将IP头部源地址替换为公网IP
• 将TCP/UDP头部源端口替换为映射端口
• 重新计算IP首部校验和、TCP/UDP伪首部校验和(因IP和端口变更导致原校验值失效)
任何一步遗漏都会导致数据包在网络中被中间设备丢弃。响应包回来时,网关用反向五元组查表,还原目标IP和端口,并同样重算校验和,再转发回私网。
高可用不靠主备切换,而靠多AZ分布式部署
云厂商的NAT网关本身是无状态控制面+分布式数据面架构。你看到的“一个NAT网关ID”,底层实际由多个AZ内独立运行的数据节点协同承载。单点故障不影响整体转发能力,也无需人工触发切换。真正需要设计容灾的是上层架构:比如私有子网路由指向的NAT网关ID,应跨AZ部署多个实例,并通过路由表更新或应用层重试实现收敛。扩容则依赖SNAT地址池规模,而非单实例性能提升。

















