Crear VMs con varias interfaces de red

En esta página se describe cómo crear instancias de VM con varias interfaces de red.

Antes de empezar

Antes de empezar, familiarízate con las características de las instancias con varias interfaces de red, tal como se describe en el artículo Descripción general de las interfaces de red múltiples.

Roles de gestión de identidades y accesos

Para crear una instancia con varias interfaces de red, debes tener uno de los siguientes roles:

Crear y eliminar instancias y plantillas de instancias con varias interfaces en un proyecto que no utilice un entorno de VPC compartida: un usuario con el rol Propietario, Editor o Administrador de instancias de Compute (v1) puede crear una instancia con varias interfaces asociadas a redes y subredes de VPC que formen parte del mismo proyecto.

Crear y eliminar instancias y plantillas de instancias con varias interfaces en entornos de VPC compartida: un usuario con el rol Propietario, Editor o Administrador de instancias de Compute (v1) puede crear una instancia con varias interfaces. Si alguna de las interfaces está conectada a una subred de un proyecto del host de VPC compartida, también debes tener el rol Usuario de red de Compute (roles/compute.networkUser) en todo el proyecto del host o en las subredes que necesites usar.

Para obtener más información sobre los permisos, consulta la documentación de gestión de identidades y accesos de Compute Engine.

Crear instancias de máquina virtual con varias interfaces de red

En esta sección se describe cómo crear una instancia con varias interfaces de red, incluidas las NICs virtuales y las NICs dinámicas. Para obtener instrucciones generales sobre cómo crear instancias, consulta Crear e iniciar una instancia de VM.

La primera interfaz siempre se crea como nic0 y siempre es la interfaz predeterminada.

Consola

  1. En la Cloud de Confiance consola, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. En el panel Configuración de la máquina, haz lo siguiente:

    1. En el campo Name (Nombre), introduce un nombre para la instancia.
    2. En el campo Región, selecciona una región.
    3. En el campo Zona, selecciona una zona.
  3. En el menú de navegación, haga clic en Redes para ver el panel Redes.

  4. En la sección Interfaces de red, despliega la interfaz de red que quieras editar.

    1. En Red y Subred, selecciona la red y la subred que quieras usar.

      Si quieres configurar direcciones IPv6 en la interfaz, selecciona una subred que tenga configurado un /64 intervalo de direcciones IPv6. El tipo de acceso IPv6 de la subred determina si la instancia recibe un intervalo de direcciones /96IPv6 interno o un intervalo de direcciones /96IPv6 externo.

    2. Seleccione una de las siguientes opciones para el tipo de pila de IP de la interfaz:

      • IPv4 (single-stack)
      • IPv4 e IPv6 (pila dual)
      • IPv6 (pila única)
    3. En las interfaces con direcciones IPv4, haz lo siguiente:

      1. En Dirección IPv4 interna principal, selecciona una de las siguientes opciones:

        • Efímera (automática) para asignar automáticamente una nueva dirección IPv4 efímera
        • Efímera (personalizada) para especificar manualmente una nueva dirección IPv4 efímera
        • Una dirección IPv4 interna estática reservada de la lista
        • Reservar dirección IPv4 interna estática para reservar y asignar una nueva dirección IPv4 interna estática
      2. En Dirección IPv4 externa, seleccione una de las siguientes opciones:

        • Efímera para asignar una nueva dirección IPv4 efímera
        • Ninguna para no asignar una dirección IPv4 externa
        • Una dirección IPv4 estática reservada de la lista
        • Reservar dirección IP externa estática para reservar y asignar una nueva dirección IPv4 externa estática
      3. También puedes asignar uno o varios intervalos de IPs alias a la interfaz de red. Para asignar un intervalo de IPs de alias, sigue estos pasos:

        1. En Intervalos de IP de alias, haz clic en Añadir intervalo de IPs.
        2. En Intervalo de subred, selecciona un intervalo de direcciones IPv4 principal o secundario de la subred que quieras usar.
        3. En Intervalo de IP de alias, introduce un intervalo de IP en notación CIDR. Este intervalo debe ser un intervalo sin usar del intervalo de IPs de la subred que hayas seleccionado.

        Para obtener más información sobre cómo asignar intervalos de IP de alias a interfaces de red de VMs, consulta Configurar intervalos de IP de alias.

    4. En el caso de las interfaces con direcciones IPv6, siga estos pasos en función del tipo de acceso de la subred conectada:

      1. En Dirección IPv6 interna principal, selecciona una de las siguientes opciones:
        • Efímera (automática) para asignar automáticamente un nuevo intervalo de direcciones IPv6 internas efímeras
        • Efímera (personalizada) para especificar manualmente un nuevo intervalo de direcciones IPv6 internas efímeras
        • Un intervalo de direcciones IPv6 internas estáticas reservadas de la lista
        • Reservar dirección IPv6 interna estática para reservar y asignar un nuevo intervalo de direcciones IPv6 internas estáticas
      2. En Dirección IPv6 externa, selecciona una de las siguientes opciones:
        • Efímera (automática) para asignar automáticamente un nuevo intervalo de direcciones IPv6 externas efímeras
        • Efímera (personalizada) para especificar manualmente un nuevo intervalo de direcciones IPv6 externas efímeras
        • Un intervalo de direcciones IPv6 externas estáticas reservado de la lista
        • Reservar dirección IPv6 externa estática para reservar y asignar un nuevo intervalo de direcciones IPv6 externas estáticas
    5. Para terminar de modificar la interfaz de red, haz clic en Hecho.

  5. Para añadir otra interfaz de red, sigue estos pasos:

    1. Para añadir una interfaz de red virtual, haz clic en Añadir una interfaz de red y rellena el formulario con los detalles de la interfaz de red virtual.

    2. Para añadir una NIC dinámica, haz clic en Añadir una interfaz de red dinámica y sigue estos pasos:

      1. En el campo Interfaz de red principal, selecciona la vNIC principal para la que quieras crear la NIC dinámica.
      2. En el campo ID de VLAN, introduce el ID de VLAN de la NIC dinámica.
      3. Rellena el formulario con el resto de los detalles de la NIC dinámica.
  6. Continúa con el proceso de creación de la instancia.

  7. Haz clic en Crear.

