AWS中NAT Gateway与Internet Gateway定义及相关技术疑问
1. 为何NAT Gateway必须部署在公有子网中?
NAT Gateway的核心作用是将私有子网内实例的私网IP转换为公网IP,以此实现私有资源访问互联网的需求。要完成这个转换,NAT Gateway自身必须拥有一个可直接访问互联网的公网IP——而公有子网的定义就是关联了Internet Gateway(IGW)、且子网内资源能自动分配公网IP的子网,刚好满足这个条件。
如果把NAT Gateway放在私有子网里,它本身没有直接到互联网的出口路径,既无法获取公网IP,也没法把转换后的流量发往互联网,自然起不到NAT的作用。另外从AWS的架构逻辑来看,NAT Gateway作为托管服务,需要直接接入到VPC与公网连通的网络平面,而公有子网正是这个平面的组成部分,私有子网则处于隔离的内网平面,不具备这个接入条件。
2. 为何NAT Gateway所在公有子网的路由表仍需指向Internet Gateway?
NAT Gateway只是一个地址转换节点,它本身不具备直接连接互联网的能力——VPC与互联网之间的唯一合法出入口只有Internet Gateway。
当NAT Gateway把私有子网的流量转换为公网IP后,这些流量需要被路由到IGW才能真正到达互联网;同时,NAT Gateway自身的运维流量(比如AWS对它的健康检查、固件更新等)也需要通过IGW和AWS的公网服务通信。如果所在公有子网的路由表没有配置0.0.0.0/0 -> IGW的路由规则,NAT Gateway的所有出站流量都会找不到出口,根本无法正常工作。
虽然公有子网默认通常会配置这条路由,但如果手动删除了,就必须重新添加,否则NAT Gateway就是个“断网”的转换节点,起不到任何作用。
内容的提问来源于stack exchange,提问作者Ashish

