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 algunas opciones de configuración. Para obtener información sobre cómo crear configuraciones en las que se usen interfaces múltiples, consulta la sección sobre cómo crear interfaces de red múltiples.

Descripción general

Las redes de nube privada virtual (VPC) de Google Cloud son, de forma predeterminada, dominios de redes privadas aisladas. Las redes tienen un permiso 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 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 conectadas a tus VM. Con las interfaces de red múltiples, puedes 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 sea necesario el acceso de una instancia individual a más de una red de VPC, pero no deseas conectar ambas redes directamente.

  • Función de seguridad y redes: 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 Ejemplo 1: Dispositivos virtuales de seguridad y Herramientas de 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. En cada instancia de dos bases, se reciben y procesan solicitudes en el frontend, se inicia una conexión al backend y, luego, se envían 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 hasta el 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 sobre cómo utilizar interfaces de red múltiples.

Ejemplo 1: Dispositivos virtuales de seguridad y Herramientas de redes

Por lo general, las aplicaciones virtuales de seguridad y Herramientas de redes, como los firewalls de aplicaciones web (WAF), los firewalls de seguridad a nivel de la aplicación y los aceleradores WAN, se configuran con interfaces virtuales múltiples. Cada una de las interfaces múltiples se configura con su propia dirección IP interna y, de forma opcional, con su propia dirección IP externa.

En la siguiente figura, se describe un ejemplo de configuración de un firewall a nivel de la aplicación en el que se controla el tráfico de Internet a una red de VPC. El firewall a nivel de la aplicación se implementa en las VM de Compute Engine.

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 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

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

  • nic0 se conecta a subnet0 y no tiene una dirección IP externa.
  • nic1 se conecta a subnet1 y tiene una dirección IP externa efímera.
  • nic2 se conecta a subnet2 y no tiene una dirección IP externa.

Ejemplo 2: Usa 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 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 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 las siguientes cinco interfaces de red:

  • nic0 se conecta a subnet-dmz, que forma parte de network-dmz, con una dirección estática "'reserved-address".
  • nic1 se conecta a subnet-1, que forma parte de network-1, sin una IP externa.
  • nic2 se conecta a subnet-2, que forma parte de network-2, sin una IP externa.
  • nic3 se conecta a subnet-3, que forma parte de network-3, sin una IP externa.
  • nic4 se conecta a subnet-4, que forma parte de network-4, sin una IP externa.

Detalles operativos adicionales

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

La VPC compartida te permite compartir redes de VPC entre 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. 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 conectadas 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 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, esta se resuelve en la interfaz principal (nic0) de la instancia. Si la interfaz nic0 de la instancia forma parte de 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 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, en la instancia, se obtiene una sola 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 cualquier destino, que no sea una subred conectada directamente, saldrá de la instancia a través de la ruta predeterminada en eth0.

En este ejemplo, se obtiene la ruta predeterminada (default via 10.138.0.1 dev eth0) en la interfaz principal 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 la 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 esta está en una red de VPC que contiene una ruta estática personalizada con una etiqueta coincidente.

El siguiente es un ejemplo de esto:

  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, observa que las etiquetas se aplican en el nivel de la instancia y, en consecuencia, esto se realiza en 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

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

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 las siguientes 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 Descripción general de las reglas de firewall.

Usa firewalls en instancias con interfaces de red múltiples

  • En las reglas de firewall de entrada, se pueden usar etiquetas de red o cuentas de servicio para identificar las fuentes, los destinos o ambos.

  • En las reglas de firewall de salida, se pueden usar etiquetas de red o cuentas de servicio para identificar los 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 cada interfaz de una instancia de varias NIC debe estar en una red de VPC única.

En el siguiente ejemplo, se demuestra cómo puedes usar etiquetas de origen de manera eficaz para las reglas de firewall allow de entrada. La instancia vm1 tiene las siguientes 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 allow de entrada en network-1 con los siguientes componentes para permitir el tráfico SSH desde vm1 hacia 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 hacia todas las VM en 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