Descripción general de interfaces de red multiples y ejemplos

En esta página se brinda una descripción general de interfaces de red múltiples en una instancia de máquina virtual (VM). También se incluye el funcionamiento y configuraciones de muestra. Para obtener información sobre cómo crear configuraciones que utilicen interfaces múltiples, consulta Cómo crear interfaces de red múltiples.

Descripción general

Las redes de VPC de Google Cloud Platform (GCP) son, debido a su configuración predeterminada, dominios de redes privadas aisladas. Las redes tienen un alcance global y contienen subredes regionales. Las instancias de VM dentro de una red de VPC se pueden comunicar entre sí a través de direcciones IP internas, siempre y cuando las reglas de firewall lo permitan. Sin embargo, no se permite la comunicación de direcciones IP internas entre redes, a menos que configures mecanismos como intercambio de tráfico entre VPC o VPN.

Cada instancia en una red de VPC tiene una interfaz de red predeterminada. Puedes crear interfaces de red adicionales vinculadas a tus VM. Las interfaces de red múltiples te permiten crear configuraciones en las que una instancia se conecta directamente a varias redes de VPC. Cada una de las interfaces debe tener una dirección IP interna, y cada interfaz también puede tener una dirección IP externa. Cada instancia puede tener hasta 8 interfaces, según el tipo de instancia. Para obtener más información, consulta Cantidad máxima de interfaces.

Por lo general, es posible que necesites interfaces múltiples si deseas configurar una instancia, como un dispositivo de red, que hace balanceo de cargas, detección y prevención de intrusiones (IDS/IPS), firewall de aplicación web (WAF), o bien optimización WAN entre redes. Las interfaces de red múltiples también son útiles cuando las aplicaciones que se ejecutan en una instancia requieren una separación del tráfico, como la separación del tráfico del plano de datos del de la administración.

Casos prácticos

Usa interfaces de red múltiples cuando una instancia individual necesite acceso a más de una red de VPC, pero no deseas conectar ambas redes directamente.

  • Función de seguridad y red: las interfaces de red múltiples habilitan funciones virtualizadas de dispositivo de red, como balanceadores de cargas, servidores de traducción de dirección de red (NAT) y servidores proxy configurados con interfaces de red múltiples. Consulta el Ejemplo 1: Dispositivos virtuales de seguridad y redes para obtener más detalles.

  • Perímetro y aislamiento de DMZ: una práctica importante en las arquitecturas de red en capas es aislar los servicios públicos de una red interna y sus servicios. Usa interfaces de red múltiples para crear configuraciones donde haya interfaces de red separadas en la instancia, una de ellas que acepte el tráfico público y otra que administre el tráfico privado de backend que tiene controles de acceso más restringidos.

    Cualquier recurso al que se pueda acceder desde Internet debe estar separado de tu red interna y sus servicios. Esto limita drásticamente el alcance y el daño que puede causar un incumplimiento de las normas de seguridad. Por ejemplo, puedes colocar una segunda interfaz de red en cada servidor web que se conecte a una red de nivel medio donde reside un servidor de aplicaciones. El servidor de aplicaciones también puede ser de dos bases para una red de backend en la que reside el servidor de base de datos. Cada instancia de dos bases recibe y procesa solicitudes en el frontend, inicia una conexión al backend y luego envía solicitudes a los servidores en la red de backend.

    Mediante la configuración de dos interfaces separadas, una pública y otra privada, puedes aplicar distintas reglas de firewall y controles de acceso a cada interfaz por separado, y aplicar funciones de seguridad en las comunicaciones desde el dominio público al privado. Para obtener más información, consulta Ejemplo 2: Cómo usar dispositivos de terceros en una situación de red de VPC compartida

  • Aislamiento del ancho de banda en interfaces separadas: esto incluye evitar problemas de cabeza de línea entre el plano de control y el plano de datos. Puedes separar las redes de administración, control, almacenamiento y plano de datos mediante las interfaces de red. En algunas aplicaciones, el control (por ejemplo, las señales de monitoreo de funcionamiento) es muy sensible. En esas aplicaciones, se recomienda aislar el control de las interfaces de ruta de datos para garantizar un ancho de banda mínimo disponible en caso de un pico o congestión de tráfico. En esta situación, usa interfaces virtuales dedicadas para separar el tráfico de control de otro tipo de tráfico. Cada interfaz tiene una fila virtual. La fila virtual evita que los incrementos del ancho de banda y los ataques DSD en una red de VPC afecten a otras redes de VPC. Estas filas virtuales por interfaz también evitan el bloqueo de cabeza de línea y brindan una distribución equilibrada de CPU de la instancia para cada interfaz de E/S. Consulta el Ejemplo 3: Separación de las interfaces de administración y plano de datos en arquitecturas SaaS para obtener más detalles.

