Пожалуйста, я пытаюсь сделать ping 10.0.3.8 (ip контейнера LXC) из VMB, но это не сработало! Есть идеи, пожалуйста?
Вот объяснение того, что я хочу сделать: (красная стрелка)
Синие стрелки означают, что пинг работает правильно. Красная стрелка означает, что есть проблема: я пытаюсь с VMB (192.168.1.7) пинговать 10.0.3.8 у меня заблокировано это сообщение: ping 10.0.3.8 PING 10.0.3.8 (10.0.3.8) 56(84) байт данных. --- Статистика пинга 10.0.3.8 --- 68 пакетов передано, 0 получено, 100% потеря пакетов, время 67214мс –
Большое спасибо.
С наилучшими пожеланиями.
решение1
Когда вы создаете Linux-контейнер, он существует в своем собственном сетевом пространстве. Вот почему IP-адреса выглядят так по-разному. Ваши виртуальные машины имеют 192.168.1.x, в то время как вашим Linux-контейнерам назначен 10.0.3.x.
Одним из способов решения этой проблемы является создание выделенной виртуальной сетевой карты в контейнере Linux, которая затем будет извлекать адрес из сети 192.168.1.x.
Ниже приведены основные инструкции, ноПодробные шаги и предыстория взяты из этой статьи Bonsai Framework.
Создать постоянный macvlan на хосте
Добавьте в конец
/etc/network/interfaces
файла хоста,# Creates a macvlan interface called macvlan0 without an IP address iface mvlan0 inet manual pre-up ip link add mvlan0 link eth0 address 8a:38:2a:cc:d7:aa type macvlan mode bridge post-down ip link del macvlan0 auto mvlan0
Перезагрузите систему, чтобы изменения вступили в силу. Вы заметите mvlan0
now при просмотре сетевых устройств с помощью ifconfig -a
.
Подключите контейнер к macvlan
хосту, изменив файл конфигурации, расположенный в /var/lib/lxc/[container]/config
.
Записи, которые нужно добавить для вашей новой сетевой карты,
# macvlan for external IP lxc.network.type = macvlan lxc.network.macvlan.mode = bridge lxc.network.flags = up lxc.network.link = mvlan0 lxc.network.hwaddr = 00:16:3e:8d:4f:51 lxc.network.name = eth0
Для hwaddr сгенерируйте уникальный локально администрируемый одноадресный MAC-адрес с помощью бесплатного веб-сайта, напримерhelion.org.
Наконец, настройте файл интерфейсов в контейнере для привязки через статическую привязку или, если вы предпочитаете, используйте динамическую привязку.
В моем случае я настраиваю свой домашний маршрутизатор так, чтобы адреса с 192.168.0.1 по 192.168.0.20 не назначались динамически, а использовались статические в моем LXC.
Поэтому я изменяю файл интерфейсов контейнеров следующим образом:
auto eth0
iface eth0 inet static
address 192.168.0.12
gateway 192.168.0.1
netmask 255.255.255.0
auto eth1
iface eth1 inet dhcp
Перезапустите контейнер Linux.