Я настраиваю EC2 в среде AWS VPC. Есть 1 экземпляр, 1 сетевой интерфейс и несколько эластичных IP-адресов. Пинговать можно только по основному адресу. Странно, до этого работали все IP. Вдруг (не уверен, но, вероятно, после перезагрузки) это произошло. Все эластичные IP-адреса связаны с экземпляром. Политики разрешают весь входящий и исходящий трафик.
Еще я заметил, что когда я пытаюсь связать эластичный IP-адрес с экземпляром без предоставления частного адреса, он заменяет основной общедоступный IP-адрес, а затем работает. Но когда я связываю другой неиспользуемый частный IP-адрес, он добавляется в список общедоступных IP-адресов сетевого интерфейса, и его невозможно проверить, поскольку другой IP-адрес является основным.
Я нашел решение. Проблема заключалась в том, что все вторичные внутренние адреса были неизвестны ОС. Следующий сценарий повторно подключает все вторичные адреса к сетевому интерфейсу 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
Взято из Вот.
У вас должно быть 2 разных внутренних IP-адреса, так как эластичные IP-адреса можно назначать только внутренним IP-адресам. Когда вы связываете эластичный IP-адрес, вам необходимо указать внутренний IP-адрес, иначе он заменит основной общедоступный IP-адрес.
Какие внутренние адреса вы используете? Кажется, они из того же диапазона CIDR, и экземпляр просто не может правильно его маршрутизировать.