Я выполняю сервер 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 просто более удобен.
Кто-либо знает, почему это происходит? Я предполагаю, что это имеет отношение к нескольким, образующим мост, который происходит, но я не уверен. Что еще более важно, кто-либо знает, как зафиксировать это?
У меня была подобная проблема (хотя немного отличающийся сценарий, чем Ваш), и я наконец решил его.
я думаю, когда там мосты ara 2, первым является мост lxd, и вторым является одно виртуальное поле, создает, Вы присоединяетесь к ним через tuntap устройство.
Вот детали
сценарий :
В моей 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.
Для создания от ответа из @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
:
Теперь необходимо смочь говорить контейнерами LXD и легко установить эти tap0
интерфейс после перезапуска.