Ejemplos de configuración

En esta sección se analizan varios ejemplos comunes sobre cómo utilizar interfaces de red múltiples.

Ejemplo 1: Dispositivos virtuales de seguridad y redes

Los dispositivos virtuales de seguridad y redes, como WAF, los firewalls de seguridad de nivel de aplicación y los aceleradores WAN, normalmente se configuran con interfaces virtuales múltiples. Cada una de las interfaces múltiples está configurada con su propia dirección IP privada y, de forma opcional, con su propia dirección IP pública.

En el siguiente gráfico se describe una configuración típica. En este caso específico, configuras un dispositivo de red virtual en la ruta de acceso de la conectividad pública a la privada. De este modo, el tráfico solo puede alcanzar una red de VPC privada desde un cliente externo público mediante un punto de cumplimiento de firewall virtualizado de nivel de aplicación. Este firewall de nivel de aplicación se aplica por encima de las máquinas virtuales.

Caso práctico 1: Cómo aprovisionar y configurar instancias con interfaces múltiples (haz clic para agrandar la imagen)
Caso práctico 1: Cómo aprovisionar y configurar instancias con interfaces múltiples (haz clic para agrandar la imagen)

Cómo aprovisionar y configurar instancias para el ejemplo 1

Lo siguiente supone que subnet0, subnet1 y subnet2 ya existen, con rangos no superpuestos. Para configurar VM-appliance en este ejemplo, usa el siguiente comando:

gcloud compute instances create vm-appliance \
    --network-interface subnet=subnet0,no-address \
    --network-interface subnet=subnet1 \
    --network-interface subnet=subnet2,no-address \
    --machine-type n1-standard-4

Este comando crea una instancia con tres interfaces de red:

  • nic0 está vinculado a subnet0 y no tiene una dirección IP pública.
  • nic1 está vinculado a subnet1 y tiene una dirección IP pública efímera.
  • nic2 está vinculado a subnet2 y no tiene una dirección IP pública.

Ejemplo 2: Cómo usar dispositivos de terceros en una situación de red de VPC compartida

Esta configuración es útil cuando quieres compartir un conjunto único de aplicaciones centralizadas de terceros para las cargas de trabajo o las aplicaciones alojadas en diferentes proyectos. En el ejemplo que se muestra a continuación hay cuatro aplicaciones diferentes, App1, App2, App3 y App4, que están alojadas en diferentes proyectos de servicio. Necesitas que estén protegidas de todo ingreso de Internet y que el tráfico de salida se inspeccione y filtre en un dispositivo de terceros que ocupe una ubicación central en el proyecto host de VPC compartida

Caso práctico 2: Ejemplo de VPC compartida con un dispositivo de terceros (haz clic para agrandar la imagen)
Caso práctico 2: Ejemplo de VPC compartida con un dispositivo de terceros (haz clic para agrandar la imagen)

Cómo aprovisionar y configurar interfaces de red y la VM para el ejemplo 2

Para crear la VM y las interfaces de red de este ejemplo, usa los siguientes comandos:

Para crear VM-appliance:

gcloud compute instances create VM-appliance \
    --network-interface subnet=subnet-dmz,address='reserved-address' \
    --network-interface subnet=subnet-1,no-address \
    --network-interface subnet=subnet-2,no-address \
    --network-interface subnet=subnet-3,no-address \
    --network-interface subnet=subnet-4,no-address \
    --machine-type=n1-standard-4

Esto crea una instancia con cinco interfaces de red:

  • nic0 está vinculado a subnet-dmz, que es parte de network-dmz, con una dirección estática 'reserved-address'.
  • nic1 está vinculado a subnet-1, que es parte de network-1, con ninguna IP pública.
  • nic2 está vinculado a subnet-2, que es parte de network-2, con ninguna IP pública.
  • nic3 está vinculado a subnet-3, que es parte de network-3, con ninguna IP pública.
  • nic4 está vinculado a subnet-4, que es parte de network-4, con ninguna IP pública.

Ejemplo 3: Separación de las interfaces de plano de datos y la administración en las arquitecturas SaaS

Si operas un servicio en GCP que ofreces a distintos clientes (usuarios), puedes tener una interfaz de administración separada para administrar tu servicio. Puedes usar tu interfaz de administración para realizar actualizaciones de software, procedimientos de mantenimiento y solución de problemas, independientemente de las interfaces usadas por tus usuarios.

En el siguiente diagrama se muestra un servicio alojado en la nube. Como productor de servicios, aíslas el servicio provisto a cada uno de tus usuarios en redes de VPC separadas. Es decir, creas una red de VPC para cada uno de tus usuarios y creas instancias específicas con el fin de brindar servicios a cada cliente. Por ejemplo, creas instancias para brindar servicios al Usuario A y aíslas esas instancias en la Red A de modo que las máquinas locales del Usuario A puedan acceder a ese servicio, pero el resto de los usuarios no puedan. Luego, puedes crear la misma configuración para el Usuario B y el Usuario C.

Sin embargo, debes tener acceso a cada uno de los servicios del usuario alojados en GCP para realizar actualizaciones del software, y brindar asistencia y solución de problemas. Puedes lograr esto agregando una interfaz de administración en cada una de las instancias y asociándola con tu red de administración, que está conectada de modo privado a tus instalaciones locales.

Caso práctico 3: Ejemplo de SaaS (haz clic para agrandar la imagen)
Caso práctico 3: Ejemplo de SaaS (haz clic para agrandar la imagen)

La instancia del Usuario A tiene dos interfaces: una pertenece a la red del Usuario A y la otra a la red de administración del productor (proveedor de SaaS). De modo similar, la instancia del Usuario B tiene dos interfaces. Una que pertenece a la red del Usuario B y otra que pertenece a una red de administración del productor (proveedor de SaaS).

Cómo aprovisionar y configurar instancias para el ejemplo 3

Para configurar las instancias de usuarios en este ejemplo, usa los siguientes comandos de ejemplo:

Para crear VM-A:

gcloud compute instances create vm-a \
    --network-interface subnet=subnet-a,no-address \
    --network-interface subnet=subnet-mgmt,private-network-ip=198.168.0.2, \
    no-address

Esto crea una instancia con dos interfaces de red:

  • nic0 está vinculado a subnet-a, que es parte de network-a.
  • nic1 está vinculado a subnet-mgmt, que es parte de network-mgmt.

Para crear VM-B:

gcloud compute instances create vm-b\
    --network-interface subnet=subnet-b,no-address \
    --network-interface subnet=subnet-mgmt,private-network-ip=198.168.0.3, \
    no-address

Esto crea una instancia con dos interfaces de red:

  • nic0 está vinculado a subnet-b, que es parte de network-b.
  • nic1 está vinculado a subnet-mgmt, que es parte de network-mgmt.

Para crear VM-C:

gcloud compute instances create vm-c\
    --network-interface subnet=subnet-c,no-address \
    --network-interface subnet=subnet-mgmt,private-network-ip=198.168.0.4, \
    no-address

Esto crea una instancia con dos interfaces de red:

  • nic0 está vinculado a subnet-c, que es parte de network-c.
  • nic1 está vinculado a subnet-mgmt, que es parte de network-mgmt.

