У меня есть виртуальная машина VirtualBox, в которой есть:
eth0: 10.0.2.15/24
default-gateway: 10.0.2.2/24
В этой виртуальной машине у меня есть 2 контейнера LXC (т.е. две другие виртуальные машины)
VM1 - eth0: 10.50.50.50/16 (connects to br0)
VM2 - eth0: 10.50.50.51/16 (connects to br0)
На экземпляре виртуального бокса я попытался настроить мост br0:
br0: 10.50.0.1/16 -> eth0
Но эта настройка не работает, как только я подключаю мост к eth0, eth0 больше не может пинговать маршрутизатор. Я не понимаю, какие правила я нарушаю, пытаясь настроить другую сеть на стороне br0 моста, чем на стороне eth0.
Я думал, что трафик с одной стороны просто реплицируется на другую. Таким образом, трафик на хосте virtualbox попадет в eth0 и станет шлюзом по умолчанию. И трафик в сети контейнеров LXC попадет на br0, перейдет на eth0 и станет шлюзом по умолчанию.
Где глупость в моих мыслях?
Я предполагаю, что проблема в том, что вы пытаетесь соединить две разные подсети. Eth0 теряет IP-адрес, когда вы подключаете его к мосту, поэтому единственный адрес, который у вас остается, - 10.50.0.1/16. Отсюда невозможность пинговать gw. Если вы хотите, чтобы ваши виртуальные машины находились в другой подсети, возможно, вам следует рассмотреть возможность маршрутизации или NAT вместо мостового соединения.