LXD-тип контейнера статический IP в профиле

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

nonroot $ lxc изображения запуска: centos/7 / amd64 my_centos

в довольно LXD по bogstandard (просто по умолчанию apt-получить установку LXD по; запуск службы LXD по) среды. Теперь я хочу дать этой штуке статический IP 10.0.3.50 (скажем).

после некоторого гугления (почему это не ясно из документации на сайте мне еще не ясно), я обнаружил, что профильная информация, которую я должен взломать, чтобы сделать это, была в базе данных 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.сетевые ключи разрешены

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

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

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

14
задан Community
23.04.2023 19:55 Количество просмотров материала 2657
Распечатать страницу

2 ответа

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

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

здесь шаги:

создайте мост на хост-компьютере.

edit: / 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 профиль и установить родителя в качестве вновь созданного моста.

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.

3
отвечен jahackbeth 2023-04-25 03:43

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

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

LXD_CONFILE=""

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

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

dhcp-host=containername, ipaddress

вот ссылка на подробные инструкции по настройке: LXD статические ip-адреса

2
отвечен Jason Trickett 2023-04-25 06:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх