Maksym Yemelyanov - stock.adobe.

Cinco controladores de red de Windows soportados por contenedores

NAT es la red predeterminada para aplicaciones de contenedor, pero hay otros cuatro controladores disponibles. Cada controlador de red de contenedor presenta algunas limitaciones y debe usarse con cuidado.

Hay cinco controladores de red de Windows disponibles para los contenedores a elegir: NAT, transparente, L2 Bridging, L2 Tunneling y redes superpuestas. Asegúrese de comprender sus casos de uso antes de asignar un controlador específico a un contenedor de Windows o Hyper-V.

Los contenedores utilizan redes de host para implementar redes para aplicaciones de contenedores, pero los contenedores también implementan diferentes tipos de redes virtuales para permitir la comunicación interna-interna y la comunicación interna-externa. Cada contenedor de Windows comienza con un adaptador de red virtual. Puede conectar el adaptador de red virtual utilizando cualquiera de los cinco tipos de controladores de red de Windows disponibles en el contenedor.

Antes de implementar redes para contenedores, eche un vistazo a todas las opciones de red disponibles. Por ejemplo, es posible que desee saber qué controlador de red puede usar para permitir que los contenedores se comuniquen entre sí y/o para habilitar aplicaciones de contenedor con acceso público. Una vez que habilita la función de contenedor en una máquina Windows Hyper-V, el sistema crea una nueva tarjeta de interfaz de red virtual Hyper-V y conecta todas las vNIC de Windows o Hyper-V contenedor al conmutador virtual Hyper-V.

Traducción de Direcciones de Red, NAT

Esta es la opción de red predeterminada para contenedores. El controlador de traducción de direcciones de red (NAT) proporciona el reenvío de puertos, lo que le permite reenviar el tráfico del contenedor al host para que las aplicaciones puedan acceder a redes externas. Cuando inicie los contenedores, cada contenedor obtendrá una dirección IP del controlador NAT o de cualquier red personalizada que haya definido. El controlador de Windows, WinNAT, es responsable de pasar la comunicación de red de los contenedores al host o aplicaciones externas. Puede utilizar NAT en entornos de producción, pero hay algunas limitaciones. No se admiten varias subredes y no hay una configuración de red automática. Cualquier red que cree en la máquina host también estará disponible para los contenedores de Windows.

Redes de contenedores transparentes

Si desea que sus aplicaciones de contenedor o contenedor se conecten directamente a redes físicas, considere crear una red transparente. Una red transparente obtiene una dirección IP y opciones de un servidor externo del Protocolo de configuración dinámica de host (DHCP). También puede asignar direcciones IP estáticas a redes transparentes. Puede crear una red transparente utilizando el comando de red docker, pero debe especificar -d transparente, como se muestra en el siguiente comando:

Docker network create –d transparent ProdCustomNet

El comando anterior permite a ProdCustomNet obtener una dirección IP del servidor DHCP, mientras que el comando siguiente crea una red transparente con una dirección IP y valores de subred:

Docker network create –d transparent –subnet=172.20.20.0/24 –gateway=172.20.20.0/24 ProdCustomNet

Si ejecuta un contenedor en una máquina virtual Hyper-V y planea usar una dirección IP estática con una red transparente, debe habilitar MACAddressSpoofing para habilitar el tráfico de red desde múltiples direcciones de control de acceso de medios.

L2 Bridging y L2 Tunneling

Las redes L2 Bridging y L2 Tunneling son ideales si planea usar la virtualización de red Hyper-V o la red definida por software (SDN). L2, como su nombre indica, es capaz de realizar la traducción de direcciones en la Capa 2. Solo puede asignar direcciones IP estáticas para redes L2 Bridging y L2 Tunneling en contenedores. Si es un proveedor de alojamiento en la nube o tiene diferentes inquilinos que crean redes L2 Bridging o L2 Tunneling en contenedores, tiene más sentido utilizar redes de superposición para permitir la comunicación entre varios hosts. Para crear una red L2 Bridging, especifique -d l2bridge, como se muestra en el siguiente comando:

Docker network create –d l2bridge –subnet=172.20.20.0/24 –gateway=172.20.20.1 ProdL2BridgeNet

Redes de contenedores superpuestos

Si implementa contenedores en modo de enjambre, varios contenedores conectados a la misma red de superposición pueden comunicarse a través de múltiples hosts de contenedores. El sistema configura cada red de superposición con un rango de direcciones privadas y su propia subred.

¿Qué red de contenedores debería usar?

Hay muchos casos de uso para los controladores de red de Windows. Por ejemplo, puede utilizar NAT para fines de desarrollo; redes de contenedores transparentes para fines de desarrollo y para implementaciones pequeñas a medianas; redes de puente L2 para implementaciones de SDN; L2 Tunneling para conectarse a las redes de Azure; y superponga redes para cuando implemente clústeres de enjambres y desee que los contenedores se comuniquen entre sí a través de hosts.

Investigue más sobre Windows