/
Conectar containers de Docker usando vLAN sobre Zerotier
Search
Duplicate
Try Notion
Conectar containers de Docker usando vLAN sobre Zerotier
Fecha publicación
March 11, 2022
Dificultad
Avanzado
#
14
3 more properties
Descripción
Queremos interconectar dos contenedores que estan en dos máquinas diferentes. Además estas dos máquinas no se encuentran en la misma red.
Así pues, lo primero que haremos será crear una red privada virtual con Zerotier. Gracias a este enlace de capa 2 virtual podremos crear interfaces vLAN asociadas a la targeta de red virtual que tenemos en cada máquina.
Hasta aquí tenemos la red sobre la que montaremos la interconexión de conectores definido. Este punto también se podría hacer sin Zerotier. Simplemente configurando las vLAN directamente contra interfaces de red físicas. Eso si, la rutabilidad entre las dos máquinas debería permitir encontrarse.
Seguidamente creamos los elementos de red de Docker, concretamente usamos el módulo de red macvlan que nos va a permitir asociar la interfaces de red virtuales de los contenedores con las interfaces vLAN que se han creado en la máquina.
En el siguiente puedes ver una representación gráfica de la explicación:
Configuración de los diferentes elementos
Zerotier
Network ID and routes
Node1
ip link add link ztks52m2q6 name ztks52m2q6.10 type vlan id 10 ip link set dev ztks52m2q6.10 up ip link add link ztks52m2q6 name ztks52m2q6.20 type vlan id 20 ip link set dev ztks52m2q6.20 up docker network create -d macvlan --subnet=10.220.10.0/24 --gateway=10.220.10.1 -o parent=ztks52m2q6.10 macvlan_net10 docker network create -d macvlan --subnet=10.220.20.0/24 --gateway=10.220.20.1 -o parent=ztks52m2q6.20 macvlan_net20 docker run -itd --net=macvlan_net10 --ip=10.220.10.11 --name bbox01 busybox:latest docker run -itd --net=macvlan_net20 --ip=10.220.20.11 --name bbox02 busybox:latest
Copy
Bash
Node2
ip link add link ztks52m2q6 name ztks52m2q6.10 type vlan id 10 ip link set dev ztks52m2q6.10 up ip link add link ztks52m2q6 name ztks52m2q6.20 type vlan id 20 ip link set dev ztks52m2q6.20 up docker network create -d macvlan --subnet=10.220.10.0/24 --gateway=10.220.10.1 -o parent=ztks52m2q6.10 macvlan_net10 docker network create -d macvlan --subnet=10.220.20.0/24 --gateway=10.220.20.1 -o parent=ztks52m2q6.20 macvlan_net20 docker run -itd --net=macvlan_net10 --ip=10.220.10.22 --name bbox03 busybox:latest docker run -itd --net=macvlan_net20 --ip=10.220.20.22 --name bbox04 busybox:latest
Copy
Bash
Pruebas de conectividad
Node1
docker exec -it bbox01 ping 10.220.10.22 -c2 -w2 docker exec -it bbox02 ping 10.220.20.22 -c2 -w2
Copy
Bash
Node2
docker exec -it bbox03 ping 10.220.10.11 -c2 -w2 docker exec -it bbox04 ping 10.220.20.11 -c2 -w2
Copy
Bash
Troubleshouting
Algunos comandos útiles para depurar y
ip -d link show ztks52m2q6.10 ip -d link show ztks52m2q6.20 ip link delete dev enp1s0.10 type vlan ip link delete dev enp1s0.20 type vlan ip addr del 10.220.10.2/24 dev ztks52m2q6.10
Copy
Bash
Referencias