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.