Crea VMs con interfaces de red múltiples

De forma predeterminada, cada instancia de máquina virtual (VM) en una red de nube privada virtual (VPC) tiene una única interfaz de red. Sin embargo, puedes configurar una instancia con interfaces de red múltiples. Cuando se usan interfaces de red múltiples de una instancia, cada interfaz se debe conectar a una subred que esté en una red de VPC diferente. No puedes adjuntar varias interfaces de red a la misma subred o a subredes que se encuentren en la misma red de VPC.

Puedes configurar interfaces de VM solo con direcciones IPv4 (pila única) o direcciones IPv4 e IPv6 (pila doble).

Si no necesitas interfaces de red múltiples, sigue el procedimiento Crea e inicia una instancia para crear instancias con la configuración de red predeterminada.

Para obtener más información sobre cómo funcionan las interfaces de red múltiples, consulta Interfaces de red múltiples.

Especificaciones

  • La interfaz de red solo puede configurarse en el momento en que se crea la instancia.
  • Si creas una instancia con interfaces de red múltiples, cada interfaz debe conectarse a una red de VPC diferente. Las redes pueden ser redes de VPC independientes o VPC compartidas.
  • Una interfaz de red debe conectarse a una subred que tenga un rango de direcciones IP que no se superponga con el rango de direcciones IP de otra interfaz en la misma instancia.
  • Si deseas crear una VM que esté conectada a subredes en varias redes de VPC, todas las redes y subredes deben existir antes de crear la instancia. Para obtener más información sobre la creación de redes y subredes, consulta Crea y administra redes de VPC.
  • No puedes borrar una interfaz de red sin borrar la instancia a la que está conectada.
  • Cada instancia debe tener como mínimo una interfaz de red y un máximo de ocho, según el tipo de máquina de la instancia.

    • nic0 es obligatorio y se debe configurar en la creación de la instancia.
    • nic1 a nic7 son opcionales, pero también deben configurarse en la creación de la instancia.

    Para obtener más información, consulta Cantidad máxima de interfaces.

  • De forma opcional, cada interfaz puede tener una dirección IPv4 externa.

  • Si conectas una VM a una subred que tiene un rango de subred IPv6 interno o externo, puedes configurar una dirección IPv6 interna o externa de manera opcional.

  • El servidor DHCP de Google Cloud envía una ruta predeterminada (RFC 3442, “ruta estática sin clase”) solo a la interfaz de red predeterminada, nic0. Si necesitas una ruta predeterminada en otra interfaz de red, debes configurar la política de enrutamiento en la instancia.

  • Todas las interfaces de red de VM deben conectarse a subredes en redes que estén en el mismo proyecto que la VM o a una red de VPC compartida que se comparte con el proyecto.

Limitaciones

  • No puedes agregar o quitar interfaces de red de una VM existente.

  • El reenvío de IP está habilitado a nivel de la VM y no se puede aplicar a interfaces individuales.

Instancias, IAM y permisos con interfaces de red múltiples

Para crear una instancia con interfaces de red múltiples, debes contar con una de las siguientes funciones:

Crea y borra instancias y plantillas de instancias con varias interfaces en el entorno de un proyecto en el que no se use la VPC compartida: Un usuario con el rol de Propietario, Editor o Administrador de instancias de Compute (v1) a nivel de proyecto puede crear una instancia con varias interfaces asociadas con redes de VPC y subredes que forman parte de ese mismo proyecto.

Crea y borra instancias y plantillas de instancias con varias interfaces en los entornos de VPC compartida: Un usuario con el rol de Propietario, Editor o Administrador de instancias de Compute (v1) a nivel del proyecto puede crear una instancia con varias interfaces. Si alguna de las interfaces está adjunta a una subred en un proyecto host de VPC compartida, también debes tener el rol de usuario de la red de Compute (roles/compute.networkUser) a nivel de proyecto host de VPC compartida o a nivel de subred de VPC compartida.

Para obtener más información sobre los permisos, consulta la documentación de IAM de Compute Engine.

