AWS:为什么Internet网关执行NAT?

时间:2018-03-08 05:51:39

标签: amazon-web-services networking nat amazon-vpc vpc

  

Internet网关有两个用途:在VPC路由表中为可路由Internet的流量提供目标,并为已分配公用IPv4地址的实例执行网络地址转换(NAT)。

来源:https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html

如果上述实例具有公共IPv4地址,为什么Internet网关需要执行网络地址转换?如果有一个网络流程的示例,那将是很好的,该网络流程将被

的场景破坏
  • 已连接Internet网关的VPC子网
  • 该公共IP地址空间中具有IP地址(AWS VPC用语中的弹性IP)的VPC子网中的实例
  • Internet上的主机无法在没有Internet网关执行NAT的情况下将数据包发送到这些实例

2 个答案:

答案 0 :(得分:3)

尽管EC2(或具体来说:与该EC2相关联的ENI)实例已与公共IP地址相关联。它不知道它!

这是来自原始链接中共享的相同网址。 “您的实例只知道VPC和子网中定义的私有(内部)IP地址空间”

这意味着所有进出ENI的网络流量都是通过私有IP地址进行的。

如果查看同一页面上的图表,您将看到一个路由器。 这个路由器

  • 在VPC中跨所有子网进行路由
  • 路由到Internet网关

EC2 / ENI将与此路由器进行交互。

路由器将流量定向到Internet网关(IGW)后: IGW在该VPC内映射了EC2实例的(公共IP - 私有ip)。

EC2向互联网发送流量的步骤

  • EC2与私有10.0.1.1 IP向google.com发送请求(curl google.com)或尝试访问公共aws构造,如s3
  • 我们假设这是公共子网。因此,与此子网关联的路由器会将此流量转发到默认路由(0.0.0.0/0)到IGW
  • IGW查找其内部表(私有ip:public ip)。使用该表进行NAT转换。

我本来想描述你的场景,但我不明白为什么IGW不会执行NAT。

答案 1 :(得分:3)

ENI的实例端只有一个私有地址。公共地址通过关联弹性IP或分配公共地址来完成。这些公共地址的映射来自Internet网关的NAT功能。

  

您的实例仅知道VPC和子网中定义的专用(内部)IP地址空间。 Internet网关在逻辑上代表您的实例提供一对一NAT,以便当流量离开您的VPC子网并进入Internet时,应答地址字段将设置为您的实例的公共IPv4地址或弹性IP地址,而不是其私有IP地址。相反,在将流量传送到VPC之前,发往您的实例的公共IPv4地址或弹性IP地址的流量将其目标地址转换为实例的私有IPv4地址。

引用问题中链接的相同documentation

入站流量的流量为Public Address - > Internet Gateway - > Private Address

如果主机所在的子网中没有通过IGW定义的默认路由的路由表,则该实例将无法返回流量。