cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 
cancel
204
Visitas
0
ÚTIL
1
Respuestas

Red Docker MacVLAN e IPvlan

routerflxv
Level 1
Level 1

Tengo una pregunta que no entiendo sobre las redes Docker, Macvlan e ipvlan. En el primer ejemplo, quiero mostrarles la red en modo bridge Macvlan. Esto me funciona correctamente, les muestro lo que he hecho para que funcione correctamente.

1. Primero he ejecutado estos comandos

sudo ip link add macvlan_int link enp0s3 type macvlan mode bridge

sudo ip address add 192.168.1.2/24 dev macvlan_int

sudo ip link set macvlan_int up

sudo ip route add 192.168.1.110/32 dev macvlan_int

2. Después de haber ejecutado Docker Compose, lo tengo funcionando de esta manera.

```
version:'3.8'
service:
profiles:
- net7
image: nginx
networks:
demo-macvlan:
ipv4_address: 192.168.1.110
stdin_open: true
tty: true
restart: 'no'
init: true

networks:
demo-macvlan:
driver: macvlan
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1
driver_opts:
parent: enp1s0
```

3. Ejecuto esto en mi navegador http://192.168.1.110 y el modo Macvlan Bridge funciona correctamente

Hasta ahora todo bien, me funciona correctamente, pero ahora vienen los problemas. Antes de comenzar con el siguiente ejemplo quiero mencionar algo al ejemplo anterior, si he hecho algo mal o quiero que me mencionen algo, soy nuevo en docker en redes. Ahora pasemos al segundo ejemplo del modo trunk bridge macvlan 802.1Q. Quiero implementar esto. Lo único que he hecho es lo siguiente en mi docker compose.


```
version:'3.8'
service:
ivlan2:
profiles:
- net8
image: nginx
networks:
ip-vlan:
ipv4_address: 192.168.1.130
stdin_open: true
tty: true
restart: 'no'
init: true

networks:
net-app:
external: true
net:
external: true
demo-macvlan50-net:
driver: macvlan
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1
driver_opts:
parent: enp1s0.50
```
Aquí lo que he hecho es lo siguiente, he cambiado la IP a esta 192.168.1.130 luego le he agregado el enp1s0.50, ok hasta ahora todo bien dentro del contenedor ejecuto el ping a la IP 192.168.1.130 y funciona , me da una señal, pero cuando ejecuto esto en mi host y agrego el ping 192.168.1.130 no funciona correctamente cuando lo ejecuto en mi host y agrego http://192.168.1.130 me dice conexión rechazada. Quiero mencionar que no tengo conflictos con nada. Lo he comprobado también y he ejecutado estos comandos netstat -rn | fgrep 0.0.0.0 || ip route, nmap -sn 192.168.1.0/24,ifconfig,netstat -a, ip -br -col add show para comprobar si hay algún problema, no puedo solucionar el problema para que funcione correctamente, ¿por qué me sale una señal que funciona al hacer ping a la dirección IP que tengo asignada, pero en mi host no recibo señal y no me deja acceder a la dirección IP de mi host?

Pasemos ahora al tercer ejemplo. Tengo un problema, quiero implementar ipvlan l2 y me pasa lo mismo que en el segundo ejemplo. No funciona en el host de mi sistema, pero en el contenedor funciona al hacer ping a la dirección IP.


```
version: '3.8'

services:
ivlan2:
profiles:
- "net9"
image: nginx
networks:
ip-vlan:
ipv4_address: 192.168.1.110
stdin_open: true
tty: true
restart: 'no'
init: true

networks:
ip-vlan:
driver: ipvlan
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1
driver_opts:
parent: enp1s0
mode: l2
```

1 RESPUESTA 1

Translator
Community Manager
Community Manager

He notado que no ha creado la interfaz VLAN en la máquina host antes de ejecutar el archivo docker-composfile. Debe crear la interfaz VLAN mediante el comando ip link. Puede hacer ping a la dirección IP desde el interior del contenedor pero no desde el host, probablemente debido al hecho de que la interfaz VLAN no está configurada correctamente en la máquina host. Asegúrese de que la interfaz VLAN esté activa y configurada correctamente mediante los comandos ip link e ip address.

Parece que ha creado la interfaz IPvlan en la máquina host antes de ejecutar el archivo docker-compose, aquí también necesita crear la interfaz IPvlan.

Espero que esto ayude