Usa interfaces de red múltiples con diferentes tipos de redes de VPC

  • No se admiten interfaces de red múltiples con redes heredadas.
  • Cuando configures interfaces de red múltiples, debes adjuntar cada interfaz a una red de VPC en modo automático o en modo personalizado.

Asignación de una dirección IP a la interfaz de red

  • Debes configurar cada interfaz de red con una dirección IP interna principal que se asigna desde el rango de direcciones IP principal de una subred.
    • La dirección interna principal asignada a cada una de las interfaces en una sola instancia debe ser diferente.
  • Puedes elegir configurar cada una de las interfaces virtuales (NIC) con una dirección IP externa única. Las direcciones externas pueden ser efímeras o reservadas.

Cantidad máxima de interfaces de red

La cantidad de interfaces de red virtuales escala con el número de CPU virtuales con un mínimo de 2 y un máximo de 8.

Utiliza la siguiente tabla para determinar cuántas interfaces de red pueden adjuntarse a una instancia:

Número de CPU virtuales Cantidad de vNIC
2 o menos 2
4 hasta 4
6 hasta 6
8 o más hasta 8

Antes de comenzar

Crea instancias de VM con interfaces de red múltiples

Para obtener instrucciones generales sobre cómo crear instancias, consulta Crea e inicia una instancia de VM.

Puedes agregar varias interfaces de red cuando crees una instancia de la siguiente forma:

  • En la consola de Google Cloud, agrega interfaces de red en la página Crear una instancia, en la sección Herramientas de redes > Interfaces de redes.
  • En la CLI de gcloud, usa el comando instances create. Incluye la marca --network-interface para cada interfaz, seguida de las claves de red correspondientes, como ([network | subnet], private-network-ip, address, external-ipv6-address).

La primera interfaz siempre se crea como nic0 y siempre es la interfaz predeterminada. Esto es importante para otros aspectos de las herramientas de redes de Google Cloud. Por ejemplo, los balanceadores de cargas de Google Cloud (excepto los balanceadores de cargas de red de transferencia) solo distribuyen el tráfico a nic0.

Console

  1. En la consola de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

  2. En el campo Nombre, ingresa un nombre para el instancia.

  3. En el campo Región, selecciona una región.

  4. En el campo Zona, selecciona una zona.

  5. En la sección Opciones avanzadas, expande Herramientas de redes y, luego, haz lo siguiente:

    1. En la sección Interfaces de red, expande una interfaz de red para editarla.

    2. En Red y Subred, selecciona la red y la subred que deseas usar.

    Si deseas configurar direcciones IPv6 en la interfaz, selecciona una subred que tenga configurado un rango de direcciones IPv6. El tipo de acceso IPv6 de la subred determina si la VM recibe una dirección IPv6 interna o externa.

    1. Selecciona un Tipo de pila IP: IPv4 (pila única) o IPv4 e IPv6 (pila doble)

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

      • Efímera para asignar una dirección IPv4 efímera nueva
      • Una dirección IPv4 interna estática reservada de la lista
      • Reserva una dirección IPv4 interna estática para reservar y asignar una nueva dirección IPv4 interna estática
    3. En Dirección IPv6 interna principal, selecciona una de las siguientes opciones:

      • Asignada automáticamente para asignar de forma automática una dirección IPv6 interna estática nueva
      • Una dirección IPv6 interna estática reservada de la lista
      • Reserva una dirección IPv6 interna estática para reservar y asignar una nueva dirección IPv6 interna estática
    4. En Dirección IPv4 externa, selecciona una de las siguientes opciones:

      • Efímera para asignar una dirección IPv4 efímera nueva
      • Ninguna para no asignar una dirección IPv4 externa
      • Una dirección IPv4 reservada estática de la lista
      • Reserva una dirección IP externa estática para reservar y asignar una nueva dirección IPv4 externa estática
    5. En Dirección IPv6 externa, selecciona una de las siguientes opciones:

      • Asignación automática para asignar de forma automática una dirección IPv6 externa estática nueva
      • Una dirección IPv6 externa estática reservada de la lista
      • Reserva una dirección IPv6 externa estática para reservar y asignar una dirección IPv6 externa estática nueva
    6. Para terminar de modificar la interfaz de red, haz clic en Listo.

  6. Para agregar otra interfaz, haz clic en Agregar interfaz de red.

  7. Continúa con el proceso de creación de VM.

  8. Haz clic en Crear.

gcloud

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

Incluye la marca --network-interface para cada interfaz, seguida de las claves de red correspondientes, como network, subnet, private-network-ip, address y external-ipv6-address. Para ver ejemplos de cómo crear VMs con varias interfaces, consulta Ejemplos de configuración.

En este fragmento, solo se muestra la marca --network-interface, que es uno de los parámetros posibles que puedes especificar cuando creas una instancia.

Para ver qué tipos de máquinas admiten la cantidad de interfaces de red que necesitas, consulta la tabla Cantidad máxima de interfaces de red.

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

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de VM que se creará.
  • ZONE: Es la zona en la que se crea la instancia.
  • NETWORK: La red a la que se adjunta la interfaz.
  • SUBNET: La subred a la que se adjunta la interfaz.
  • STACK_TYPE: Es el tipo de pila para la interfaz.

    El valor predeterminado es IPV4_ONLY. Especifica IPV4_IPV6 para configurar una interfaz de pila doble.

  • EXTERNAL_IPV4_ADDRESS: Asigna la dirección IPv4 externa con nombre a la interfaz.

    Debes haber reservado con anterioridad una dirección IPv4 externa. Especifica “no-address” en lugar de address=EXTERNAL_IPV4_ADDRESS si no deseas que la interfaz tenga una dirección IP externa. Especifica address='' si deseas que la interfaz reciba una dirección IP externa efímera.

  • INTERNAL_IPV4_ADDRESS: la dirección IPv4 interna que quieres que tenga la interfaz en la subred de destino. Omite si deseas asignar cualquier dirección válida.

  • INTERNAL_IPV6_ADDRESS: la dirección IPv6 interna que quieres que tenga la interfaz en la subred de destino. Si omites esta marca, no se asigna una dirección IPv6 interna.

  • EXTERNAL_IPV6_ADDRESS: Asigna la dirección IPv4 externa con nombre a la interfaz.

    Debes haber reservado con anterioridad una dirección IPv6 externa. Especifica “no-address” en lugar de external-ipv6-address=EXTERNAL_IPV6_ADDRESS si no deseas que la interfaz tenga una dirección IP IPv6 externa. Especifica external-ipv6-address='' si deseas que la interfaz reciba una dirección IP IPv6 externa efímera.

API

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

  • Para crear una instancia de VM con direcciones IPv4 internas, haz lo siguiente:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "networkIP": "IPV4_ADDRESS",
        "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Reemplaza lo siguiente:

    • SUBNET: la subred en la que se encuentra la interfaz de red.
    • REGION: la región que contiene la instancia.
    • PROJECT_ID: el ID del proyecto que contiene la instancia.
    • ZONE: la zona que contiene la instancia.
    • IPV4_ADDRESS: la dirección IPv4 interna que deseas asignar a la interfaz de red.
  • Para crear una instancia de VM con direcciones IPv6 internas, haz lo siguiente:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
        "ipv6Address": "IPV6_ADDRESS",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV4_IPV6,
        "ipv6AccessType": INTERNAL
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Reemplaza lo siguiente:

    • SUBNET: la subred en la que se encuentra la interfaz de red.
    • REGION: la región que contiene la instancia.
    • PROJECT_ID: el ID del proyecto que contiene la instancia.
    • ZONE: la zona que contiene la instancia.
    • IPV6_ADDRESS: la dirección IPv6 interna que deseas asignar a la interfaz de red.

Terraform

Puedes usar un recurso de Terraform para crear una instancia de VM con varias interfaces de red.

