我们的 AWS EC2 网络中有 2 个 VPC,并且有 2 个具有相同弹性 IP 的不同运行服务器。
这怎么可能?我以为 IP 必须是唯一的。
答案1
这不是关于弹性 IP 的特别回答,而是关于两台机器如何拥有相同外部 IP 地址的描述。首先,这是在典型的家庭局域网或办公室,甚至整个公司中通过 NAT 的情况。
我在同一台机器(不是 AWS)中拥有多个 VPS 服务器,它们共享相同的外部 IP。这是使用 NAT 完成的。这些机器还有一个内部私有 IP,用于它们之间的通信。在传入连接中,我使用 iptables 将某些端口转发到特定的 vps。因此,例如,如果我想 ssh 到 vps1,我会 ssh 到端口 7001,该端口被转发到 VPS1 的私有 IP 端口 22。对于 vps2,我使用端口 7002,依此类推。对于 Web 连接,我将端口 80 转发到运行反向 HTTP 代理的 VPS,该代理根据 HTTP 请求中指定的主机名使用私有 IP(例如 192.168.1.101)将每个请求路由到适当的 VPS。我使用 shorewall 作为 iptables 的前端来设置它。
因此,也许两个 AWS 服务器可以共享同一个弹性 IP,并制定一些有关传入连接转到哪个服务器的进一步规则。为了实现负载平衡或容错,两台机器可能运行相同的 Web 服务器,因此使用哪一个并不重要。每个请求可能会转到不同的服务器。