Los contenedores MACVLAN Docker en Synology NAS con 2 VLAN no pueden llegar al host

Los contenedores MACVLAN Docker en Synology NAS con 2 VLAN no pueden llegar al host

Tengo 2 VLAN en el puerto ETH1 en Synology DSM 7.2. Utilizo el controlador MACVLAN, por lo que mis contenedores parecen "computadoras separadas" en la red. Puedo acceder al contenedor desde la red y puedo acceder a la red desde el contenedor. Incluso puedo llegar al contenedor desde el host, pero no puedo llegar al host desde el interior del contenedor.

#!/bin/bash:

docker network create -d macvlan --subnet=10.1.40.0/24 --gateway=10.1.40.1 --ip-range=10.1.40.160/29 --aux-address 'host=10.1.40.166' -o parent=eth1.10 macvlan10
ip link add macvlan10brdg link eth1.10 type macvlan mode bridge
ip addr add 10.1.40.166/32 dev macvlan10brdg
ip link set dev macvlan10brdg up
ip route add 10.1.40.160/29 dev macvlan10brdg
docker run --net=macvlan10 -it --name macvlaneth10 --ip 10.1.40.165 --privileged --cap-add=ALL --rm alpine /bin/sh

ip a:

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:32:cd:8b:34 brd ff:ff:ff:ff:ff:ff
7: eth1.10@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:11:32:cd:8b:34 brd ff:ff:ff:ff:ff:ff
    inet 10.1.40.16/24 brd 10.1.40.255 scope global eth1.10
       valid_lft forever preferred_lft forever
8: eth1.5@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:11:32:cd:8b:34 brd ff:ff:ff:ff:ff:ff
    inet 10.2.40.16/24 brd 10.2.40.255 scope global eth1.5
       valid_lft forever preferred_lft forever
14: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
    link/ether 8e:3d:a4:01:5d:42 brd ff:ff:ff:ff:ff:ff
    inet 10.1.40.166/32 scope global macvlan10brdg
       valid_lft forever preferred_lft forever
    inet6 fe80::8c3d:a4ff:fe01:5d42/64 scope link
       valid_lft forever preferred_lft forever

regla de propiedad intelectual:

0:      from all lookup local
2:      from all lookup static-table
10:     from 10.2.40.16 lookup eth1.5-table
12:     from 10.1.40.16 lookup eth1.10-table
32766:  from all lookup main
32767:  from all lookup default

ruta IP:

default via 10.1.40.1 dev eth1.10  src 10.1.40.16
10.1.40.0/24 dev eth1.10  proto kernel  scope link  src 10.1.40.16
10.1.40.160/29 dev macvlan10brdg  scope link
10.2.40.0/24 dev eth1.5  proto kernel  scope link  src 10.2.40.16

iptables-L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DEFAULT_FORWARD  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DEFAULT_FORWARD (1 references)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere

Chain DOCKER (0 references)
target     prot opt source               destination

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere         ****** after "iptables -I DOCKER-USER -j ACCEPT"
RETURN     all  --  anywhere             anywhere

gato /proc/sys/net/ipv4/ip_forward:

1

Incluso probé el controlador BRIDGE con un resultado similar. Puedo acceder al contenedor desde la red y al host, puedo acceder a la red desde el contenedor. Cuando intento hacer ping al host desde el contenedor, esto es lo que obtengo en el enrutador.

invalid forward: in:vlan10 out:vlan10, connection-state:invalid src-mac 00:11:32:cd:8b:34, proto ICMP (type 0, code 0), 10.1.40.16->10.1.52.2, len 84

Así es como ejecuto el contenedor puenteado:

docker network create -d bridge --subnet 10.1.52.0/24 --gateway 10.1.52.1 -o parent=eth1.10 testbrgeth110
docker run --net=testbrgeth110 -it --name bridgeeth110 --privileged --cap-add=ALL --rm alpine /bin/sh

Pasé 2 días completos leyendo en Internet, depurando, etc. Realmente no tengo idea de qué pasa. La red puenteada en DSM 6.2 sin VLAN en la red funcionó a las mil maravillas.

información relacionada