Los argumentos de Terraform tienen valores de ejemplo que puedes cambiar.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace with your project ID in quotes
  zone         = "us-central1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = var.subnet_1 # Replace with self link to a subnetwork in quotes
    network_ip = "10.0.0.14"
  }
  network_interface {
    subnetwork = var.subnet_2 # Replace with self link to a subnetwork in quotes
    network_ip = "10.10.20.14"
  }
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Configuración de ejemplo

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

Configura varias interfaces con direcciones IPv4

Con el siguiente comando de muestra, se 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

A continuación, se detalla cómo se crean las interfaces:

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

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

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

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

Puedes usar la dirección IP de la interfaz de red que agregaste para configurar el reenvío de DNS. Para obtener más información sobre cómo configurar las zonas de reenvío de Cloud DNS, consulta Zonas de reenvío.

Configura interfaces de red múltiples con direcciones IPv4 e IPv6

Con el siguiente comando de muestra, se crea una instancia de pila doble 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=us-west2-a

A continuación, se detalla cómo se crean las interfaces:

  • nic0 se conecta a la subred int-subnet en la red dual-int, con una dirección IPv4 interna efímera y una dirección IPv6 interna efímera.

  • nic1 se conecta a la subred ext-subnet en la red dual-ext, con una dirección IPv4 interna efímera y una dirección IPv6 externa efímera.

Configura interfaces de red múltiples para grupos de instancias

Puedes usar instancias con interfaces de red múltiples en grupos de instancias no administrados y grupos de instancias administrados.

En los grupos de instancias no administrados, crea cada instancia de forma individual y asegúrate de que la interfaz de red nic0 para cada VM esté conectada a la misma instancia de subred. Luego, agrega las instancias de VM al grupo de instancias no administrado.

A fin de configurar varias interfaces de red para grupos de instancias administrados, debes especificar la configuración de red de cada interfaz en la plantilla de instancias mediante la configuración de la marca --network-interface una vez para cada interfaz. En el siguiente ejemplo, se crea una plantilla de instancias 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 us-central1

Debido a que los nombres de subred en cada región de un proyecto deben ser únicos, la especificación de las subredes por nombre asocia de forma implícita cada interfaz con una red de VPC. Cada interfaz debe usar una subred que se encuentre 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 en la marca --network-interface indica que la interfaz está configurada sin una dirección IP externa. La dirección IP interna proviene de la subred que usa la interfaz. Para obtener información completa sobre las marcas y la sintaxis, consulta la marca --network-interface del comando instance-templates create.

Configura la política de enrutamiento

Para las imágenes admitidas por Google, cuando necesitas una interfaz de red secundaria (que no sea nic0) a fin de comunicarte con cualquier dirección IP que no sea local al rango de subredes principal de esa subred asociada a la interfaz secundaria, debes configurar una política de enrutamiento y así garantizar que los paquetes de salida salgan a través de la interfaz correcta. En esos casos, debes utilizar una política de enrutamiento para configurar una tabla de enrutamiento separada por cada interfaz de red.

Los sistemas operativos de Windows no admiten el enrutamiento de políticas basado en el origen.

Encuentra la puerta de enlace predeterminada para la interfaz

Puedes encontrar la puerta de enlace predeterminada para la interfaz de una VM si consultas el servidor de metadatos.

  • Para encontrar la puerta de enlace predeterminada para la dirección IPv4 de una interfaz, realiza la siguiente solicitud desde la VM:

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google"
    

    Reemplaza INTERFACE_NUMBER por el número de interfaz. Por ejemplo, a fin de encontrar la puerta de enlace predeterminada para nic1, usa 1.

  • Para encontrar la puerta de enlace predeterminada para la dirección IPv6 de una interfaz, realiza la siguiente solicitud desde la VM:

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway-ipv6 -H "Metadata-Flavor: Google"
    

    Reemplaza INTERFACE_NUMBER por el número de interfaz. Por ejemplo, a fin de encontrar la puerta de enlace predeterminada para nic1, usa 1.

