Configurar varias NIC y Macvlan en Synology DSM 7.3 Container Manager

Guía práctica para usar Macvlan en Synology DSM 7.3 y 7.2 Container Manager: varias NIC, IP independientes en la LAN, Docker Compose, Open vSwitch y puntos a revisar.

Synology DSM 7.3 y DSM 7.2 incluyen Container Manager, pero su interfaz gráfica expone sobre todo las redes básicas bridge y host. Si tu NAS tiene varias tarjetas de red, por ejemplo LAN1 para la red interna y LAN2 para otro router o una subred independiente, y quieres que algunos contenedores usen LAN2 o reciban una IP propia dentro de esa subred, normalmente necesitas Docker macvlan.

Los casos habituales son:

  • vincular un contenedor a una NIC física y darle una IP independiente en esa subred;
  • conectar un contenedor tanto a la red bridge predeterminada como a una red macvlan asociada a una NIC concreta.

Los ejemplos siguientes usan la segunda NIC ovs_eth1 y la subred LAN2 192.168.2.0/24. Ajusta la subred, la puerta de enlace y el nombre de la interfaz según tu red real.

Primero confirma el nombre de la interfaz física

Activa SSH en DSM, inicia sesión en el NAS y ejecuta:

1
ifconfig

Si Open vSwitch está activado, los nombres de interfaz suelen verse como ovs_eth0 y ovs_eth1. En equipos con Virtual Machine Manager instalado, Open vSwitch suele activarse automáticamente.

Si Open vSwitch no está activado, los nombres suelen ser eth0, eth1, etc.

En los ejemplos se usa ovs_eth1 como segunda NIC. Si tu NAS no usa Open vSwitch, reemplaza ovs_eth1 por el nombre real que veas, como eth1.

Escenario 1: dar al contenedor una IP dedicada en una NIC concreta

Este es el uso más común. Encaja bien con Pi-hole, AdGuard Home, gestores de descargas, servicios tipo gateway y casos similares. El objetivo es que el contenedor aparezca directamente en la subred LAN2 con una IP parecida a la de un dispositivo físico, en lugar de quedar oculto detrás de la red Docker predeterminada de Synology.

Container Manager no puede crear una red macvlan directamente desde la GUI, así que créala una vez por SSH:

1
2
3
4
5
6
sudo docker network create -d macvlan \
  --subnet=192.168.2.0/24 \
  --gateway=192.168.2.1 \
  --ip-range=192.168.2.200/29 \
  -o parent=ovs_eth1 \
  custom_lan2_net

Los parámetros significan:

  • -d macvlan: usa el controlador macvlan;
  • --subnet=192.168.2.0/24: la subred completa de LAN2;
  • --gateway=192.168.2.1: la puerta de enlace de LAN2, normalmente la IP del router;
  • --ip-range=192.168.2.200/29: limita el rango que Docker puede asignar para evitar conflictos con móviles, PCs, televisores y otros dispositivos;
  • -o parent=ovs_eth1: indica la NIC física a la que se vincula la red;
  • custom_lan2_net: el nombre de esta red Docker.

Después de crearla, abre Container Manager en DSM y entra en la página “Network”. Deberías ver custom_lan2_net. Desde ahí puedes añadir contenedores existentes a esa red o seleccionarla al crear un contenedor nuevo y asignarle una IP fija dentro de la subred.

Escenario 2: conectar un contenedor a varias redes

Algunos contenedores necesitan estar presentes en más de una red. Por ejemplo, puede que el host Synology deba acceder al contenedor por la red bridge predeterminada, mientras el contenedor también tiene una IP dedicada en la subred física LAN2. En ese caso, conecta el contenedor a dos redes virtuales.

Método A: añadir la segunda red desde la GUI

Crea primero el contenedor de forma normal y elige una red principal, por ejemplo la bridge predeterminada. No lo inicies todavía; si ya está en ejecución, detenlo antes.

Luego abre la página “Network” de Container Manager, selecciona custom_lan2_net, haz clic en “Manage”, marca el contenedor objetivo y guarda. Al arrancar, el contenedor normalmente tendrá dos interfaces virtuales internas, como eth0 y eth1.

Este método es el más cómodo cuando solo necesitas configurar uno o dos contenedores y no quieres editar archivos Compose.

Método B: usar un proyecto Docker Compose

Si prefieres la función “Project” de Container Manager, define ambas redes en docker-compose.yml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
version: '3.8'

services:
  my_node:
    image: nginx:latest
    container_name: multi_nic_container
    networks:
      default_bridge:
        ipv4_address: 172.20.0.10
      lan2_macvlan:
        ipv4_address: 192.168.2.205

