Назад | Перейти на главную страницу

lxc доступ к виртуальной машине вне хоста

В 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).