Detalles adicionales de operación

Interfaces de red múltiples en un entorno de VPC compartida

La VPC compartida te permite compartir redes de VPC entre proyectos de tu Cloud Organization.

La VPC compartida te permite crear instancias asociadas con una red de VPC compartida alojada en un proyecto host centralizado de VPC compartida. Consulta Cómo aprovisionar una VPC compartida para obtener información completa sobre cómo configurar redes de VPC compartidas.

Cuando creas instancias con interfaces de red múltiples, tus instancias o plantillas de instancias pueden tener ciertas interfaces vinculadas a subredes locales del proyecto, mientras que otras instancias pueden estar vinculadas a redes de VPC compartidas.

Para crear instancias con una o más interfaces asociadas a redes de VPC compartidas, debes tener la función de compute.networkUser en el proyecto host de VPC compartida.

Resolución DNS con interfaces de red múltiples

Cuando se realiza una consulta de DNS interna con el nombre de host de la instancia, se resuelve en la interfaz principal de la instancia (nic0). Si la interfaz nic0 de la instancia pertenece a una red de VPC distinta a la de la instancia que emite la consulta de DNS, la consulta fallará.

Los registros DNS privados de Compute Engine no se generarán por interfaz.

Comportamiento DHCP con interfaces de red múltiples

En una configuración de interfaz múltiple predeterminada, el SO está configurado para usar DHCP. El comportamiento de DHCP y ARP de cada una de las interfaces múltiples es el mismo que el de DHCP y ARP en una instancia con una sola interfaz.

En una instancia de interfaz múltiple que utiliza DHCP, cada interfaz obtiene una ruta para la subred en la que se encuentra. Además, la instancia obtiene una única ruta predeterminada asociada con la interfaz principal eth0. A menos que se configure manualmente de otra manera, cualquier tráfico que salga de una instancia hacia un destino que no sea una subred directamente conectada lo hará a través de la ruta predeterminada en eth0.

En este ejemplo, la interfaz principal eth0 obtiene la ruta predeterminada (default via 10.138.0.1 dev eth0), y ambas interfaces eth0 y eth1 obtienen rutas para sus respectivas subredes.

instance-1:~$ ip route
default via 10.138.0.1 dev eth0
10.137.0.0/20 via 10.137.0.1 dev eth1
10.137.0.1 dev eth1 scope link
10.138.0.0/20 via 10.138.0.1 dev eth0
10.138.0.1 dev eth0 scope link

Para obtener más información, lee Cómo configurar una política de enrutamiento.

Rutas estáticas con interfaces de red múltiples

Las rutas estáticas se aplican por red de VPC o en instancias específicas dentro de una red de VPC, que coinciden con una etiqueta de destino configurada.

Cada red de VPC puede tener un conjunto de rutas distinto. Cuando configuras una instancia con interfaces múltiples, cada una pertenece a una red de VPC distinta. En consecuencia, el tráfico asociado con cada interfaz está sujeto a las rutas de la red de VPC a las que pertenece la instancia.

Cómo usar etiquetas en rutas en instancias con interfaces de red múltiples

Si eliges usar etiquetas con rutas, observa que las etiquetas se aplican en el nivel de la instancia y, en consecuencia, se aplican a todas las interfaces de una instancia de máquina virtual. Si esto no es recomendable, establece tu configuración de modo que solo se utilicen ciertas etiquetas en las rutas de una red de VPC determinada, y asegúrate de que esas etiquetas solo se apliquen a las interfaces asociadas con la red de VPC específica.

Balanceadores de cargas con interfaces de red múltiples

Cuando el backend de balanceo de cargas, como un grupo de instancias o grupo de destino, tiene interfaces de red múltiples, el balanceador de cargas envía tráfico solo a la interfaz predeterminada de la instancia de backend.

Esto ocurre en todos los tipos de balanceadores de cargas admitidos en GCP.

Reglas de firewall con interfaces de red múltiples