networks:
  default_bridge:
    external: true
    name: bridge
  lan2_macvlan:
    external: true
    name: custom_lan2_net

Aquí custom_lan2_net es la red macvlan creada antes por SSH. bridge hace referencia a la red bridge Docker integrada en Synology.

La IP de ejemplo 172.20.0.10 solo sirve si tu red bridge usa realmente esa subred. En muchos sistemas Synology, la red bridge predeterminada de Docker suele ser 172.17.0.0/16. Comprueba el valor real con docker network inspect bridge.

La limitación de Macvlan entre host y contenedor

macvlan tiene una trampa importante: por defecto, el kernel de Linux no permite que el host se comunique directamente con los contenedores a través de la misma interfaz macvlan.

En la práctica, si un contenedor solo se une a custom_lan2_net, DSM puede no ser capaz de acceder a ese contenedor mediante su IP física en LAN2. El contenedor también puede no poder acceder al host por esa misma interfaz.

Las soluciones habituales son:

  • conectar el contenedor también a la red bridge predeterminada y dejar que Synology lo alcance mediante la dirección interna de Docker;
  • crear una subinterfaz macvlan adicional del lado del host en el NAS, para que el host entre también en el mismo dominio de comunicación macvlan.

La segunda opción se acerca más a una configuración de red avanzada y requiere más mantenimiento. Para la mayoría de entornos domésticos o de oficina pequeña, usar bridge y macvlan al mismo tiempo es más sencillo.

Evita conflictos de IP desde el principio

Con macvlan, las IP de los contenedores aparecen directamente en la LAN física, así que hay que evitar conflictos con el pool DHCP.

Lo ideal es excluir el rango de Docker en el router principal. Por ejemplo, si planeas asignar 192.168.2.200/29 a Docker, no dejes que el router entregue 192.168.2.200 a 192.168.2.207 a móviles, ordenadores u otros dispositivos.

Si tu router no permite excluir rangos DHCP fácilmente, usa al menos una zona alta de direcciones que tenga poca probabilidad de asignarse automáticamente y deja constancia de ella.

Cómo activar Open vSwitch

En DSM 7.x, Open vSwitch se puede activar desde la interfaz gráfica. No hace falta modificar archivos de red de bajo nivel. La forma más cómoda es instalar Virtual Machine Manager de Synology, porque el puente de red de las máquinas virtuales depende de Open vSwitch y el asistente te pedirá activarlo.

Pasos:

  1. abre “Package Center” en DSM;
  2. busca e instala Virtual Machine Manager;
  3. abre el paquete y sigue el asistente para activar Open vSwitch;
  4. espera a que se reinicie el servicio de red.

Si no quieres instalar VMM, puedes activarlo manualmente:

  1. abre “Control Panel”;
  2. entra en “Network”;
  3. cambia a la pestaña “Network Interface”;
  4. haz clic en “Manage” y elige “Open vSwitch Settings”;
  5. marca “Enable Open vSwitch” y aplica los cambios.

Después de aplicar el cambio, DSM reinicializará las NIC y la sesión del navegador puede desconectarse durante unos segundos. Evita hacerlo mientras el NAS transfiere archivos grandes o ejecuta escrituras importantes.

Verificar que Open vSwitch funciona

En la GUI, vuelve a “Control Panel -> Network -> Network Interface” y revisa el estado de las NIC. El menú de administración también debería mostrar opciones relacionadas con Open vSwitch.

En la línea de comandos, ejecuta de nuevo:

1
ifconfig

o:

1
ip addr

Si ves interfaces como ovs_eth0 y ovs_eth1, Open vSwitch está activo. Al crear una red macvlan, usa la interfaz con prefijo ovs_ en -o parent=, por ejemplo:

1
-o parent=ovs_eth1

Si sigues usando eth1, el contenedor puede no conectarse por la NIC esperada.

Lista de comprobación antes de configurar

Antes de tocar la configuración, confirma:

  • cuántas NIC físicas tiene el NAS Synology y qué puertos tienen cable conectado;
  • a qué switch, router o VLAN está conectado cada puerto;
  • si DSM muestra la NIC objetivo como ethX o ovs_ethX;
  • si --subnet y --gateway pertenecen a la subred de la NIC objetivo;
  • si --ip-range está excluido del pool DHCP;
  • si el contenedor necesita ser accesible desde el host Synology. Si lo necesita, conéctalo también a bridge.

Si el nombre de interfaz, la subred y el pool de IP son correctos, DSM 7.3 Container Manager funciona bien con macvlan para desplegar contenedores con varias NIC. La GUI sirve para la gestión diaria, y SSH solo hace falta para crear la red base.

记录并分享
Creado con Hugo
Tema Stack diseñado por Jimmy