gcloud

Para crear interfaces de red en una instancia nueva, usa el comando gcloud compute instances create.

Incluye la marca --network-interface para cada interfaz, seguida de las claves de red adecuadas, como network, subnet, private-network-ip, address, external-ipv6-address y vlan.

Si incluyes la clave vlan, se creará una NIC dinámica. Si creas una NIC dinámica, también debes seguir los pasos para configurar el SO invitado para las NICs dinámicas después de crear la instancia.

Para ver ejemplos de cómo crear instancias con varias interfaces, consulta las configuraciones de ejemplo.

Este fragmento solo muestra la marca --network-interface, uno de los muchos parámetros que puede especificar al crear una instancia.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --network-interface \
        network=NETWORK_A,subnet=SUBNET_A, \
        stack-type=STACK_TYPE, \
        private-network-ip=INTERNAL_IPV4_ADDRESS, \
        address=EXTERNAL_IPV4_ADDRESS | no-address, \
        internal-ipv6-address=INTERNAL_IPV6_ADDRESS \
    ...
    --network-interface \
        network=NETWORK_B,subnet=SUBNET_B, \
        stack-type=STACK_TYPE, \
        external-ipv6-address=EXTERNAL_IPV6_ADDRESS, \
        external-ipv6-prefix-length=96, \
        ipv6-network-tier=PREMIUM, \
        vlan=VLAN_ID \
    ...

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia que se va a crear.
  • ZONE: la zona en la que se crea la instancia.
  • NETWORK_A, NETWORK_B: la red a la que se conecta la interfaz.
  • SUBNET_A, SUBNET_B: la subred a la que se adjunta la interfaz.
  • STACK_TYPE: el tipo de pila de la interfaz.

    El valor predeterminado es IPV4_ONLY. Especifica IPV4_IPV6 para configurar una interfaz de pila dual o IPV6_ONLY para configurar una interfaz solo IPv6.

  • Valores de las interfaces con direcciones IPv4:

    • INTERNAL_IPV4_ADDRESS: la dirección IPv4 interna que quieres que tenga la interfaz en la subred de destino. Omítelo si solo quieres que se asigne una dirección válida.
    • EXTERNAL_IPV4_ADDRESS: la dirección IPv4 externa de la interfaz.

      Debes haber reservado previamente una dirección IPv4 externa. Si no quieres que la interfaz tenga una dirección IP externa, especifica "no-address" en lugar de address=EXTERNAL_IPV4_ADDRESS. Si quieres que la interfaz reciba una dirección IP externa efímera, especifica address=''.

  • Valores de las interfaces con direcciones IPv6:

    • INTERNAL_IPV6_ADDRESS: el intervalo de direcciones IPv6 internas que quieres que tenga la interfaz en la subred de destino. Si no se especifica, se asigna automáticamente un intervalo de direcciones IPv6 internas de la subred.Cloud de Confiance
    • EXTERNAL_IPV6_ADDRESS: el intervalo de direcciones IPv6 externas que quieres que tenga la interfaz en la subred de destino. Si no se especifica,Cloud de Confiance asigna automáticamente un intervalo de direcciones IPv6 externas de la subred.
  • VLAN_ID: un ID de VLAN. Si especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal en el comando.

API

