我在 AWS VPC 环境中配置了 EC2。有 1 个实例、1 个网络接口和多个弹性 IP。只能 ping 主地址。奇怪的是,之前所有 IP 都正常工作。突然(不确定,但可能是在重启后)发生了这种情况。所有弹性 IP 都与实例相关联。策略允许所有进出流量。
我注意到的另一件事是,当我尝试将弹性 IP 与实例关联而不提供私有地址时,它会替换主公共 IP,然后就可以正常工作。但是当我关联另一个未使用的私有 IP 时,它会被附加到网络接口的公共 IP 列表中,并且无法 ping 它,因为其他 IP 是主要的。
答案1
您必须拥有 2 个不同的内部 IP 地址作为弹性 IP,并且只能将其分配给内部 IP。关联弹性 IP 时,您需要指定内部 IP,否则它将取代主公共 IP。
您使用哪些内部地址?它们似乎来自同一 CIDR 范围,实例根本无法正确路由它。
答案2
我找到了一个解决方案。问题是,所有辅助内部地址对于操作系统来说都是未知的。以下脚本将所有辅助地址重新连接到 eth0 网络接口。
MAC_ADDR=$(ifconfig eth0 | sed -n 's/.*HWaddr \([a-f0-9:]*\).*/\1/p')
IP=($(curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC_ADDR/local-ipv4s))
for ip in ${IP[@]:1}; do
echo "Adding IP: $ip"
ip addr add dev eth0 $ip/24
done
取自这里。