Network-Drivers-Macvlan

Networking

Nota: Macvlan son redes virtuales que le permiten crear «clones» de la interfaz de red física conectada al servidor Ubuntu y conectar contenedores directamente a la LAN.

Macvlan-Networks

.Algunas aplicaciones, especialmente las aplicaciones heredadas o las aplicaciones que monitorean el tráfico de la red, esperan conectarse directamente a la red física. En este tipo de situación, puede utilizar el macvlan controlador de red para asignar una dirección MAC a la interfaz de red virtual de cada contenedor, haciendo que parezca una interfaz de red física directamente conectada a la red física. En este caso, debe designar una interfaz física en su host Docker para usarla macvlan , así como la subred y la puerta de enlace de macvlan . Incluso puede aislar sus macvlan redes utilizando diferentes interfaces de red físicas. Tenga en cuenta las siguientes cosas:

  1. -. Es muy fácil dañar involuntariamente su red debido al agotamiento de la dirección IP o a la «propagación de VLAN», que es una situación en la que tiene una cantidad inapropiadamente grande de direcciones MAC únicas en su red.
  2. -. Su equipo de red debe poder manejar el «modo promiscuo», donde a una interfaz física se le pueden asignar varias direcciones MAC.
  3. -. Si su aplicación puede funcionar usando un puente (en un solo host de Docker) o superposición (para comunicarse a través de múltiples hosts de Docker), estas soluciones pueden ser mejores a largo plazo.

Create a macvlan network:

Cuando crea una macvlan-network , puede estar en modo puente o en modo puente troncal 802.1q.

  1. -. En el modo puente, el macvlan tráfico pasa por un dispositivo físico en el host.
  2. -. En el modo de puente troncal 802.1q, el tráfico pasa a través de una subinterfaz 802.1q que Docker crea sobre la marcha. Esto le permite controlar el enrutamiento y el filtrado a un nivel más granular.

Bridge mode (modo puente)

Para crear una macvlan-network que establezca un bridge con una interfaz de red física determinada, utilícela –driver macvlan con el docker network create comando. También debe especificar parent, que es la interfaz por la que pasará físicamente el tráfico en el host de Docker.

  1. In: root@juan-Aspire-ES1-512:/# ip addr show wls2
  2. Out: 3: wls2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 inet 192.168.1.36/24 brd 192.168.1.255 scope global dynamic noprefixroute wls2
  3. In: root@juan-Aspire-ES1-512:/# docker network create -d macvlan –subnet=192.168.1.0/24 –gateway=192.168.1.1 -o parent=wls2 pub_net
  4. Out: 42859d52b4c20080d843e30bdd87a0e1bc5384b6c271c476506c5699839c6377

Si necesita excluir direcciones IP para que no se utilicen en la macvlan-network , como cuando una dirección IP determinada ya está en uso, utilice –aux-addresses :

  1. In: root@juan-Aspire-ES1-512:/# docker network create -d macvlan –subnet=192.168.1.0/24 –ip range=192.168.1.150/30 –gateway=192.168.1.154 –aux-address=»my-router=192.168.1.151» -o parent=wls2 macnet32
  2. Out: 21078ef616be464b2c01447477e108d1777ce6d7b2af5f131bce4e23c12525fa

Nota: El pub_net y el macnet32 son los nombres que le damos a la network se puede usar el que nos parecer apropiado.

802.1q trunk bridge mode

Si especifica un parent nombre de interfaz con un punto incluido, como, por ejemplo wls2.50, Docker lo interpreta como una subinterfaz de wls2 y crea la subinterfaz automáticamente.

  1. In: root@juan-Aspire-ES1-512:/# docker network create -d macvlan –subnet=192.168.10.0/24 – -gateway=192.168.10.1  -o parent=wls2.50 macvlan50
  2. Out: a555c3073482dacae12165b2dace4192706a01e606bf907a4f11446be0ad9b4d

Recopilando :

Estos apuntes de Networking en Dockers nos dan visión del conjunto de las Redes del ecosistema de Docker las cuales analizare una a una.

Referencias: (Docker)