Я хочу создать мост в моем экземпляре EC2 и связать с ним IP-адрес.
Учитывая значение по умолчанию /etc/network/interfaces
файл:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Я просто добавляю в конец:
auto br0
iface br0 inet static
address 10.0.3.1
netmask 255.255.255.0
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
post-up brctl setfd br0 0
Как только я перезапускаю сеть или просто запускаю ifup br0
, Я теряю подключение к экземпляру EC2 (т.е. я больше не могу подключиться к нему по SSH).
Что может быть причиной?
Когда вы добавляете интерфейс к мосту, у реальных интерфейсов больше не должно быть связанных IP-адресов - они должны быть перемещены на мост. Ваша конфигурация должна выглядеть примерно так:
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0
Это должно привести к тому, что IP-адрес, предоставленный EC2, будет присоединен к br0.
Однако запуск моста в EC2 не очень полезен (не уверен насчет VPC, но определенно, если вы не используете VPC), поскольку у вас нет полного доступа уровня 2 к сети и вы не можете предоставить несколько, произвольные IP-адреса в сети. Сеть EC2 будет отклонять пакеты из ваших контейнеров LXC, если исходный IP-адрес не совпадает с IP-адресом экземпляра.
Вероятно, вы захотите создать мост для контейнеров LXC, но без eth0 в нем. Затем настроил переадресацию IP между eth0 и мостом с SNAT для исходящих соединений, чтобы EC2 видел только IP-адрес экземпляра.