VirtualBox в LXD не может общаться с хостом LXD

Я выполняю сервер Ubuntu (поле сервера), какой isrunning контейнер LXD (lxd-поле) и LXD использует мост Ethernet, который я настроил использование этого руководства. lxd-поле выполняет экземпляр VirtualBox (vbox-поле). поле сервера, lxd-поле и vbox-поле все выполняют сервер Ubuntu 16.04. vbox-поле использует Ethernet VirtualBox, образующий мост для образования моста к eth0 на lxd-поле, которое самостоятельно соединяется мостом к enp5s0 на поле сервера.

Все три становятся присвоенными IP-адрес от LAN. Все три могут общаться с любым другим клиентом локальной сети. Кроме того, lxd-поле может связаться прекрасный с полем сервера и vbox-полем. Однако vbox-поле и поле сервера не могут связаться. А именно, я не могу инициировать ssh сессию между ними ни в одном направлении, в то время как я могу инициировать сессии обоим из/в lxd-поле. Это не просто ssh, я протестировал на горстке портов просто соединения TCP сырых данных инициирования с netcat. То же поведение. ssh просто более удобен.

Кто-либо знает, почему это происходит? Я предполагаю, что это имеет отношение к нескольким, образующим мост, который происходит, но я не уверен. Что еще более важно, кто-либо знает, как зафиксировать это?

1
задан 28 July 2016 в 06:13

2 ответа

У меня была подобная проблема (хотя немного отличающийся сценарий, чем Ваш), и я наконец решил его.

я думаю, когда там мосты ara 2, первым является мост lxd, и вторым является одно виртуальное поле, создает, Вы присоединяетесь к ним через tuntap устройство.

Вот детали

сценарий :

  • человечность 16.04 с:
  • lxd 2.0 (с lxdbr0) и несколько контейнеров в нем
  • virtualbox машина

В моей virtualbox конфигурации, я сделал доступным сетевой адаптер и соединил его для образования моста адаптера, выбрав lxdbr0. Это, казалось, работало, но затем я нашел ту же проблему, которую Вы сделали, не мог ssh к хосту человечности, не мог ssh к lxc контейнерам (на том же мосту) и так далее...

После поиска в Интернете (извините, я не могу предоставить ссылки), я нашел это решение.

На машине человечности 16.04, с полномочиями пользователя root:

root@ubuntu:~# ip tuntap add mode tap tap0
root@ubuntu:~# ip link set tap0 up
root@ubuntu:~# brctl addif lxdbr0 tap0
root@ubuntu:~# brctl show

bridge name bridge id       STP enabled interfaces
lxdbr0      8000.4e76f4d676d5   no      tap0

, После того как у Вас есть свой tap0, добавленный к мосту, можно настроить virtualbox машину, "соединяют соединение типа адаптера мостом" для соединения с tap0 (который уже находится в другом мосту).

кажется, что необходимо образовать мост к интерфейсу вместо того, чтобы образовать мост к мосту.

В Вас сценарий, необходимо создать tap0 в lxd-поле. Этот tap0 будет добавлен к 2 мостам, тому на lxd и другому на virtualbox.

2
ответ дан 7 December 2019 в 13:43

Для создания от ответа из @ayito, можно также сделать персистентное tap0 устройство. Редактирование /etc/network/interfaces полномочия пользователя root использования и добавляет:

iface tap0 inet manual
    pre-up ip tuntap add mode tap tap0
    up ip link set tap0 up
    post-up brctl addif lxdbr0 tap0
    pre-down brctl delif lxdbr0 tap0
    down ip link set tap0 down
    post-down ip link del tap0

После сохранения, выполненного sudo ifup tap0

Для проверки этого, это запустилось выполненный brctl show. Необходимо видеть tap0 как интерфейс lxdbr0.

Каждый раз Вы перезапускаете свой компьютер и хотите использовать интерфейс, работать sudo ifup tap0 Примечание: можно также добавить это как сценарий запуска, но он должен бежать lxdbr0, запустился.

В Virtualbox, используйте "Соединенный мостом Адаптер", подключенный с tap0:

VirtualBox Network

Теперь необходимо смочь говорить контейнерами LXD и легко установить эти tap0 интерфейс после перезапуска.

0
ответ дан 7 December 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: