
В настоящее время у меня есть один экземпляр ec2, на который я хотел бы иметь 2 публичных IP-адреса, указывающих на него. У меня выделено 2 EIP, 2 сетевых интерфейса, к которым подключены EIP, и которые оба подключены к одному экземпляру EC2, работающему под управлением Ubuntu 14.04.2 LTS. Недавно были добавлены второй EIP и сетевой интерфейс, и действительно появляется , eth1
хотя в настоящее время мне приходится вручную запускать dhclient
, но проблема не в этом. Проблема в том, что пакеты не проходят. Я трижды проверил свои группы безопасности, все они разрешают порт 80 с любого IP-адреса. Однако добавление правила счетчика байтов в iptables, например, iptables -A INPUT -i eth1
показывает, что ровно 0 пакетов достигают моей машины через второй интерфейс.
Я нашел и прочиталэтотно это не помогает.
Что я упустил? Может, я забыл нажать какую-то кнопку?
решение1
У меня есть корректно работающий экземпляр ec2 с 2 частными IP-адресами и 2 EIP, подключенными к ним, но я использовал подынтерфейс для второго IP-адреса, а не другой сетевой интерфейс.
Содержимое /etc/network/interfaces (debian wheezy)
auto lo
iface lo inet loopback
auto eth0 eth0:0
iface eth0 inet dhcp
post-up ifconfig eth0:0 172.31.xx.yy netmask 255.255.240.0 up
я не помню, почему я назначил IP-адрес eth0:0 вручную, но эта настройка работает. Также тестирую с
curl --interface PRIVATE_IP ifconfig.me
показывает, что исходящий трафик с eth0 и eth0:0 действительно инициируется с правильного EIP.
решение2
Прошел год, и я наконец понял! СпасибоЭта статья. В итоге:
Если вы еще этого не сделали, запустите dhclient на новом интерфейсе:
# dhclient eth1
Затем выясните, какой у вас новый частный IP-адрес. Вы можете либо посмотреть в консоли EC2, либо запустить
ip addr
Вам также необходимо знать IP шлюза. В большинстве случаев это your.ip.0.1
, но просто для уверенности запустите:
ip route
И вы должны увидеть что-то вроде:
default via 12.34.0.1 dev eth0
12.34.0.1
в данном случае это шлюз. Для демонстрации я предположу, что частный ip — 12.34.56.78
. Теперь запустите (как root):
ip rule add from 12.34.56.78 table 1000
ip route add default via 12.34.0.1 dev eth1 table 1000
ip route flush cache
Чтобы проверить вашу конфигурацию:
curl --interface 12.34.56.78 ifconfig.me
Затем, чтобы сделать ваши изменения постоянными, добавьте к /etc/network/interfaces
этим командам и их обратные команды:
auto eth1
iface eth1 inet dhcp
up ip rule add from 12.34.56.78 table 1000
up ip route add default via 12.34.0.1 dev eth1 table 1000
down ip rule del from 12.34.56.78 table 1000
down ip route del default via 12.34.0.1 dev eth1 table 1000
ПРИМЕЧАНИЕ. Перед изменением постоянных сетевых настроек убедитесь, что у вас есть снимок вашего экземпляра, на случай, если что-то сломается и вы не сможете получить доступ к своему экземпляру.