В Debian 64bit я настроил lxc следующим образом:
ip хоста: 172.16.0.25 гость vm на этом хосте: 172.16.0.44
Я сделал мост на моем хосте
auto eth0
iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
down ifconfig eth0 down
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
address 172.16.0.25
netmask 255.255.255.0
gateway 172.16.0.52
На гостевой стороне я изменил конфигурацию с помощью
lxc.utsname = myGuest
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.hwaddr = 00:FF:12:34:56:78
lxc.network.ipv4 = 172.16.0.44/24
Когда я запускаю виртуальную машину: мой хост (172.16.0.25) и мой гость (172.16.0.44) могут пинговать друг друга. Но теперь другие физические машины в той же сети (172.16.0.0) не могут видеть моего гостя.
Та же проблема с моим гостем, который может видеть только IP своего хоста!
Фактически, я хотел бы получить такое же поведение, как мостовая сеть на VmWare Workstation. Что за маршрутизация VmWare делает, чтобы «везде» в сети было видно?
(Кстати, мой хост уже находится на сервере ESX, но я думаю, что на этом уровне это не актуально)
Ваш хост виртуализирован с помощью VMware, затем он подключается к виртуальному коммутатору, который не ожидает отображения большего количества MAC-адресов, чем у виртуализированных серверов VMware (то есть не lxc внутри гостевой системы VMware). Так что это определенно проблема уровня 2: VMWare (по крайней мере, VSwitch) получила пакеты с MAC-адресом, отличным от Mac-адреса хоста, и отбросила их. Таким образом, у гостя не будет возможности выйти за пределы своего хоста, поскольку для этого он должен пройти через Vswitch.
Обходной путь - включить разные mac-адреса на Vswitch. Это выполняется путем редактирования настроек на Vswitch (на хосте VMware, конфигурации, сети, выберите vswitch, к которому подключен ваш lxc-host, свойства, Edit, security, MAC-address changes -> Accept).