据我所知,一个公共子网是一个可以通过互联网网关将stream量发送到互联网的子网,而一个私人子网是一个不能够到达互联网的networking,也不能通过互联网到达互联网。 为了访问互联网,私有子网需要通过NAT网关路由stream量。
我可以证实这一点,因为我实际上使用这个设置成功。
但是… 亚马逊文件却另有说明(大胆强调是我的):
公有子网中的实例可以直接从Internet接收入站stream量,而私有子网中的实例则不能。 公有子网中的实例可以将出站stream量直接发送到Internet,而私有子网中的实例则不能。 相反,私有子网中的实例可以通过使用启动到公有子网中的networking地址转换(NAT)实例访问Internet。
NAT网关所在的位置是否重要? 如果是这样,把它放在私有/公有子网中的用例是什么?
NAT网关(以及NAT实例,它的价值) 必须位于公共子网中,因为只有公共子网上的设备才能实际使用公共IP地址。
这就是公共子网的一个公共子网。
公共子网的迂回定义是一个子网,其关联的VPC路由表至less有一条路由指向因特网网关……但实际上,它通常是一个子网,其默认路由(在VPC路由表中)指向互联网网关。
相比之下,私有子网是没有这种路由的子网。 通常,私有子网的默认路由指向一个NAT设备,尽pipe它可以指向硬件VPN或直连连接。
如果NAT设备不在公共子网中,则它(根据定义)没有其转换的通信可以到达 Internet的路由,因为其出站通信量遵循其所在的子网的路由表。 。因此,NAT网关所在的子网 – 根据定义,必须是公有子网。
将NAT网关放置在公共子网上没有任何安全隐患,因为在任何情况下都不会接收到连接尝试。 这是你不能错误的configuration。
如果你想用局域网的话来说,一个自然的假设是,一个NAT设备需要至less在两个子网之上,即外部(公用地址)子网和内部(私有地址)子网 – 但是VPCnetworking是不是局域网看来是。 这是一个软件定义的第三层networking,非常干净地模拟以太网,但不是以太网。
公共和私人寻址的区别在于ISP同意不使用任意指定的专用寻址来路由数据包。 从知识产权的angular度来看,私人地址和公共地址并没有什么区别,地址的处理也是一样的。
NAT的逻辑位置是将专用networking连接到ISP的位置,而ISP不会路由具有专用地址的数据包。 这通常在私人寻址区的边缘,但这不一定是最好的地方。 例如,许多公司都有私人地址和公共地址,在公司内部和私人地区之间没有必要进行NAT,但是公司和任何使用私人地址的公司使用的ISP之间需要并从公共互联网。 如果所有具有私有地址的stream量都通过公司的公共区域进入公共互联网,那么该地点可能位于公司的公共区域。
NACL和路由表适用于NAT网关,因此您可以将NAT网关视为另一个EC2实例,因此需要在公共子网中访问Internet网关和路由stream量。
在AWS中,我没有看到NAT网关的其他用途,无法通过路由表来解决。