Usa el método instances.insert para crear una instancia con varias interfaces de red.

Si se incluye el campo vlan, se crea una NIC dinámica. Si creas una NIC dinámica, también debes seguir los pasos para configurar el SO invitado para las NICs dinámicas después de crear la instancia.

Consulta los siguientes ejemplos:

  • Para crear una instancia que solo tenga direcciones IPv4 internas, sigue estos pasos:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "networkIP": "IPV4_ADDRESS_A",
        "subnetwork": "regions/REGION/subnetworks/SUBNET_A"
      },
      {
        "networkIP": "IPV4_ADDRESS_B",
        "subnetwork": "regions/REGION/subnetworks/SUBNET_B",
        "vlan": "VLAN_ID"
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene la instancia.
    • ZONE: la zona que contiene la instancia.
    • IPV4_ADDRESS_A y IPV4_ADDRESS_B: las direcciones IPv4 internas que quieres asignar a cada interfaz de red.
    • REGION: la región que contiene la instancia.
    • SUBNET_A, SUBNET_B: las subredes en las que se encuentra cada interfaz de red.
    • VLAN_ID: un ID de VLAN. Si especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal en la solicitud.
  • Para crear una instancia con direcciones IPv4 e IPv6 internas, sigue estos pasos:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET_A",
        "ipv6Address": "IPV6_ADDRESS_A",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV4_IPV6,
        "ipv6AccessType": INTERNAL
      },
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET_B",
        "ipv6Address": "IPV6_ADDRESS_B",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV4_IPV6,
        "ipv6AccessType": INTERNAL,
        "vlan": "VLAN_ID"
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene la instancia.
    • ZONE: la zona que contiene la instancia.
    • REGION: la región que contiene la instancia.
    • SUBNET_A, SUBNET_B: las subredes en las que se encuentra cada interfaz de red.
    • IPV6_ADDRESS_A, IPV6_ADDRESS_B: el intervalo de direcciones IPv6 internas que quieres que tenga la interfaz en la subred de destino. Si no se especifica, se asigna automáticamente un intervalo de direcciones IPv6 internas de la subred.Cloud de Confiance
    • VLAN_ID: un ID de VLAN. Si especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal.
  • Para crear una instancia que solo tenga direcciones IPv6 internas, sigue estos pasos:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET_A",
        "ipv6Address": "IPV6_ADDRESS_A",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV6_ONLY,
        "ipv6AccessType": INTERNAL
      },
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET_B",
        "ipv6Address": "IPV6_ADDRESS_B",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV6_ONLY,
        "ipv6AccessType": INTERNAL,
        "vlan": "VLAN_ID"
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene la instancia.
    • ZONE: la zona que contiene la instancia.
    • REGION: la región que contiene la instancia.
    • SUBNET_A, SUBNET_B: las subredes en las que se encuentra cada interfaz de red.
    • IPV6_ADDRESS_A, IPV6_ADDRESS_B: el intervalo de direcciones IPv6 internas que quieres que tenga la interfaz en la subred de destino. Si no se especifica, se asigna automáticamente un intervalo de direcciones IPv6 internas de la subred.Cloud de Confiance
    • VLAN_ID: un ID de VLAN. Si especifica un ID de VLAN, la interfaz de red se configurará como NIC dinámica. Debes colocar una NIC dinámica después de su NIC virtual principal.

Configuraciones de ejemplo

En las siguientes secciones se muestra cómo crear instancias con varias interfaces.

Configurar varias vNICs y NICs dinámicas

El siguiente comando de ejemplo crea una instancia con las siguientes interfaces de red:

  • Una vNIC llamada nic0 que es la principal de las siguientes:
    • Una interfaz de red dinámica llamada nic0.2
  • Una vNIC llamada nic1 que es la principal de las siguientes:
    • Una interfaz de red dinámica llamada nic1.4
    • Una interfaz de red dinámica llamada nic1.5
gcloud compute instances create vm1 \
    --zone zone-a \
    --network-interface=network=network-a,subnet=subnet-a \
    --network-interface=network=network-b,subnet=subnet-b,vlan=2 \
    --network-interface=network=network-c,subnet=subnet-c \
    --network-interface=network=network-d,subnet=subnet-d,vlan=4 \
    --network-interface=network=network-e,subnet=subnet-e,vlan=5

Después de crear una instancia con NICs dinámicas, también debes configurar el SO invitado para las NICs dinámicas.

Configurar varias interfaces de red solo con direcciones IPv4

El siguiente comando de ejemplo crea una instancia con tres interfaces de red.

gcloud compute instances create vm1 --machine-type=n1-standard-4 \
    --network-interface '' \
    --network-interface network=net1,subnet=subnet-a,private-network-ip=10.10.10.2,address=EXTERNAL_IPV4_ADDRESS \
    --network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address

