我对 AWS 设置有一些疑问,请澄清。
我创建了一个 VPC,其 CIDR 为 172.16.0.0/16,这是一个私有 IP 范围。在我的路由表中,我路由了来自此范围的所有流量。以下是我的查询。
- IGW 如何连接到互联网(因为 CIDR 范围是私有的)?
- 此场景中 EC2 实例的 IP 范围是什么?是 172.16.xx 吗?
- 是否可以为不在 CIDR 范围内的 EC2 实例分配公共 IP?
- 弹性 IP 对此有何影响?
任何有关这些问题的帮助都将不胜感激。
提前致谢。
答案1
正在运行的实例内核中的 IP 堆栈仅知道实例的私有 IP 地址。
IGW 是具有静态映射的 1:1 NAT 设备,它将实例的私有 IP 转换为实例分配的公共 IP(如果有),以用于往返 Internet 的流量。IGW 的配置是完全自动的。IGW 不是物理位置的物理设备。它是一个逻辑实体,其功能由网络基础设施本身执行。
没有公有 IP 的实例不能位于默认路由为 IGW 的子网中(称为“公有子网”,因为它旨在供具有公有 IP 的实例使用)。相反,它们必须放置在默认路由指向 NAT 网关或 NAT 实例的子网中(“私有子网”,旨在供仅具有私有 IP 的实例使用),以便它们的流量最终可以使用该 NAT 设备的公有 IP 地址进行出站互联网访问。
EC2 实例的私有 IP 地址不可能超出实例所在子网的 CIDR 范围。如果您更改实例本身的以太网接口上的 IP 地址,则该实例将无法访问。
当 EC2 实例具有公有 IP 时(无论是因为它是在请求的 IP 下启动的,还是在配置为自动分配 IP 的子网上启动的),该地址来自公有池,当实例停止或终止时,该地址将消失,并且无法回收。EIP 在操作过程中的工作方式相同,只是它会分配给您的账户,直到您释放它,因此如果它附加到随后停止的实例,它不会发生变化。您无需为任何附加到正在运行的实例的第一个 EIP 付费。同一台计算机上的其他 EIP、附加到已停止实例的 EIP 或未附加任何内容的 EIP 均需付费。
答案2
当您说“我已路由此范围内的所有流量”时,您将其路由到哪里了?这有点含糊。您无法在 VPC 中路由流量,您可以在子网、互联网和其他几个我将跳过的地方之间路由流量。
互联网网关 (IGW) 以 AWS 未描述的方式连接到互联网。它就是有效。
除非您已创建子网,否则无法在 VPC 中创建实例。如果您创建单个 /16 子网(非常大,有 65K 个主机),那么它的 IP 就是 172.16.xx。如果您创建子网 172.16.0.0/24,那么 IP 就是 172.16.0.x。
VPC CIDR 范围仅适用于私有 IP。AWS 会分配第二个 IP 作为公共 IP 或弹性 IP。一般来说,任何服务器(无论是否使用 AWS)都可以拥有多个 IP。
问题不明确。请参阅#3。
我一般建议你先参加 Linux Academy 或 Cloud Guru 的 AWS Architect Associate 等课程,了解 AWS VPC 的基础知识,然后再尝试将其用于商业用途。Server Fault 是 IT 知识丰富的专业人士提问的地方,而不是初学者提问的地方。SuperUser.com 可能更适合回答这类问题。