Descripción general y ejemplos de interfaces de red múltiples

En esta página, se proporciona una descripción general de las interfaces de red múltiples en una instancia de máquina virtual (VM). Además, se describe cómo funcionan y se muestran algunos parámetros de configuración de ejemplo. Para obtener información sobre cómo crear parámetros de configuración que usen interfaces múltiples, consulta Crea interfaces de red múltiples.

Descripción general

Las redes de nube privada virtual (VPC) de Google Cloud son dominios privados y aislados de herramientas de redes. Las redes tienen un alcance global y contienen subredes regionales. Las instancias de VM de una red de VPC se pueden comunicar entre sí a través de direcciones IP internas, siempre que las reglas de firewall lo permitan. Sin embargo, no se permite la comunicación mediante direcciones IP internas entre redes, a menos que configures mecanismos como el intercambio de tráfico entre redes de VPC o Cloud VPN.

Cada instancia en una red de VPC tiene una interfaz de red predeterminada. Puedes crear interfaces de red adicionales vinculadas a las VM. Con las interfaces de red múltiples, puedes crear parámetros de configuración que permitan que una instancia se conecte directamente a varias redes de VPC. Las interfaces deben tener una dirección IP interna y también pueden tener una 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, se necesitan interfaces múltiples para configurar una instancia como un dispositivo de red que realice balanceo de cargas, detección y prevención de intrusiones (IDS/IPS), optimización de WAN entre redes o firewall de aplicación web (WAF). 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 administración.

Casos prácticos

Puedes usar interfaces de red múltiples cuando una instancia individual necesita 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 dispositivos de red, como los balanceadores de cargas, servidores de traducción de direcciones de red (NAT) y servidores proxy configurados con interfaces de red múltiples. Para obtener más detalles, consulta el Ejemplo 1: Dispositivos virtuales de seguridad y herramientas de redes.

  • Perímetro y aislamiento de DMZ: Para las arquitecturas de red en capas, se recomienda aislar los servicios públicos de una red interna y sus servicios. Puedes usar interfaces de red múltiples para crear parámetros de configuración en los que haya interfaces de red separadas dentro de la instancia; uno de ellos debe aceptar el tráfico público y el otro debe administrar 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 la red interna y sus servicios. Esto limita de manera significativa el alcance y el daño que puede causar la vulneración de la seguridad. Por ejemplo, en cada servidor, puedes colocar una segunda interfaz de red que se conecte a una red de nivel medio que contenga un servidor de aplicaciones. El servidor de aplicaciones también puede tener dos host y conectarse a una red de backend en la que resida el servidor de base de datos. Cada instancia con dos host recibe y procesa las solicitudes en el frontend, inicia una conexión al backend y, luego, envía las solicitudes a los servidores de la red de backend.

    Mediante la configuración de interfaces diferentes, una pública y otra privada, puedes aplicar reglas de firewall y controles de acceso distintos a cada interfaz y aplicar funciones de seguridad en las comunicaciones que se realizan del dominio público al privado. Para obtener más información, consulta Ejemplo 2: Usa dispositivos de terceros en una situación de red de VPC compartida.

Ejemplos de configuración

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

Ejemplo 1: Dispositivos virtuales de seguridad y herramientas de redes

Los dispositivos virtuales de seguridad y herramientas de redes, como WAF, los firewalls de seguridad de nivel de aplicación y los aceleradores de WAN, se suelen configurar con interfaces virtuales múltiples. Estas interfaces están configuradas con su propia dirección IP privada y, de forma opcional, con su propia dirección IP pública.

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

Caso práctico 1: Aprovisiona y configura instancias con interfaces múltiples (haz clic para ampliar)
Caso práctico 1: Aprovisiona y configura instancias con interfaces múltiples (haz clic para ampliar)

Aprovisiona y configura instancias para el ejemplo 1

En el siguiente ejemplo, se supone que subnet0, subnet1 y subnet2 ya existen, con rangos que no se superponen. Para configurar dispositivos de VM 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
    

Con este comando, se crea una instancia con tres interfaces de red:

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

Ejemplo 2: Usa dispositivos de terceros en una situación de red de VPC compartida

Esta configuración resulta útil cuando quieres compartir un solo conjunto 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 distintas, App1, App2, App3 y App4, alojadas en diferentes proyectos de servicio. Necesitas protegerlas de las entradas provenientes de Internet y que el tráfico de salida se inspeccione y filtre en un dispositivo de terceros que se encuentre en 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 ampliar)
Caso práctico 2: Ejemplo de VPC compartida con un dispositivo de terceros (haz clic para ampliar)

Aprovisiona y configura las 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 el dispositivo de VM, ejecuta el siguiente comando:

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 se conecta a la subnet-dmz, que es parte de network-dmz, con una dirección estática del tipo “reserved-address” (dirección reservada).
  • nic1 se conecta a la subnet-1, que es parte de la network-1, sin una IP pública.
  • nic2 se conecta a la subnet-2, que es parte de la network-2, sin una IP pública.
  • nic3 se conecta a la subnet-3, que es parte de la network-3, sin una IP pública.
  • nic4 se conecta a la subnet-4, que es parte de la network-4, sin una IP pública.

Detalles operativos adicionales

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

La VPC compartida te permite compartir redes de VPC entre los proyectos de tu organización de Cloud.

La VPC compartida te permite crear instancias asociadas con una red de VPC compartida alojada en un proyecto host centralizado de VPC compartida. Para obtener más información sobre cómo configurar redes de VPC compartidas, consulta Aprovisiona la VPC compartida.

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

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

Resolución de 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 (nic0) de la instancia. Si la interfaz nic0 de la instancia pertenece a una red de VPC que no es la de la instancia que emite la consulta de DNS interna, la consulta fallará.

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

