Crearemos una red macvlan auxiliar para poder comunicarnos con Home Assistant que estará en una macvlan de Docker. La guía asumirá una red local con rango CIDR 192.168.1.0/24, con el router en la penúltima dirección (192.168.1.254) y el servidor en la antepenúltima (192.168.1.253). Si necesita usar otro rango, solo reemplazar por el rango correcto en el resto de la guía. Después, configuraremos el stack de Docker de redes compartidas y levantaremos el stack a través de Portainer. El stack consiste de las siguientes redes:
- lanvlan: Esta es una red virtual que permitirá a los contenedores ser asignados una IP directamente en nuestra LAN sin compartir puertos con el servidor.
- Determinar el dispositivo de red:
nmcli d | grep ethernet | grep connected | head -1y anotar el nombre del dispositivo, por ejemploenp1s0. - Agregar conexión macvlan auxiliar:
nmcli con add con-name macvlan-shim type macvlan ifname macvlan-shim ip4 192.168.1.12/32 dev enp1s0 mode bridge.192.168.1.12es el IP del servidor dentro de está red auxiliar. Si su red local está en otro prefijo, ajuste esta IP a uno dentro de su prefijo, pero fuera del rango de asignación del DHCP para evitar colisiones.enp1s0es el nombre del dispositivo de red del paso anterior. Cambiarlo por el nombre correcto. - Agregar ruta a conexión auxiliar para la red macvlan:
nmcli con mod macvlan-shim +ipv4.routes "192.168.1.0/27".192.168.1.0/27es el rango de IPs de la red macvlan que coincide con el prefijo de la red local y a su vez está fuera del rango de asignación del DHCP. - Activar la conexión auxiliar:
nmcli con up macvlan-shim. - Editar el archivo del stack:
nano ./files/network-stack.yml. - Ajustar la red
lanvlan.- Ajustar atributo
parentcon el nombre del dispositivo que obtuvo al principio. Por ejemploenp1s0. - Ajustar atributo
subnetcon el rango de su red local. - Ajustar atributo
gatewaycon el IP de su router. - Ajustar atributo
ip_rangecon el rango de su red local que el DHCP no asigna. La guía configurará el DHCP para no asignar las primeras 64 direcciones, por eso usamos un rango 192.168.1.0/27. Si usted va a configurar su DHCP con otro rango no asignable, use ese aquí. - Ajustar atributo
hostcon la IP del servidor en la red macvlan auxiliar.
- Ajustar atributo
- Copiar todo el contenido del archivo al portapapeles. Guardar y salir con
Ctrl + X, Y, Enter. - Agregar stack en Portainer desde el navegador.
- Acceder a Portainer a través de https://server.lan:9443. Si sale una alerta de seguridad, puede aceptar el riesgo ya que Portainer usa un certificado de SSL autofirmado.
- Darle clic en "Get Started" y luego seleccionar "local".
- Seleccionar "Stacks" y crear un nuevo stack.
- Ponerle nombre "networks" y pegar el contenido del network-stack.yml que copió al portapapeles y crear el stack. Desde ahora modificaciones al stack se deben de hacer a través de Portainer y no en el archivo.