Saltar al contenido

Contenedores LXD y networking con static IP

Después de tanto batallar hemos dado con el arreglo de esta cuestión que algunos lectores de nuestro espacio tienen. Si deseas aportar algo más no dejes de compartir tu información.

Encontré una solución aquí

Gracias a Stéphane Graber.

Cita:

“Si ejecuta un LXD moderno con un puente administrado por LXD, puede configurar la propiedad ipv4.address en la interfaz de red del contenedor.

  • lxc parada c1
  • conexión de red lxc lxdbr0 c1 eth0 eth0
  • conjunto de dispositivos de configuración lxc c1 eth0 ipv4.address 10.99.10.42
  • lxc inicio c1

Si desea especificar direcciones IP para contenedores en LXD, mire el /etc/default/lxd-bridge Archivo. Allí encontrará un lugar para incluir un archivo de configuración externo de dnsmasq.

Suponiendo que está en Ubuntu 16.04,

Abrir /etc/default/lxd-bridge en tu editor favorito. Tendrás que usar sudo.

Alrededor de la línea 16,

LXD_CONFILE=""

Agregue una entrada que apunte a un archivo de configuración de dnsmasq. Vas a tener que crear este archivo. Así que llámalo como quieras. Algo como lxd_bridge.conf.

Luego cree y edite el archivo que ha nombrado anteriormente.

Agregue una línea para cada contenedor al que desee asignar una dirección IP específica.

Como esto:

dhcp-host=containername,ipaddress

Luego deberá reiniciar lxd-bridge y luego reiniciar los contenedores.

Aquí hay un artículo detallado sobre esto:

IP estáticas LXD

Tenga en cuenta que si está ejecutando Alpine Linux en sus contenedores, se deben tomar medidas adicionales para que esto funcione. alpino

Información del sistema: lxc-3.0.1 sobre Ubuntu Server 18.04.1.

Después de mucho buscar, encontré este comando simple para asignar un static ip a un contenedor:

lxc config set [container] raw.lxc 'lxc.net.[i].ipv4.address = [ip]/[subnet-mask]'

donde [container], [i], [ip] y [subnet-mask] son el nombre del contenedor, número de interfaz de red, deseado static dirección IP y el CIDR para la máscara de subred deseada, respectivamente.

Por ejemplo, si desea asignar 240.10.0.20 con máscara de subred 255.255.255.0 a la interfaz de red número 0 del contenedor denominado hellopuedes usar:

lxc config set hello raw.lxc 'lxc.net.0.ipv4.address = 240.10.0.20/24'

Probablemente necesitará reiniciar el contenedor después de ejecutar el comando.

Tenga en cuenta que esto probablemente no cambiará la dirección IP actual del contenedor (en mi configuración de todos modos); el contenedor debe ser accesible tanto en su IP original como en la IP recién asignada. Como resultado, la entrada del contenedor en lxc list puede contener varias direcciones IP.

Eche un vistazo aquí para ver la configuración aceptable keys anexable a lxc.net.[i]. Esta página web contiene información sobre la notación CIDR.

Desafortunadamente, no puedo recordar dónde encontré esta solución por primera vez. Aquí hay un problema relevante de GitHub que podría contener información útil.

valoraciones y comentarios

Si haces scroll puedes encontrar las reseñas de otros desarrolladores, tú igualmente eres capaz dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *