Назад | Перейти на главную страницу

Эластичный IP-адрес EC2 не разрешается в частный IP-адрес на экземпляре debian

Я читал на многих сайтах, что ответ на присоединение нескольких общедоступных IP-адресов к экземпляру EC2 (для SSL, перенаправления, любых целей) состоит в том, чтобы создать несколько частных IP-адресов, прикрепить эластичные IP-адреса к вышеупомянутым частным адресам, убедившись, что ENI с частными IP-адресами присоединяются к экземпляру EC2 и, наконец, гарантируют, что соответствующий сетевой интерфейс создан и настроен в ОС, работающей на экземпляре EC2.

Итак, если я правильно понимаю, до тех пор, пока частный IP-адрес связан с экземпляром EC2 и впоследствии настроен на нем, эластичный IP-адрес будет разрешен на этот частный IP-адрес, то есть на эту машину (при условии, что сетевой интерфейс правильно настроен на машине и соответствует прилагаемому ENI).

Я не могу, хоть убей, заставить это работать. У меня есть новый ENI с новым частным IP-адресом, который привязан к моему экземпляру. У меня есть эластичный (общедоступный) IP, связанный с частным IP на этом ENI.

Я создал новый сетевой интерфейс на своем компьютере Debian 7 (eth1, который был назначен AWS при создании второго ENI) с использованием частного IP-адреса, как показано ниже:

auto lo
iface lo inet loopback
auto eth0 eth1
iface eth0 inet dhcp
iface eth1 inet static
  address xxx.xxx.xxx.xxx
  netmask xxx.xxx.xxx.xxx

РЕДАКТИРОВАТЬ: Я также пробовал

auto lo
iface lo inet loopback
auto eth0 eth1
iface eth0 inet dhcp
iface eth1 inet dhcp

Я проверил, что частный IP-адрес и второй интерфейс правильно установлены с помощью команды «ifconfig», которая показывает и eth0, и eth1. Я могу пропинговать частный IP-адрес. У меня есть соответствующий общедоступный IP-адрес, установленный в DNS (который должен разрешать частный IP-адрес).

Короче говоря, я не могу пропинговать имя A, которое отображается на мой второй общедоступный IP-адрес, или сам IP. Они все время истекли. Мой брандмауэр разрешает запросы ICMP, а моя группа безопасности AWS разрешает все входящие и исходящие порты / хосты.

Что, черт возьми, мне не хватает? Я застрял в этом почти три дня. Я чувствую, что близок, но это должно быть что-то очевидное.

ping dev2.my.tld
PING dev2.my.tld (xxx.xxx.xxx.xxx) 56(84) bytes of data.
^C
--- dev2.my.tld ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3022ms

У меня была аналогичная проблема, но я смог решить ее, изменив маршрутизацию. Мне пришлось добавить эти маршруты в мой файл / etc / network / interfaces:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up ip route add default via g.g.g.g dev eth0 tab 1
post-up ip rule add from x1.x1.x1.x1/32 tab 1 priority 500

auto eth1
iface eth1 inet dhcp
post-up ip route add default via g.g.g.g dev eth1 tab 2
post-up ip rule add from x2.x2.x2.x2/32 tab 2 priority 600

где x1.x1.x1.x1 и x2.x2.x2.x2 - мои частные IP-адреса. g.g.g.g - это IP-адрес, полученный из существующей таблицы маршрутов. Чтобы получить это, беги ip route show в командной строке и запишите IP в строке default via g.g.g.g dev eth0

Как только я перезагрузил сеть, все заработало.

Мне удалось собрать это вместе в следующем сообщении на форуме AWS: https://forums.aws.amazon.com/message.jspa?messageID=404454

Вам не нужно вносить какие-либо изменения в настройки сети вашего экземпляра. Если вы настроили EIP и связали их со своим ENI, это будет работать. Предлагаю вам контролировать настройки вашей группы безопасности.