Añadir segunda nic en modo bridge sin nat ni dhcp local en contenedores LXC

por | 31 marzo, 2019

no puedo empezar este post de otra forma

ODIO lxc

en realidad no lo odio, pero las diferencias entre la version 2.x y la 3.x (en produccion 2.x y en mi lab 3.x) me dan mas de un dolor de cabeza

Para esta ocasion haremos la configuracion con un ubuntu 18.04 LTS como sistema base, LXC 3.0.3 y netplan (que tambien lo odie xD)

Round 1 yo v/s netplan

Empezaremos por la configuracion de netplan la cual se almacena en el directorio /etc/netplan/*.yaml
(como consejo cuidado con los espacios, muuuuucho cuidado)
Una cosa que me gusto de netplan es que todas las configuraciones las puedo separar por interfaz, por lo que en mi caso quedo de esta forma
pueden obtener ejemplos de este link
y la documentacion completa aca

root@ubuntu01:~# ls /etc/netplan/
50-ens18.yaml 60-br0.yaml

los archivos de configuracion se van cargando de menor a mayor por lo que si invertimos la numeracion (50-br0.yaml 60-ens18.yaml) nos va a entregar un error ya que aun no conoce la configuracion de la interfaz ens18 (un error asi)
Error in network definition /etc/netplan/50-br0.yaml line 9 column 16: br0: interface ens18 is not defined

root@ubuntu01:/etc/netplan# more 50-ens18.yaml
network:
version: 2
ethernets:
ens18:
dhcp4: true

root@ubuntu01:/etc/netplan# more 60-br0.yaml
network:
version: 2
bridges:
br0:
interfaces: [ens18]
addresses: [192.168.55.201/24]
gateway4: 192.168.55.1
nameservers:
addresses: [208.67.222.222,8.8.8.8]

Tambien sera valido de esta otra forma:
root@ubuntu01:/etc/netplan# cat 61-br0.yaml
network:
version: 2
bridges:
br0:
interfaces:
– ens18
addresses:
– 192.168.55.201/24
gateway4: 192.168.55.1
nameservers:
addresses:
– 208.67.222.222
– 8.8.8.8


una vez con los 2 archivos usamos el comando netplan generate el cual nos dira si hay algun error y «donde» (la verdad rara vez me funciono que me haya mostrado la linea correcta), esta es la parte mas critica del proceso ya que puede ser muy dificil encontrar el error, a veces siendo tema solo de un espacio mal colocado.
ya superando esta traba basta aplicar un
netplan apply
para tener lista la nueva configuracion y podemos verificarla con el clasico ifconfig o el nuevo ip addr show o ip link show

Ahora la segunda pelea, LXC

Aca la cosa se vuelve mas simple tenemos que editar el archivo de configuracion del contenedor que se encuentra en /var/lib/lxc/»nombre container»/config
para mi caso /var/lib/lxc/frontend/config (nombre del contenedor frontend)
y agregar
«lxc.net.X.type = veth
lxc.net.X.link = Y
lxc.net.X.flags = up
lxc.net.X.hwaddr = <mac>
lxc.start.auto = 1″

reemplazar la «X» por el numero de interfaz a añadir (en mi caso 1, ya que la 0 es la que trae por defecto), la «Y» por la interfaz que hayan usado y la <mac> por una de su agrado
en mi caso queda asi
lxc.net.1.type = veth
lxc.net.1.link = br0
lxc.net.1.flags = up
lxc.net.1.hwaddr = 00:16:33:94:4d:39
lxc.start.auto = 1

finalmente para que los cambios surtan efecto realice un reinicio del contenedor en cuestion
root@ubuntu01:/etc/netplan# lxc-stop frontend
root@ubuntu01:/etc/netplan# lxc-start frontend

ya con eso tenemos disponible la nueva interfaz en el contenedor, es muy probable que haya que configurarla en el contenedor para que solicite IP


Deja una respuesta

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