Configuración de red LXC

Configuración de red LXC
Cuando inicia un contenedor de Linux, es posible que desee usar funciones de red. La pregunta es: “¿Estás tratando de conectarse en red con el host, el amplio Internet, otro contenedor o tal vez todos los contenedores locales??"Lo bueno es que haya soluciones para todos!

Perfiles

Para hacer esto correcto, debe configurar su contenedor. La configuración base ya está en su sistema si ha utilizado una distribución regular. Puede configurar esto con comandos, pero la mayoría de las personas usarán archivos YAML. La base generalmente se parece a la de abajo. El archivo reside en /etc/lxc/predeterminado.confusión.

LXC.neto.0.Tipo = Veth
LXC.neto.0.enlace = LXCBR0
LXC.neto.0.banderas = arriba
LXC.neto.0.hwaddr = 00: 16: 3e: xx: xx: xx

Cada contenedor sigue la configuración de acuerdo con el perfil predeterminado y el archivo mencionado anteriormente. Puede imprimir el archivo predeterminado según a continuación. Para obtener más configuración, es mejor hacer nuevos perfiles. Cada perfil contendrá algunos detalles de configuración, en nuestra red de casos. Puede cambiar cualquier configuración en su contenedor con un perfil, y esto tiene aún más sentido cuando desea ejecutarla tanto localmente como en una plataforma.

$ LXC Perfil Mostrar predeterminado
config:
Descripción: perfil LXD predeterminado
dispositivos:
eth0:
Nombre: eth0
Red: LXDBR0
Tipo: Nic
raíz:
camino: /
Piscina: Ros
Tipo: disco
Nombre: predeterminado
usado por:
- /1.0/instancias/Guiapps
- /1.0/instancias/ff

La salida resultante es un archivo YAML. Todos tus perfiles estarán en el mismo formato. Con LXC en sí, puede crear, eliminar y editar su perfil. Puede ver en el archivo que el valor predeterminado usa la red LXDBR0 y escribe NIC. Ahora, cree un nuevo perfil usando el siguiente:

$ lxc perfil crea nicnet

Antes de que se ejecute cualquier contenedor, edite el perfil:

$ lxc perfil editar nicnet

Utiliza el formato YAML en los archivos que crean estos perfiles. Tenga en cuenta que el nombre "eth0" es el nombre interno del contenedor. El "padre" es lo que tiene en su sistema, y ​​lo verifica usted mismo usando:

$ ip a

La impresión variará dependiendo de lo que haya tenido antes. También debe saber que puede hacer el puente desde fuera del contenedor con las herramientas BRCTL.

Usándolo en su contenedor

Una vez que haya creado un perfil, desea agregarlo a su contenedor. Esto se hace con el mismo conjunto de programas 'LXC'. Primero, asegúrese de tener un contenedor, en este ejemplo, el contenedor se llama 'ff':

$ lxc perfil agregue ff nicnet

El cambio entra en vigencia cuando reinicia las redes en el contenedor. Lo más fácil y seguro es agregar siempre perfiles solo en contenedores detenidos.

Enrutado

Una conexión puente es aquella en la que su contenedor recibe una dirección MAC en la misma interfaz Ethernet que su host. Esto es lo que hiciste antes en esta publicación. Con algunos trucos más, puede hacer que su enrutador asigne una dirección IP separada al contenedor, y puede configurar esto en su contenedor. Aunque, cuando usa MacVLan, puede tener problemas con Wi-Fi. WPA/WPA2 no aceptará las dos direcciones, por lo que su Wi-Fi se romperá, ya que su anfitrión no usará el Wi-Fi.

El ejemplo anterior utiliza las herramientas BRCTL desde que LXC ha creado su propio. Esto obtiene una dirección del host, no del enrutador. Puede obtener la dirección del enrutador si lo desea. Nuevamente, solo si usa una conexión con cable o un Wi-Fi inseguro.

Cuando se haya asegurado de tener una conexión de red en su host, puede conectarla a su contenedor. Cambie la palabra matriz y configure su nictype en MacVlan.

config:
Descripción: Configuración para la interfaz de red
dispositivos:
eth0:
Nombre: eth0
Nictype: MacVlan
Padre: ENP3S0
Tipo: Nic
Nombre: ruta
usado por:
- /1.0/instancias/Guiapps
- /1.0/instancias/ff

Deberá asegurarse de que el valor principal coincida con su configuración, así que asegúrese de crearlo dinámicamente. Una vez hecho esto, puede iniciar su contenedor y encontrarlo en la lista de destinos de host de su enrutador. Bueno, son interfaces, para ser técnicos al respecto.

Figura 1: El contenedor ahora aparece en su enrutador

Perfiles móviles

Una parte interesante de los contenedores de Linux es que puede tomar sus configuraciones y volcarlas en archivos YAML. Para crear los archivos para esto, ejecuta la opción Show en LXC, luego enciende en un archivo. La salida sigue el estándar YAML, y luego puede usar estos archivos para configurarlos en otro lugar.

$ LXC Perfil Mostrar ruta> ruta.YML

Para usar esto para un nuevo contenedor, use los valores establecidos. Por lo general, establecería un valor a la vez, pero ya tiene un archivo para esto.

Perfil de $ LXC Crear NewRoute $ LXC Perfil Establecer usuario NewRoute.red.configuración - < Route.yml

Puede ver que debe poner los valores en el usuario de Namespace '.red.configuración. Es importante saber cuándo desea agregar otros valores no relacionados con las redes.

Conclusión

La red con sus contenedores tiene muchas opciones, que pueden ser confusas, pero con algunas investigaciones y pruebas por su cuenta, puede hacer que funcione de la manera que desee. La mejor parte es que puedes probar una cosa a la vez usando perfiles. Nunca arruinará su contenedor actual, simplemente retire el que no funcionó y agregue el viejo. Esta técnica funciona para todo en un contenedor.