Настройка DHCP для контейнеров LXC

Настройка DHCP для контейнеров LXC

У меня есть несколько контейнеров lxc, которым нужен сетевой доступ. В данный момент я вручную выделяю им IP-адреса в соответствующем файле конфигурации следующим образом:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.link = br0 
lxc.network.ipv4 = 192.168.1.6/24                                                              
lxc.network.ipv4.gateway = 192.168.1.1

Это работает, но не масштабируется и может конфликтовать с распределением DHCP моих маршрутизаторов. Я пытаюсь использовать dhcp моего маршрутизатора, опуская строки lxc.network.ipv4 (как описано в другом месте в Интернете), и контейнер запускается, но dhcpcd сообщает об отсутствии носителя. lxc-ls --fancy также не показывает, что у моего контейнера есть IP-адрес. Bride включен, и lxc.network.link установлен в файле конфигурации.

Как использовать DHCP с моими контейнерами? Можно ли использовать DHCP моих маршрутизаторов или мне нужно запустить сервер на моем хосте? Некоторые из моих контейнеров должны быть доступны извне, в то время как некоторым нужно только общаться с другими контейнерами/хостами.

Я использую Arch Linux, большая часть справочной информации в Интернете относится именно к Ubuntu.

решение1

Убедитесь, что netctl и dhcpcd установлены внутри контейнера (pacman -Q netctl dhcpcd), затем выполните в контейнере следующее:

cat > /etc/netctl/eth0
Connection=ethernet
IP=dhcp
Interface=eth0

Нажмите CTRL-D, чтобы записать файл. Затем включите профиль, выполнив:

netctl enable eth0

Наконец, перезапустите контейнер, и у вас должен быть назначенный DHCP IP-адрес.

решение2

cat <<\EOF >> /etc/netctl/eth
Connection=ethernet
IP=dhcp
Interface=eth0
EOF

Я подумал, что это будет лучший способ создания файла.

Связанный контент