Configura el enrutamiento basado en políticas en las VM de Linux

Para evitar perder la conectividad a la VM mientras cambias la ruta predeterminada, usa la consola en serie.

  • Configura la política de enrutamiento para cada interfaz secundaria con ifconfig. No configures la interfaz principal (nic0), ya que tiene una ruta configurada.

    sudo ifconfig NIC IP_ADDRESS netmask NETMASK broadcast IP_ADDRESS mtu 1430
    echo "1 rt1" | sudo tee -a /etc/iproute2/rt_tables
    sudo ip route add GATEWAY src IP_ADDRESS dev NIC table rt1
    sudo ip route add default via GATEWAY dev NIC table rt1
    sudo ip rule add from IP_ADDRESS/PREFIX_LENGTH table rt1
    sudo ip rule add to IP_ADDRESS/PREFIX_LENGTH  table rt1
    

    Reemplaza lo siguiente:

    • NIC: Es la interfaz a la que deseas agregar una ruta. Por ejemplo, eth1
    • IP_ADDRESS: Es la dirección IP configurada en la interfaz.
    • NETMASK: Es la máscara de red de la interfaz, por ejemplo, 255.255.255.255.
    • GATEWAY: Es la dirección IP de la puerta de enlace predeterminada de la interfaz.
    • PREFIX_LENGTH: Es la longitud del prefijo para la dirección IP configurada.

Configura el enrutamiento basado en políticas en la versión 18.04 de Ubuntu o superior

Con el cambio de ifupdown a Netplan como la utilidad de configuración de red predeterminada para Ubuntu 18.04 LTS o posterior, el paquete ifconfig no está preinstalado. Además, los cambios que realices en los archivos de configuración de red de Netplan no se conservarán durante los reinicios de la VM de Compute Engine.

  1. Crea una secuencia de comandos de inicio que establezca una tabla de enrutamiento para cada interfaz de red en el inicio de la VM. Obtén más información sobre cómo crear secuencias de comandos de inicio.

    El uso de una secuencia de comandos de inicio no funcionará si activas un archivo compartido en tu VM, ya que solo se ejecuta después de activar las particiones. Esto causaría que el archivo compartido siempre se active en la interfaz predeterminada antes de que la secuencia de comandos de inicio cree la tabla de enrutamiento.

  2. Para activar un archivo compartido en una VM a través de una red secundaria, es decir, una interfaz distinta de nic0, debes configurar la política de enrutamiento de la VM de cliente para asegurarte de que el archivo compartido se active a través mediante la interfaz de red correcta. Para hacerlo, modifica los siguientes archivos:

    • En /etc/default/instance_configs.cfg, establezca la marca setup de NetworkInterfaces en false:

      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
          setup = false
      

    • En /etc/network/interfaces, agrega las siguientes líneas a la interfaz de interés:

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    Reemplaza lo siguiente:

    • filestore-reserved-address-range es el rango de direcciones reservado para que lo use la instancia de Compute Engine.
    • default-gateway-of-nic-to-filestore es la dirección IP de puerta de enlace predeterminada de la NIC conectada a la red de VPC que se comparte con la instancia de Compute Engine.

    Para obtener más información sobre cómo activar un archivo compartido en una instancia de VM, consulta Activa los archivos compartidos en Compute Engine.

Soluciona problemas

No puedo crear una VM con varias interfaces

Es posible que veas los siguientes mensajes de error:

  • Invalid value for field 'resource': ''. Too many network interfaces. The maximum number of network interfaces allowed for this machine type is.

    Si ves este error, significa que intentaste crear más interfaces que el máximo admitido por el tipo de máquina de tu instancia. Consulta la tabla de cantidad máxima de interfaces.

  • Networks must be distinct for NICs attached to a VM.

    Si ves este mensaje, significa que intentaste crear más de una interfaz en la misma red. Cada interfaz de red se debe adjuntar a una red de VPC diferente.

  • Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.

    Si ves este mensaje, significa que los rangos de CIDR asociados con las interfaces de tus VM se superponen. Estos rangos de CIDR incluyen todos los rangos principales de las subredes asociadas con las interfaces de VM, y los rangos secundarios utilizados en los rangos de IP de alias. Cada interfaz se adjunta a una subred, cada una en una red de VPC diferente, que no debe superponerse con las subredes de otras interfaces. Por ejemplo, si intentas crear la instancia en la región us-west1, puedes verificar los rangos de CIDR principales de la subred mediante el siguiente comando o la consola de Google Cloud.

    gcloud compute networks subnets list --regions us-west1
    NAME                REGION    NETWORK          RANGE
    default             us-west1  default          10.138.0.0/20
    overlapping-subnet  us-west1  test-network     10.138.8.0/24
    

    Para verificar los rangos de CIDR de la subred secundarios, usa el siguiente comando o la consola de Google Cloud.

    gcloud compute networks subnets describe overlapping-subnet --region us-west1
    
    ...
    ipCidrRange: 10.128.8.0/24
    ...
    secondaryIpRanges:
    - ipCidrRange: 10.138.8.0/24
      rangeName: conflicting-range
    
  • Multiple network interfaces are not supported on legacy networks.

    Si ves este mensaje, intentaste crear tu instancia en una red heredada. No se admiten instancias con interfaces múltiples con redes heredadas. Puedes verificar si una red es heredada mediante el siguiente comando o la consola de Google Cloud. El campo Modo indica el tipo de red.

    gcloud compute networks list
    NAME             MODE    IPV4_RANGE     GATEWAY_IPV4
    default          auto
    legacy-network   legacy  10.240.0.0/16  10.240.0.1
    test-network     custom
    

  • Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'

    Si obtienes este mensaje, significa que la cuenta con la que accediste no tiene los permisos de IAM necesarios para crear una instancia. Consulta Permisos de IAM si quieres obtener más información sobre las funciones que se necesitan para crear instancias. Puedes verificar si la política de IAM asociada a tu proyecto te otorga alguna de las siguientes funciones: OWNER, EDITOR o compute.instanceAdmin.v1. Para crear instancias en VPC compartida, también necesitarías la función compute.networkUser. En el siguiente ejemplo, la cuenta email2@gmail.com no tiene suficientes permisos de IAM para crear una instancia. Para ver instrucciones más detalladas, consulta la guía de IAM Otorga, cambia y revoca el acceso a recursos.

    gcloud projects get-iam-policy PROJECT_ID
    bindings:
    - members:
      - user:email1@gmail.com
        role: roles/owner
    - members:
      - serviceAccount:our-project-123@appspot.gserviceaccount.com
      - serviceAccount:123456789012-compute@developer.gserviceaccount.com
        role: roles/editor
    - members:
      - user:email2@gmail.com
        role: roles/viewer
    etag: BwUjMhXbSPU=
    version: 1
    

    Puedes pedirle al propietario o al editor del proyecto que te otorgue una función OWNER, EDITOR o compute.instanceAdmin.v1. También necesitarías la función compute.networkUser si asocias cualquier interfaz con una subred que pertenezca a la VPC compartida.

    gcloud projects set-iam_policy --member user:email2@gmail.com --role roles/editor
    

No puedo conectarme a la dirección IP interna de una interfaz secundaria

  • Verifica las reglas de firewall para ver si permiten la conectividad a la interfaz secundaria de la VM. Puedes verificarlo si buscas la red adjunta a la interfaz secundaria en las reglas de firewall. Para hacer esto, visita la consola de Google Cloud y haz clic en la red de VPC apropiada o usa el siguiente comando de gcloud.

    gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
    
  • Verifica si la conexión a la interfaz secundaria se produce desde una dirección IP o desde el exterior de la red de la interfaz secundaria. Solo puedes conectarte a la IP interna de una interfaz desde el interior de su red. Si necesitas conectarte a esa interfaz desde el exterior de la red, puedes asignarle una dirección IP externa a tu interfaz secundaria.

  • Verifica si la conexión a la IP interna de la interfaz secundaria proviene del exterior de la subred a la que se adjunta la interfaz secundaria: desde otra subred de la misma red o desde una red de intercambio de tráfico. En Interfaces de red múltiples por instancia, se explica la interacción entre las redes de intercambio de tráfico de VPC y las instancias de VM con varias interfaces. Para llegar a las interfaces secundarias desde fuera de la subred de la interfaz, es posible que debas configurar las rutas en la VM. Consulta el comportamiento de DHCP con varias interfaces de red para obtener más detalles sobre cómo los programas de DHCP establecen rutas predeterminadas en la VM.

  • Si intentas acceder a una dirección IPv6, consulta también No puedo conectarme a la dirección IPv6 de una interfaz secundaria.

No puedo conectarme a una interfaz secundaria con una dirección IP externa

El servidor DHCP programa una ruta predeterminada solo en la interfaz de red principal de la VM. Si deseas conectarte a la interfaz secundaria con una IP externa, hay dos opciones. Si solo necesitas conectarte fuera de la red en la interfaz de red secundaria, puedes configurar una ruta predeterminada en esa interfaz de red. Si no, puedes consultar Cómo configurar la política de enrutamiento para configurar una tabla de enrutamiento separada en tu VM, a través de la política de enrutamiento basada en el origen.

Si intentas acceder a una dirección IPv6, consulta también No puedo conectarme a la dirección IPv6 de una interfaz secundaria.

No puedo conectarme a la dirección IPv6 de una interfaz secundaria

Si intentas acceder a una dirección IPv6, verifica que la VM tenga instalada la versión 20220603.00 de google-guest-agent o una posterior. Para obtener más información sobre cómo administrar las versiones de google-guest-agent, consulta Entorno invitado.

Si tienes una versión anterior de google-guest-agent, las interfaces secundarias no reciben una ruta de subred IPv6. Te recomendamos que actualices el agente invitado para que las rutas estén configuradas de forma correcta.

Sin embargo, como solución alternativa, puedes crear una secuencia de comandos de inicio a fin de realizar el siguiente cambio de configuración para cada interfaz secundaria.

sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128

Reemplaza INTERFACE_NAME con el nombre de la interfaz, por ejemplo, eth1 o ens5.

Tengo problemas de conectividad cuando uso una máscara de red que no sea /32

De forma predeterminada, el servidor de metadatos de la instancia solo responde a solicitudes ARP de la puerta de enlace predeterminada.

Para configurar interfaces con una máscara de red distinta de /32, debes crear una imagen con la marca --guest-os-features MULTI_IP_SUBNET y usarla para crear tu instancia. Por ejemplo, si usas una imagen basada en debian-9, puedes crear una imagen con el siguiente comando:

gcloud compute images create debian-9-multi-ip-subnet \
     --source-disk debian-9-disk \
     --source-disk-zone us-west1-a \
     --guest-os-features MULTI_IP_SUBNET

Para ver las funciones de invitado configuradas en la imagen, ejecuta el comando gcloud compute images describe en la imagen del invitado.

gcloud compute images describe debian-9-multi-ip-subnet

Para obtener más información sobre cómo crear imágenes personalizadas, consulta Crea, borra y da de baja imágenes personalizadas.

No puedo resolver el nombre de host interno de una VM con varias interfaces de red

Cuando se ejecuta una consulta de DNS con un nombre de host interno, se resuelve en la interfaz de red principal (nic0) de la instancia.

Si nic0 está conectado a una red de VPC diferente a la red de VPC de la instancia que emite la consulta de DNS, la consulta de DNS falla. El DNS interno se resuelve solo dentro de una red de VPC determinada. Para obtener más información, consulta Resolución de DNS con interfaces de red múltiples.

Soluciona problemas con la consola en serie

A menudo, es una buena idea habilitar la consola en serie en una VM para depurar problemas relacionados con la configuración. Sigue los pasos en Soluciona problemas con la consola en serie para habilitarla y realizar una depuración interactiva.