Puedes configurar reglas de firewall a fin de permitir únicamente el tráfico específico definido por una combinación de lo siguiente:

  • Rango de IP de origen, una lista de bloqueos de direcciones IP permitidos, o etiquetas de origen, un conjunto de instancias permitidas.
  • Protocolo de destino o puerto.

Las reglas de firewall se aplican por red de VPC, o en instancias específicas dentro de una red de VPC, que coinciden con una etiqueta de destino configurada.

Cada red de VPC puede tener un conjunto diferente de reglas de firewall. Cuando configuras una instancia con interfaces de red múltiples, cada una pertenece a una red de VPC distinta. Cada interfaz está restringida por las reglas de firewall aplicadas a la red de VPC a la que pertenece.

Cómo usar etiquetas en firewalls en instancias con interfaces de red múltiples

Si decides utilizar etiquetas para implementar reglas de firewall, ten en cuenta que las etiquetas se aplican en el nivel de la instancia y aplican a todas las interfaces de una instancia. Si esto no es recomendable, establece tu configuración de modo que solo se utilicen ciertas etiquetas en las rutas y reglas de firewall de una red de VPC determinada, y asegúrate de que esas etiquetas solo se apliquen a las interfaces asociadas con la red de VPC específica.

Por ejemplo, si usas el nombre de la red de VPC en una etiqueta, un usuario puede identificar con claridad a qué red de VPC se aplican esas etiquetas y, posteriormente, a qué interfaz también.

Después de elegir nombres de etiquetas a fin de identificar redes de VPC específicas, usa solo las etiquetas para las reglas de firewall que se aplican a esa red de VPC en particular.

Como ejemplo, considera la siguiente situación: tienes dos redes de VPC, network1 y network2. Una instancia, vm-1, está vinculada a ambas redes de VPC mediante dos interfaces diferentes: nic0 está asociada con network1 y nic1 está asociada con network2.

En el siguiente gráfico se describe esta configuración.

Cómo usar etiquetas en firewalls (haz clic para agrandar la imagen)
Cómo usar etiquetas en firewalls (haz clic para agrandar la imagen)

En esta situación, aplica las siguientes reglas de firewall:

  1. Todas las instancias en network1 aceptan conexiones SSH solo desde VM1.
  2. Todas las instancias en network2 aceptan conexiones HTTP/HTTPS solo desde VM1.

Para configurar estas reglas:

  1. Todas las instancias en network1 aceptan conexiones SSH solo desde VM1.

    1. Aplica una etiqueta en VM1 que solo esté destinada a utilizarse en Network1. En este ejemplo, la etiqueta es vm1-network1-foo:

      gcloud compute instances add-tags vm1 \
          --tags vm1-network1-foo
      
    2. Configura las reglas de firewall en network1 para permitir ssh (tcp, port 22) usando la etiqueta vm1-network1-foo como una etiqueta de origen:

      gcloud compute firewall-rules create allow-ssh-from-vm1 \
          --allow tcp:22 \
          --network network1 \
          --source-tags vm1-network1-foo
      
  2. Todas las instancias en network2 aceptan conexiones HTTP/HTTPS solo desde VM1.

    1. Aplica una etiqueta en VM1 que solo esté destinada a utilizarse en Network2. En este ejemplo vm1-network2-foo:

      gcloud compute instances add-tags vm1 \
          --tags vm1-network2-foo
      
    2. Configura las reglas de firewall en Network2 para permitir http y https (tcp, port 80,443) usando esa etiqueta vm1-network2-foo como una etiqueta de origen:

      gcloud compute firewall-rules create allow-http-https-from-vm1 \
          --allow tcp:80,443 \
          --network network2\
          --source-tags vm1-network2-foo
      
Reglas de firewall (haz clic para agrandar la imagen)
Reglas de firewall (haz clic para agrandar la imagen)

Próximos pasos

Lee Cómo crear instancias con interfaces de red múltiples.

¿Te sirvió esta página? Envíanos tu opinión: