【问题标题】:How packet gets routed towards IGW of my VPC?数据包如何路由到我的 VPC 的 IGW?
【发布时间】:2020-03-13 05:06:46
【问题描述】:

以下是与我的 VPC 的 IGW 关联的公共路由表,

其中第一个条目表示目标 IP 地址(私有)部分的 CIDR 空间 172.31.0.0/16 的任何数据包都将被此 VPC 接受(target-local)。


但来自互联网的数据包的目标 IP 为公共 IP(分配给公共子网的 NAT 或公共子网中的任何实例),如下图:

AWS 控制台允许使用公有 IP 到私有 IP 转换表配置 NAT。但 NAT gw 位于公共子网内,位于 IGW 后面。


VPC 是互联网上的自治系统,具有自己的网关 (IGW)。 AWS 控制台不允许将公共 IP 分配给 IGW。

 IGW 是 VPC 的入口点...但没有为 IGW 分配任何公共 IP。如果没有为 IGW 分配公共 IP,来自互联网的数据包如何到达我的 vpc?

【问题讨论】:

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


    【解决方案1】:

    也许我不明白你的问题......但是,想象一下,你所有的公共 IP 都坐在 IGW 上......然后,他知道它必须翻译成哪个内部 IP。 IGW 有一个 NAT 表。一般来说,它看起来像“公共 IP -> 内部 IP”。因此,当数据包到达您的 IGW 时,它会将 IP 标头的目的地重写为您的内部地址。这是您在 aws 控制台的任何地方都看不到的某种配置。相反,如果您的服务器响应该请求,IGW 会在 IP 标头的源部分中转换私有地址

    当您创建实例并选择自动分配公共 IP 地址时,AWS 编排器会自动配置 IGW 以将该公共 IP 指向您的实例。

    如果您有一个“非公共”子网,并且希望仅从 VPC 内部到外部访问 Internet,该怎么办?那么你需要一个 NAT 网关。 NAT 网关仅使用一个公共 IP 隐藏所有私有 IP。这意味着,来自您的非公共子网的所有数据包源地址都将转换为一个公共 IP。这意味着,您可以启动与 Internet 的连接,但没有人可以启动与您的服务器的连接。这称为 NAT 过载。通过这种技术,NAT 使用 tcp/udp 端口​​作为转换标识符。像这样:sourcePrivate-ipX:sourcePort32001 转换为 sourcePublicIP:sourcePort32001... 然后,当返回数据包到来时,NAT-GW 会查看目标地址和端口,并知道它必须将数据包发送到哪个私有 IP

    编辑...啊啊啊现在我明白了...您将 IGW 和 NAT-GW 混淆了!如果您有想要连接到 Internet 的私有子网,您只需要在公共子网中使用 NAT-GW。 NAT-GW 和 Internet GW 是 2 双鞋,它们都在执行翻译:-)

    【讨论】:

    • IGW 没有转换表。与 NAT 不同,没有为 IGW 分配公共 IP。 IGW 是传入数据包的入口点。
    • 我不同意:互联网网关有两个目的:在您的 VPC 路由表中为互联网可路由流量提供目标,并为已分配的实例执行网络地址转换 (NAT)公共 IPv4 地址。 docs.aws.amazon.com/en_en/vpc/latest/userguide/…
    • 是的,它是入口点。它是负责翻译数据包的设备......它是虚拟和物理东西之间的接口
    • 我的意思是,AWS 控制台允许 NAT gw 分配公共 IP,但 AWS 控制台不允许 IGW 分配公共 IP。您可以验证这一点。
    • 是的,nat-gw 是属于您的 vpc 的设备...您可以为其添加弹性 ip...现在想知道这个弹性 ip 位于哪个设备上?在 IGW 上:-).... igw 是某种负载均衡器,可为所有 vpc 提供 Internet 访问。此设备受 aws 控制,幸运的是,您当然不能对其进行配置
    猜你喜欢
    • 2021-06-17
    • 2021-07-29
    • 2021-06-13
    • 2021-01-27
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多