GNU/Linux >> Tutoriales Linux >  >> Linux

Contenedores LXD y redes con IP estática

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 detener 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 iniciar c1

"


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

Suponiendo que está en Ubuntu 16.04,

Abre /etc/default/lxd-bridge en tu editor favorito. Deberá 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 así como lxd_bridge.conf .

Luego crea y edita el archivo que has nombrado arriba.

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

Así:

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. alpine


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

Después de mucho buscar, encontré este simple comando para asignar una ip estática 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, el número de interfaz de red, la dirección IP estática deseada 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 llamado hello , puedes 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 conocer las claves de configuración aceptables que se pueden agregar 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.


Linux
  1. Cómo configurar contenedores virtuales con LXC y soporte de cuotas en Debian 8

  2. Configurar Linux Container con LXC en Ubuntu 16.04

  3. Uso de archivos y dispositivos en contenedores sin raíz de Podman

  4. Cómo depurar problemas con volúmenes montados en contenedores sin raíz

  5. ¿Cuál es la diferencia entre un contenedor de Linux y una imagen?

Introducción a los contenedores LXD en Ubuntu 16.04

¿Qué son los contenedores multicuenta de Firefox? ¿Por qué y cómo usarlo?

Lxc y cómo empezar?

Actualización de contenedores Docker con cero o mínimo tiempo de inactividad

Cómo:Introducción a los contenedores de Windows y Docker

Cómo instalar y configurar contenedores LXC Linux en CentOS/RHEL/Ubuntu