
Я создал мост, следуя следующему руководству, на моем сервере Ubuntu 14.04.
Теперь я хотел бы назначить статический публичный IP-адрес своей виртуальной машине. Как это сделать?
решение1
Редакторы, есть другой вопрос, но по сути та же проблема, на которую я ответил здесь. Новичок в этом, поэтому не уверен, стоит ли объединять -Пинг в контейнер LXC
Помимо моста, вам необходимо убедиться, что у вас есть выделенная виртуальная сетевая карта на контейнере Linux, которой затем будет назначен IP-адрес в сети вашего хост-компьютера.
Ниже приведены основные инструкции, ноПодробные шаги и предыстория взяты из этой статьи 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.