Las interfaces se crean de la siguiente manera:

  • nic0 se crea con la configuración predeterminada. La interfaz está conectada a una subred de la red VPC predeterminada, con una dirección IP interna asignada automáticamente y una dirección IP externa efímera.

  • nic1 está conectada a la subred subnet-a de la red net1, con una dirección IPv4 interna 10.10.10.2 y una dirección IPv4 externa estática EXTERNAL_IPV4_ADDRESS.

  • nic2 está conectada a la subred subnet-b de la red net2, con una dirección IPv4 interna 10.10.20.2 y sin dirección IP externa.

Para ver una descripción completa del comando gcloud compute instances create y de la marca --network-interface, consulta la documentación del comando.

Puede usar la dirección IP de la interfaz de red que ha añadido para configurar el reenvío de DNS. Para obtener más información sobre cómo configurar zonas de reenvío de Cloud DNS, consulte el artículo Zonas de reenvío.

Configurar varias interfaces de red con direcciones IPv4 e IPv6

El siguiente comando de ejemplo crea una instancia de pila dual con dos interfaces de red.

gcloud compute instances create vm1 \
    --network-interface network=dual-int,subnet=int-subnet,stack-type=IPV4_IPV6 \
    --network-interface network=dual-ext,subnet=ext-subnet,stack-type=IPV4_IPV6,ipv6-network-tier=PREMIUM \
    --machine-type=n1-standard-4 --zone=ZONE_A

Las interfaces se crean de la siguiente manera:

  • nic0 está conectada a la subred int-subnet de la red dual-int, con una dirección IPv4 interna efímera y un intervalo de direcciones IPv6 internas efímeras.

  • nic1 está conectada a la subred ext-subnet de la red dual-ext, con una dirección IPv4 interna efímera y un intervalo de direcciones IPv6 externas efímeras.

Configurar varias interfaces de red solo con direcciones IPv6

El siguiente comando de ejemplo crea una instancia solo con IPv6 con tres interfaces de red.

gcloud compute instances create vm1 \
    --network-interface network=ipv6-only-int-a,subnet=int-subnet-a,stack-type=IPV6_ONLY \
    --network-interface network=ipv6-only-int-b,subnet=int-subnet-b,stack-type=IPV6_ONLY,internal-ipv6-address=fd20:db8:0:0:1:0:: \
    --network-interface network=ipv6-only-ext,subnet=ext-subnet,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM,external-ipv6-address=EXTERNAL_IPV6_ADDRESS \
    --machine-type=n1-standard-4 --zone=us-west2-a

Las interfaces se crean de la siguiente manera:

  • nic0 está conectada a la subred int-subnet-a de la red ipv6-only-int-a, con una dirección IPv6 interna efímera asignada automáticamente.

  • nic1 está conectada a la subred int-subnet-b de la red ipv6-only-int-b, con un intervalo de direcciones IPv6 internas efímeras personalizadas fd20:db8:0:0:1:0::/96.

  • nic2 está conectada a la subred ext-subnet de la red ipv6-only-ext, con un intervalo de direcciones IPv6 externas estático, EXTERNAL_IPV6_ADDRESS.

Configurar varias interfaces de red para grupos de instancias

Puedes usar instancias con varias interfaces de red en grupos de instancias no gestionados y gestionados.

En el caso de los grupos de instancias sin gestionar, cree cada instancia individualmente y asegúrese de que la nic0 interfaz de red de cada instancia esté conectada a la misma subred. A continuación, añade las instancias al grupo de instancias sin gestionar.

Para configurar varias interfaces de red para grupos de instancias gestionados, debes especificar la configuración de red de cada interfaz en la plantilla de instancia. Para ello, define la marca --network-interface una vez por cada interfaz. En el siguiente ejemplo se crea una plantilla de instancia con tres interfaces de red:

gcloud compute instance-templates create template-1 \
    --network-interface subnet=net0-subnet-a \
    --network-interface subnet=net1-subnet-b,no-address \
    --network-interface subnet=net2-subnet-c,no-address \
    --region REGION_A

Como los nombres de las subredes de cada región de un proyecto deben ser únicos, al especificar las subredes por su nombre, se asocia implícitamente cada interfaz a una red de VPC. Cada interfaz debe usar una subred que esté en una red de VPC única:

  • nic0 usa la subred net0-subnet-a
  • nic1 usa la subred net1-subnet-b
  • nic2 usa la subred net2-subnet-c

La opción no-address de la marca --network-interface indica que la interfaz se ha configurado sin una dirección IPv4 externa. La dirección IP interna procede de la subred que utiliza la interfaz. Para obtener información completa sobre las marcas y la sintaxis, consulta la marca --network-interface del comando instance-templates create.

Siguientes pasos