Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

988
Visualizações
Docker macvlan network, no se puede acceder a internet

Tengo un servidor dedicado con múltiples direcciones IP, algunas IP tienen una dirección mac asociada mientras que otras (en una subred) no tienen direcciones mac. He creado la red docker macvlan usando:

 docker network create -d macvlan -o macvlan_mode=bridge --subnet=188.40.76.0/26 --gateway=188.40.76.1 -o parent=eth0 macvlan_bridge

Tengo ip: 88.99.102.115 con mac: 00:50:56:00:60:42. Creó un contenedor usando:

 docker run --name cont1 --net=macvlan_bridge --ip=88.99.102.115 --mac-address 00:50:56:00:60:42 -itd nginx

Esto funciona, puedo acceder a nginx alojado en esa dirección IP desde el exterior.

Caso con IP que no tiene dirección MAC y la puerta de enlace está fuera de la subred.

subred: 88.99.114.16/28, puerta de enlace: 88.99.102.103

No se puede crear la red usando:

 docker network create -d macvlan -o macvlan_mode=bridge --subnet=88.99.114.16/28 --gateway=88.99.102.103 -o parent=eth0 mynetwork

Lanza error:

 no matching subnet for gateway 88.99.102.103

Intenté aumentar el alcance de la subred para incluir la puerta de enlace:

 docker network create -d macvlan -o macvlan_mode=bridge --subnet=88.99.0.0/16 --gateway=88.99.102.103 -o parent=eth0 mynetwork

Se creó la red, luego comenzó el contenedor nginx usando 'mynetwork' y bueno, no tengo la dirección mac para 88.99.114.18, así que usé una dirección mac aleatoria 40: 1c: 0f: bd: a1: d2.

 docker run --name cont1 --net=mynetwork --ip=88.99.114.18 --mac-address 40:1c:0f:bd:a1:d2 -itd nginx

No se puede acceder a nginx (88.99.102.115).

  1. ¿Cómo creo una red docker macvlan si mi puerta de enlace está fuera de mi subred?
  2. ¿Cómo ejecuto un contenedor usando la red macvlan cuando solo tengo una dirección IP pero no una dirección mac?

No tengo mucho conocimiento en redes, sería muy útil si lo explicas en detalle.

Mi archivo /etc/network/interfaces:

 ### Hetzner Online GmbH - installimage # Loopback device: auto lo iface lo inet loopback iface lo inet6 loopback # device: eth0 auto eth0 iface eth0 inet static address 88.99.102.103 netmask 255.255.255.192 gateway 88.99.102.65 # default route to access subnet up route add -net 88.99.102.64 netmask 255.255.255.192 gw 88.99.102.65 eth0 iface eth0 inet6 static address 2a01:4f8:221:1266::2 netmask 64 gateway fe80::1
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Es posible que desee comenzar leyendo conceptos simples de enrutamiento o subredes y enrutamiento .

¿Cómo creo una red docker macvlan si mi puerta de enlace está fuera de mi subred?

Una dirección de puerta de enlace debe estar en la misma subred que una interfaz. Para usar esta nueva subred, deberá usar una de las direcciones IP y asignarla en algún lugar del host como puerta de enlace.

Enrutamiento de subred a una red puente.

Desde la captura de pantalla del alojamiento, la subred 88.99.114.16/28 se configuró para enrutar a través de su host 88.99.102.103. Debe crear una interfaz en algún lugar de su host para usar como puerta de enlace si desea que Docker use el resto de las direcciones IP en la subred.

Cree una red de puente para que la use Docker, al puente se le asignará la dirección de puerta de enlace 88.99.114.17

 docker network create \ --driver=bridge \ --subnet 88.99.114.16/28 \ --gateway=88.99.114.17 \ name0

Es posible que también deba habilitar el reenvío de IP para que funcione el enrutamiento. Configure el reenvío de ip en /etc/sysctl.conf :

 net.ipv4.ip_forward = 1

y aplicar la nueva configuración

 sysctl -p /etc/sysctl.conf

Luego ejecute un contenedor en el nuevo puente con su red enrutada debería poder acceder a la puerta de enlace e Internet

 docker run --net=name0 --rm busybox \ sh -c "ip ad sh && ping -c 4 88.99.114.17 && wget api.ipify.org"

Es posible que deba permitir el acceso a la subred en iptables, según su política FORWARD predeterminada

 iptables -I DOCKER -d 88.99.114.16/28 -j ACCEPT

Los servicios en la subred serán accesibles desde el mundo exterior

 docker run --net=name0 busybox \ nc -lp 80 -e echo -e "HTTP/1.0 200 OK\nContent-Length: 3\n\nHi\n"

luego afuera

 ○→ ping -c 2 88.99.114.18 PING 88.99.114.18 (88.99.114.18): 56 data bytes 64 bytes from 88.99.114.18: icmp_seq=0 ttl=63 time=0.527 ms 64 bytes from 88.99.114.18: icmp_seq=1 ttl=63 time=0.417 ms --- 88.99.114.18 ping statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.417/0.472/0.527/0.055 ms ○→ curl 88.99.114.18 Hi

No es necesario mapear la interfaz macvlan.

¿Cómo ejecuto un contenedor usando la red macvlan cuando solo tengo una dirección IP pero no una dirección mac?

macvlan se usa para mapear una interfaz física/host en un contenedor. Como no tiene una interfaz física para estas direcciones, será difícil asignar una a un contenedor.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda