繁体   English   中英

卓:为什么 Inte.net 网关执行 NAT?

[英]AWS: Why does an Internet Gateway perform NAT?

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

资料来源: https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Inte.net_Gateway.html

如果上述实例都有公网IPv4地址,为什么Inte.net Gateway需要进行网络地址转换? 最好有一个网络流的例子,它会在一个场景中被破坏

  • 附加了 Inte.net 网关的 VPC su.net
  • 该 VPC su.net 中的实例在公共 IP 地址空间中具有 IP 地址(AWS VPC 术语中的弹性 IP)
  • 没有 Inte.net 网关执行 NAT,Inte.net 上的主机无法将数据包发送到这些实例

尽管存在EC2(或特定而言:与该EC2相关联的ENI)实例与公共IP地址相关联。 它不知道!

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

这意味着所有进入/进入ENI的网络流量都是通过专用IP地址进行的。

如果您在同一页上查看该图,则会看到一个路由器。 这个路由器

  • 是否在VPC的所有子网中进行路由
  • 是否路由到Internet网关

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

在路由器将流量定向到Internet网关(IGW)之后:IGW在该VPC中具有EC2实例的(public ip-private ip)映射。

EC2将流量发送到Internet的步骤

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

我想描述一下您的情况,但我不明白为什么IGW无法执行NAT。

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

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

引用问题中链接的相同文档

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

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

谢谢你的解释。 如果私有子网中的 EC2 发起出站流量,它会进入 NAT 网关,然后是 Internet GW。 在这种情况下,NAT 将由 NAT 网关处理,而 Internet 网关只做路由,对吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM