Perfiles
Para hacer esto correcto, necesita configurar su contenedor. La configuración base ya está en su sistema si ha utilizado una distribución regular. Puede configurar esto aún más 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 / default.conf.
lxc.neto.0.tipo = vethlxc.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 como se muestra a continuación. Para una mayor configuración, es mejor crear nuevos perfiles. Cada perfil contendrá algún detalle de configuración, en nuestro caso redes. Puede cambiar cualquier configuración en su contenedor con un perfil, y esto tiene aún más sentido cuando desea ejecutarlo tanto localmente como en una plataforma.
El perfil de $ lxc muestra la configuración predeterminada: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 predeterminado usa la red lxdbr0 y escribe nic. Ahora, cree un nuevo perfil usando lo siguiente:
$ lxc perfil crear nicnetAntes de que se ejecute cualquier contenedor, edite el perfil:
$ lxc editar perfil de nicnet
Usas el formato YAML en los archivos que crean estos perfiles. Tenga en cuenta que el nombre "eth0" es el nombre del contenedor interno. El "padre" es lo que tiene en su sistema, y lo verifica usted mismo usando:
$ ip aLa impresión variará dependiendo de lo que haya tenido antes. También debe saber que puede hacer el puente desde el exterior 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 agregar ff nicnetEl cambio entra en vigor cuando reinicia la red en el contenedor. Lo más fácil y seguro es agregar siempre perfiles solo en contenedores detenidos.
Enrutado
Una conexión en 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 anteriormente 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 al usar 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 usa las herramientas brctl ya que lxc ha creado sus propias. 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 por cable o una conexión Wi-Fi insegura.
Cuando se haya asegurado de tener una conexión de red en su host, puede conectarla a su contenedor. Cambie la palabra padre y establezca su tipo de nic en macvlan.
config:descripción: Configuración de 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écnico.
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, ejecute la opción show en LXC, luego canalice a 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.ymlPara usar esto para un nuevo contenedor, use los valores establecidos. Normalmente, establecería un valor a la vez, pero ya tiene un archivo para este.
$ lxc perfil crear nueva ruta $ lxc perfil establecer nueva ruta usuario.la red.config - < Route.ymlPuede ver que debe poner los valores en el espacio de nombres 'usuario.la red.config '. Esto es importante para saber cuándo desea agregar otros valores no relacionados con las redes.
Conclusión
La conexión en red con sus contenedores tiene muchas opciones, que pueden ser confusas, pero con un poco de investigación 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ás tu contenedor actual, solo quita el que no funcionó y agrega el viejo. Esta técnica funciona para todo en un recipiente.