Configurar DHCP para contenedores LXC

Configurar DHCP para contenedores LXC

Tengo varios contenedores lxc que necesitan acceso a la red. En este momento les estoy asignando manualmente direcciones IP en el archivo de configuración correspondiente de la siguiente manera:

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

Esto funciona pero no escala y puede entrar en conflicto con la asignación de DHCP de mi enrutador. Intento usar el dhcp de mi enrutador omitiendo las líneas lxc.network.ipv4 (como se describe en línea en otra parte) y el contenedor se inicia pero dhcpcd informa que no hay operador. lxc-ls --fancy tampoco muestra que mi contenedor tenga una dirección IP. La novia está levantada y lxc.network.link configurado en el archivo de configuración.

¿Cómo puedo utilizar DHCP con mis contenedores? ¿Es posible utilizar DHCP de mi enrutador o necesito ejecutar un servidor en mi host? Algunos de mis contenedores deben ser accesibles desde el exterior, mientras que algunos solo necesitan comunicarse con otros contenedores/host.

Estoy ejecutando Arch Linux, la mayor parte de la ayuda en línea parece específica de Ubuntu.

Respuesta1

Asegúrese de que netctl y dhcpcd estén instalados dentro del contenedor (pacman -Q netctl dhcpcd) y luego ejecute lo siguiente en el contenedor:

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

Presione CTRL-D para escribir el archivo. Luego habilite el perfil ejecutando:

netctl enable eth0

Finalmente reinicie el contenedor y debería tener una dirección IP asignada por DHCP.

Respuesta2

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

Pensé que esta sería una mejor manera de crear el archivo.

información relacionada