Comportamiento de DHCP con interfaces de red múltiples

En una configuración predeterminada de interfaces múltiples, 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 interfaces múltiples que usa DHCP, cada interfaz obtiene una ruta para la subred en la que se encuentra. Además, la instancia obtiene una única ruta predeterminada que está asociada con la interfaz principal eth0. A menos que se cambie la configuración de forma manual, el tráfico que salga desde una instancia hacia todo destino que no sea una subred directamente conectada saldrá de la instancia 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 las interfaces eth0 y eth1 obtienen las 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, consulta Configura una política de enrutamiento.

Interfaces de red múltiples y rutas estáticas personalizadas

Cuando una instancia de VM tiene interfaces múltiples y una etiqueta de red, es posible que la etiqueta de red no afecte a todas las interfaces de la VM. La etiqueta de red de una VM afecta a una interfaz si la interfaz está en una red de VPC que contiene una ruta estática personalizada con una etiqueta coincidente.

Por ejemplo:

  1. Una VM tiene dos interfaces: nic0 y nic1. La interfaz nic0 está en vpc-net-a. La interfaz nic1 está en vpc-net-b. La VM tiene una etiqueta de red denominada vpn-ok. La etiqueta es un atributo de la instancia y no de una interfaz específica.
  2. La red vpc-net-a tiene una ruta estática personalizada con una etiqueta denominada vpn-ok.
  3. La red vpc-net-b tiene una ruta estática personalizada con una etiqueta denominada vpn-123.

Estos pasos numerados corresponden a los números que señalan partes del texto en el siguiente diagrama:

Interfaces de red múltiples y rutas estáticas personalizadas (haz clic para ampliar)
Interfaces de red múltiples y rutas estáticas personalizadas (haz clic para ampliar)

En el caso de la red vpc-net-a, debido a que tiene una ruta con una etiqueta en común con la VM, la etiqueta vpn-ok de la VM se aplica a la interfaz nic0 de la VM en vpc-net-a. En cambio, debido a que vpc-net-b no tiene una ruta estática con la etiqueta vpn-ok, la etiqueta de red vpn-ok de la VM se ignora en la interfaz nic1 de la VM.

Usa etiquetas en rutas de instancias con interfaces de red múltiples

Si eliges usar etiquetas con rutas, ten en cuenta que las etiquetas se aplican a nivel de instancia y, en consecuencia, se aplican a todas las interfaces de una instancia de máquina virtual. Si esto no es conveniente, establece la configuración de modo que solo se usen 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.

Interfaces de red múltiples y balanceadores de cargas

A excepción del balanceo de cargas TCP/UDP interno, los balanceadores de cargas de Google Cloud solo distribuyen el tráfico a la primera interfaz (nic0) de una instancia de backend.

Interfaces de red múltiples y reglas de firewall

Cada red de VPC tiene su propio conjunto de reglas de firewall. Si la interfaz de una instancia está en una red de VPC específica, las reglas de firewall de esa red se aplican a esa interfaz.

Por ejemplo, supongamos que una instancia de VM tiene dos interfaces:

  • nic0 en la red de VPC network-1
  • nic1 en la red de VPC network-2

Las reglas de firewall que crees para la red network-1 se aplican a nic0. Las reglas de firewall que crees para la red network-2 se aplican a nic1.

Para obtener más información, consulta la Descripción general de las reglas de firewall.

Usa firewalls en instancias con interfaces de red múltiples

  • Las reglas de firewall de entrada pueden usar etiquetas de red o cuentas de servicio para identificar fuentes, destinos o ambos.

  • Las reglas de firewall de salida pueden usar etiquetas de red o cuentas de servicio para identificar destinos (fuentes).

Para obtener más información, consulta Filtra la fuente y el destino por cuenta de servicio.

Las etiquetas de red y las cuentas de servicio identifican instancias, en lugar de interfaces específicas. Ten en cuenta que las reglas de firewall están asociadas con una sola red de VPC y que las interfaces de las instancias de varias NIC deben estar en una red de VPC de única.

En el siguiente ejemplo, se demuestra cómo puedes usar etiquetas de origen de manera eficaz para las reglas de firewall de allow de entrada. La instancia vm1 tiene dos interfaces de red:

  • nic0 en network-1
  • nic1 en network-2

Supongamos que debes permitir el siguiente tráfico desde vm1:

  • Tráfico SSH desde vm1 a cualquier instancia en network-1
  • Tráfico HTTP y HTTPS desde vm1 a cualquier instancia en network-2

Para lograrlo, sigue estos pasos:

  1. Asigna dos etiquetas de red a vm1: vm1-network1 y vm1-network2.

  2. Crea una regla de firewall de allow de entrada en network-1 con los siguientes componentes para permitir el tráfico SSH desde vm1 a todas las VM en network-1:

    • Acción: allow
    • Dirección: ingress
    • Fuentes: VM con la etiqueta vm1-network1
    • Destinos: Todas las instancias de la red de VPC
    • Protocolos y puertos: tcp:22
  3. Crea una regla de firewall de permiso de entrada en network-2 con los siguientes componentes para permitir el tráfico HTTP y HTTPS desde vm1 a todas las VM de network-2:

    • Acción: allow
    • Dirección: ingress
    • Fuentes: VM con la etiqueta vm1-network2
    • Destinos: Todas las instancias de la red de VPC
    • Protocolos y puertos: tcp:80,443

En el siguiente diagrama, se ilustra este ejemplo de configuración de firewall:

Reglas de firewall (haz clic para ampliar)
Reglas de firewall (haz clic para ampliar)

Próximos pasos