Скажем, нам нужно предоставить контейнер LXC (LXC) или виртуальную машину Virtualbox (VBM) в общедоступную сеть со своим собственным IP-адресом (в пределах дополнительно назначенной сети - ADD-net), который будет маршрутизироваться через основной хост. В среде SOHO вполне нормально использовать LXC / VBM с его сетью на основе моста на основном сетевом интерфейсе главного хоста (скажем, eth0), но это не работает для систем colo- / hosting, если порт коммутатора защищен только одним MAC- адрес в соответствии с политикой хостера.
Как правильно это сделать?
Мне удалось сделать это, создав искусственный интерфейс моста (br0), которому назначен один из IP-адресов ADD-net, а затем подключив порт Ethernet LXC / VBM к br0. Внутренняя маршрутизация LXC / VBM настроена на использование IP br0 в качестве шлюза по умолчанию.
Это неплохое решение, но когда дело доходит до некоторых вспомогательных сетевых интерфейсов, полезно знать, что ядро Linux имеет специальный фиктивный драйвер сетевых интерфейсов: modinfo dummy
→
filename: /lib/modules/3.0.0-12-server/kernel/drivers/net/dummy.ko
alias: rtnl-link-dummy
license: GPL
srcversion: 8CE65B44AD98B2E491B343B
depends:
vermagic: 3.0.0-12-server SMP mod_unload modversions
parm: numdummies:Number of dummy pseudo devices (int)
На мой взгляд, излишне использовать интерфейс briding только для того, чтобы подключить к нему VirtualBox.
UPD.: Стоит отметить, что фиктивная сетевая карта по умолчанию довольно краткая настройка, поэтому, чтобы подружить ее с Ethernet, вам необходимо настроить ее, включив ARP: ip l set dummy0 up arp on
Правильный способ сделать это - добавить маршрутизатор между вашими виртуальными машинами и вашим интернет-провайдером. Это именно то, что вы сделали, добавив br0
. Ваш хост выполняет маршруты между различными сетевыми интерфейсами и br0, а br0 действует как коммутатор, к которому вы подключаете виртуальные машины. Весь трафик к вашему интернет-провайдеру будет покидать ваш хост с MAC-адресом сетевого интерфейса хоста.
Эта настройка требует, чтобы ваш интернет-провайдер маршрутизировал трафик для IP-адресов вашей виртуальной машины на IP-адрес вашего хоста (я считаю, что это то, что вы имеете в виду под «дополнительно назначенной сетью»).