3

Я пытаюсь установить статический IP-адрес в контейнере lxd. Контейнер сделан с:

nonroot $ lxc образы запуска:centos/7/amd64 my_centos

в довольно богатом стандарте lxd (просто по умолчанию apt-get install lxd; service lxd start). Теперь я хочу дать этой вещи статический IP 10.0.3.50 (скажем).

После некоторого поиска в Google (почему это не ясно из документации на сайте, мне пока неясно), я обнаружил, что информация профиля, которую я должен взломать, чтобы сделать это, была в базе данных sqlite. Хорошо:

lxc profile copy default my_centos
lxc profile edit my_centos
...
name: my_centos 
  config: {} 
  description: "" 
  devices:   
    eth0:
      name: eth0
      nictype: bridged
      parent: lxcbr0
      type: nic

и это не позволит мне изменить его на:

name: my_centos
config: 
  raw.lxc: 
    lxc.network.type = veth
    lxc.network.name = eth0
    lxc.network.link = lxcbr0
    lxc.network.ipv4 = 10.0.3.50/24
    lxc.network.ipv4.gateway = 10.0.3.1
    lxc.network.flags = up

description: ""
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: lxcbr0
    type: nic

Ошибка: Ошибка разбора конфигурации: разрешены только специфичные для интерфейса ключи ipv4/ipv6 lxc.network.

Это, вероятно, связано с nictype и типом eth0, но удаление устройства имеет тот же эффект.

Может ли кто-нибудь просветить меня о правильном способе сделать это?

Это как-то связано с контейнерами LXD и сетями со статическим IP, но я хочу настроить это с помощью lxd (то есть с профилями вместо конфигурационных файлов).

2 ответа2

3

У меня была похожая проблема, когда я хотел контейнеры со статическими IP-адресами и хотел, чтобы они были видны в моей локальной сети.

Не понял, как это сделать через lxd профили. Но ниже приведены шаги по созданию одного контейнера со статическим IP. Затем вы можете написать сценарий, который клонирует контейнер и просто меняет его IP-адрес в файле /etc /network /interfaces, что фактически дает вам возможность создавать контейнеры со статическими IP-адресами.

Вот шаги:

Создайте мост на хост-машине.

редактировать: /etc /network /interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

auto br0
iface br0 inet static
    address 172.16.115.208
    broadcast 172.16.119.255
    netmask 255.255.248.0
    gateway 172.16.112.1
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

Замените IP-адреса вашими значениями.

Обратите внимание, что "bridge_ports" добавляет ваш eth0 к мосту.

Перезагрузите сеть:

sudo /etc/init.d/networking restart

Возьмите новый мост:

sudo ifup br0

На этом этапе вы должны убедиться, что у вас все еще есть сетевое подключение через вновь созданный мост.

Отредактируйте свой профиль lxc и установите parent как вновь созданный мост.

lxc profile edit default<or your container's profile name>

-       parent: lxcbr0
+       parent: br0

Получите доступ к контейнеру и установите статический IP-адрес.

lxc exec my-container-name /bin/bash
sudo vim /etc/network/interfaces

    #auto eth0
    #iface eth0 inet dhcp

    auto eth0
    iface eth0 inet static
    address 172.16.115.252
    broadcast 172.16.119.255
    netmask 255.255.248.0
    gateway 172.16.112.1

Снова измените IP-адреса соответственно. Перезапустите свой контейнер и проверьте, был ли ему присвоен новый IP.

lxc info my-container-name

Ваш контейнер теперь имеет статический IP и виден в сети. Теперь вы можете написать скрипт, который клонирует его и изменяет значение IP в файле интерфейсов, чтобы получить несколько контейнеров с разными статическими IP-адресами.

2

Вы можете заставить lxd-bridge назначать статические IP-адреса, добавляя внешний файл конфигурации dnsmasq.

Откройте /etc /default /lxd-bridge, и вы найдете место для его добавления.

LXD_CONFILE = ""

Вставьте туда имя файла. Что-то вроде lxd_dnsmasq.conf. Вы можете назвать это как угодно.

Затем создайте файл и добавьте такую запись для каждого контейнера.

DHCP-хост = ИмяКонтейнер, IPAddress

Вот ссылка на подробные инструкции по настройке:lxd static ip address

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .