Configura IPv6 para instancias y plantillas de instancias


Puedes configurar direcciones IPv6 en una instancia de Compute Engine si la subred a la que está conectada la instancia tiene un rango IPv6 configurado.

Para obtener más información sobre IPv6, consulta Rangos de subredes IPv6.

Especificaciones

  • Las instancias de procesamiento que tienen configuraciones IPv4 e IPv6 son de pila doble. La dirección IPv6 se suma a cualquier dirección IPv4 que esté configurada en la interfaz de red.

  • A las interfaces de instancias de pila doble o solo IPv6 se les asigna un único rango /96 de direcciones IPv6. La primera dirección IPv6 en el rango (/128) se configura en la interfaz.

  • Cualquier interfaz de la instancia puede tener direcciones IPv6 configuradas. Para obtener más información sobre cómo configurar varias interfaces de red, consulta la Descripción general de las interfaces de red múltiples.

  • El tipo de pila de la interfaz de red de una VM determina el tipo de subredes a las que se puede conectar:

    • Las interfaces solo IPv4 se pueden conectar a subredes de pila doble y solo IPv4.
    • Las interfaces de pila doble pueden conectarse a subredes de pila doble.
    • Las interfaces de solo IPv6 se pueden conectar a subredes de pila doble y solo IPv6 (versión preliminar).
  • Para configurar las direcciones IPv6 en una interfaz de red, la interfaz debe estar conectada a una subred de pila doble o solo IPv6 (versión preliminar).

  • La configuración del tipo de acceso IPv6 de una subred determina si la subred tiene un rango IPv6 interno o externo. Las instancias conectadas heredan el tipo de acceso IPv6 de la subred.

  • Las instancias solo de IPv6 (versión preliminar) solo son compatibles con los SO Ubuntu y Debian.

Accede a instancias con direcciones IPv6

La regla de firewall de entrada denegada IPv6 implícita protege las instancias al bloquear las conexiones entrantes a sus direcciones IPv6. Para acceder a las instancias con sus direcciones IPv6, debes tener una regla de prioridad más alta que permita el acceso entrante.

Para obtener más información sobre las reglas de firewall, consulta la Descripción general del firewall de VPC y la Descripción general de las políticas de firewall jerárquicas.

Para ver ejemplos de reglas de firewall de VPC, consulta Configura reglas de firewall para casos de uso comunes.

Asignación de dirección IPv6

En la siguiente lista, se describe cómo se asignan las direcciones IPv6 a las instancias de procesamiento.

  • A las instancias de Compute se les asigna una dirección IPv6 mediante DHCPv6. El servidor de metadatos responde a las solicitudes de DHCPv6 de las instancias y envía la primera dirección IPv6 (/128) del rango /96 asignado en respuesta.

  • El servidor de metadatos usa un anuncio de ruta para publicar la ruta predeterminada en la instancia. Luego, la instancia puede usar esta ruta predeterminada para todo el tráfico IPv6.

    Puedes encontrar la ruta predeterminada de la interfaz de red de una instancia si te conectas a ella y consultas la entrada de gateway-ipv6 en el servidor de metadatos.

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

    Para obtener más información sobre el servidor de metadatos, consulta Cómo consultar metadatos de instancias.

  • Las instancias de Compute se configuran con direcciones IP locales de vínculo, que se asignan desde el rango fe80::/10, pero se usan solo para el descubrimiento de vecinos.

  • La configuración de MTU en la interfaz de red de la instancia se aplica a los paquetes IPv4 e IPv6, pero no todos los valores de MTU son compatibles en todas las circunstancias. Consulta la descripción general de la unidad de transmisión máxima para obtener más información.

Crea una instancia que use direcciones IPv6

Puedes crear una instancia que use una combinación de direcciones IPv4 e IPv6 (pila doble) o una instancia que use solo direcciones IPv6.

Crea una instancia de pila doble

Para crear una instancia de pila doble, conecta la instancia de procesamiento a una subred de pila doble.

Si usas una VPC compartida y deseas crear una instancia de pila doble que esté conectada a una subred compartida, consulta Cómo crear una instancia en la documentación de la VPC compartida.

Console

  1. Ir a la página Crear una instancia

    Ir a Crear una instancia

  2. Ingresa un Nombre para la instancia.

  3. Selecciona una Región que contenga una subred con un rango IPv6 configurado.

  4. Selecciona una zona.

  5. Expanda la sección Opciones avanzadas.

  6. Expande Herramientas de redes y haz lo siguiente:

    1. En la sección Interfaces de red, haz clic en la interfaz de red para expandirla y editarla.

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

      Selecciona una subred que tenga configurado un rango IPv6. El tipo de acceso IPv6 de la subred determina si la instancia recibe una dirección IPv6 interna o externa.

    3. En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).

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

      • Efímera para asignar una nueva dirección interna IPv4 efímera
      • * Una dirección IPv4 reservada de la lista
      • * Estática para asignar una nueva dirección IPv4 estática
    5. Para las direcciones IPv6, según el tipo de acceso de la subred que usa la interfaz de red, haz lo siguiente:

    6. En Dirección IPv6 interna principal, selecciona una de las siguientes opciones:

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

      • Asignación automática para asignar una nueva dirección IPv6 externa efímera
      • Una dirección IPv6 externa estática reservada de la lista
      • Reserva dirección IPv6 externa estática para reservar y asignar una dirección IPv6 externa estática nueva
    8. 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 de la lista
      • Crea una dirección IP nueva para asignar una dirección IPv4 estática nueva.
    9. Para terminar de modificar la interfaz de red, haz clic en Listo.

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

  8. Haz clic en Crear.

gcloud

Crea una instancia mediante el comando gcloud compute instances create.

gcloud compute instances create INSTANCE_NAME \
    --subnet=SUBNET_NAME \
    --zone=ZONE \
    --stack-type=IPV4_IPV6

Reemplaza lo siguiente:

  • INSTANCE_NAME: es el nombre de la instancia.
  • SUBNET_NAME: es la subred a la que se conectará la instancia. La subred debe tener un rango de subred IPv6.
  • ZONE: es la zona en la que se implementará la instancia de VM.

REST

  1. Selecciona una imagen. Anota el nombre de las imágenes o familias de imágenes y el nombre del proyecto que la contiene.
  2. Usa el método instances.insert para crear una instancia a partir de una familia de imágenes o de una versión específica de una imagen de SO:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que se creará la instancia.
    • ZONE: Es la zona en la que se creará la instancia.

    Ejemplo de cuerpo de la solicitud:

    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "INSTANCE_NAME",
     "networkInterfaces": [
       {
         "subnetwork": "regions/REGION/subnetworks/SUBNET",
         "stackType": "IPV4_IPV6"
       }
     ],
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "IMAGE_URI"
         },
         "boot": true
       }
     ],
    }
    

    Reemplaza lo siguiente:

    • MACHINE_TYPE_ZONE: Es la zona que contiene el tipo de máquina que se usará para la instancia nueva.
    • MACHINE_TYPE: Es el tipo de máquina, predefinido o personalizado, de la instancia nueva. Por ejemplo, n1-standard-1.
    • INSTANCE_NAME: es el nombre de la instancia nueva.
    • SUBNET: una subred que tiene IPv6 configurado.
    • REGION: la región de la subred.
    • IMAGE_URI: el URI de la imagen que deseas usar.

      Por ejemplo, si especificas "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crea una instancia de procesamiento a partir de la versión más reciente de la imagen de SO en la familia de imágenes Debian 10.

Crea una instancia de solo IPv6

Para crear una instancia solo IPv6, sigue los pasos de esta sección.

En el caso de una instancia de Compute Engine con una sola interfaz de red, esta puede tener una dirección IPv6 interna o externa, según el tipo de acceso de IPv6 de la subred a la que está conectada su interfaz. Debes crear una red de VPC en modo personalizado con una subred que tenga un rango de direcciones IPv6.

Antes de crear una instancia de VM con varias NIC que use direcciones IPv6 internas y externas, debes crear lo siguiente:

  • Una red de VPC de modo personalizado con ULA IPv6 habilitada, una subred con un rango de direcciones IPv6 y el tipo de acceso establecido en internal
  • Una segunda red de VPC en modo personalizado, una segunda subred con un rango de direcciones IPv6 y el tipo de acceso configurado en external

Cuando creas la instancia, configuras dos interfaces de red, una que se conecta a la subred con el rango de direcciones IPv6 interno y otra que se conecta a la subred con el rango de direcciones externo.

Si usas una VPC compartida y deseas crear una instancia solo IPv6 que esté conectada a una subred compartida, consulta Crea una instancia en la documentación de la VPC compartida.

Console

  1. Ir a la página Crear una instancia

    Ir a Crear una instancia

  2. Ingresa un Nombre para la instancia.

  3. Selecciona una Región que contenga las subredes con los rangos IPv6 configurados.

  4. Opcional: Cambia la Zona para esta instancia. Si seleccionas Cualquiera, Google elige de forma automática una zona por ti según el tipo de máquina y la disponibilidad.

  5. Expande la sección Opciones avanzadas.

  6. Expande Herramientas de redes y haz lo siguiente:

    1. En la sección Interfaces de red, haz clic en el nombre de la interfaz de red para editar su configuración.

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

    Selecciona una subred que tenga configurado un rango IPv6. El tipo de acceso IPv6 de la subred determina si la instancia recibe una dirección IPv6 interna o externa.

    1. En Tipo de pila de IP, selecciona IPv6 (pila única).

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

      • Asignada automáticamente (/96) para asignar una nueva dirección IPv6 efímera
      • Una dirección IPv6 reservada de la lista
      • Reserva dirección IPv6 interna estática para asignar una nueva dirección IPv6 estática
    3. Opcional: Para agregar una dirección IPv6 externa, selecciona Agregar una interfaz de red.

      1. En Red y Subred, selecciona la red y la subred que configuraste para las direcciones IPv6 externas.
      2. En Dirección IPv6 externa, selecciona una de las siguientes opciones:

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

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

  8. Haz clic en Crear.

gcloud

Crea una instancia con el comando gcloud compute instances create. Para asignar direcciones IPv6 internas y externas, debes crear la instancia con al menos dos interfaces de red.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=boot=yes,image='projects/IMAGE_PROJECT/global/images/IMAGE',size=SIZE \
    --network-interface=network=NETWORK_INTERNAL_NAME,subnet=SUBNET_INTERNAL_NAME,stack-type=IPV6_ONLY \
    --network-interface=network=NETWORK_EXTERNAL_NAME,subnet=SUBNET_EXTERNAL_NAME,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es un nombre para la instancia.
  • ZONE: Es la zona en la que se crea la instancia, como europe-west1-b. La región de la instancia se infiere de la zona.
  • MACHINE_TYPE: Es opcional. Es el tipo de máquina que se usará para la instancia.
  • IMAGE_PROJECT: Es el proyecto de imagen que contiene la imagen (opcional).
  • IMAGE: Opcional: Especifica una de las siguientes opciones:
    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v202410095.
    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una instancia con la versión más reciente de la imagen de SO en la familia de imágenes Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • SIZE: Opcional: Es el tamaño del disco nuevo. El valor debe ser un número entero. La unidad de medida predeterminada es GiB.
  • NETWORK_EXTERNAL_NAME o NETWORK_INTERNAL_NAME: Es el nombre de la red que se configuró para direcciones IP internas o externas.
  • SUBNET_EXTERNAL_NAME o SUBNET_INTERNAL_NAME: Es el nombre de la subred que se configuró para que las direcciones IP internas o externas se usen con la instancia.

REST

  1. Selecciona una imagen. Anota el nombre de las imágenes o familias de imágenes y el nombre del proyecto que la contiene.
  2. Usa el método instances.insert para crear una instancia a partir de una familia de imágenes o de una versión específica de una imagen de SO:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que se creará la instancia.
    • ZONE: Es la zona en la que se creará la instancia.

    Ejemplo de cuerpo de la solicitud:

    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "INSTANCE_NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot": true
       }
     ],
     "networkInterfaces": [
       {
         "subnetwork": "regions/REGION/subnetworks/SUBNET_INTERNAL",
         "stackType": "IPV6_ONLY"
       },
       {
         "subnetwork": "regions/REGION/subnetworks/SUBNET_EXTERNAL",
         "stackType": "IPV6_ONLY"
       }
     ]
    }
    

    Reemplaza lo siguiente:

    • MACHINE_TYPE_ZONE: Es la zona que contiene el tipo de máquina que se usará para la instancia nueva.
    • MACHINE_TYPE: Es el tipo de máquina, predefinido o personalizado, de la instancia nueva. Por ejemplo, c3-standard-4.
    • INSTANCE_NAME: es el nombre de la instancia nueva.
    • IMAGE_PROJECT: Es el proyecto de imagen que contiene la imagen (opcional).
    • IMAGE: Opcional: Especifica una de las siguientes opciones:
      • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20241009.
      • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto crea la instancia a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, Compute Engine crea una instancia con la versión más reciente de la imagen de SO en la familia de imágenes Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
    • REGION: la región de la subred.
    • SUBNET_INTERNAL: Una subred que tiene direcciones IPv6 internas configuradas.
    • SUBNET_EXTERNAL: Es una subred que tiene direcciones IPv6 externas configuradas.

Cambia el tipo de pila de una instancia

Puedes cambiar el tipo de pila de una instancia de Compute Engine existente. El tipo de pila se puede establecer en cualquiera de las siguientes opciones:

  • Solo IPv4 (pila única)
  • IPv4 e IPv6 (pila doble)

Si cambias el tipo de pila a pila doble, la instancia debe estar conectada a una subred de pila doble. Si necesitas cambiar a qué subred está conectada la instancia, detén la instancia y cambia la subred. Después de actualizar la subred, puedes cambiar el tipo de pila de IP de la instancia.

No puedes cambiar el tipo de pila de una instancia solo IPv6 (Versión preliminar).

Console

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el nombre de la instancia a la que quieres asignar una dirección IPv6.

  3. En la página de detalles de la instancia, completa los pasos siguientes:

    1. Haz clic en Edit.
    2. En Interfaces de red, expande la interfaz que deseas editar.
    3. Selecciona el Tipo de pila de IP: IPv4 solo (pila única) o IPv4 e IPv6 (pila doble).
    4. Haz clic en Listo.
  4. Haz clic en Guardar.

gcloud

Actualiza el tipo de pila de una instancia con el comando gcloud compute instances network-interfaces update.

gcloud compute instances network-interfaces update INSTANCE_NAME \
    --stack-type=STACK_TYPE \
    --zone=ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.
  • STACK_TYPE: Es el tipo de pila de la instancia: IPV4_ONLY o IPV4_IPV6.
  • ZONE: la zona en la que se implementa la instancia.

REST

Para actualizar el tipo de pila de una instancia, realiza una solicitud PATCH al método instances.updateNetworkInterface.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto que contiene la instancia.
  • ZONE: la zona en la que se implementa la instancia.
  • INSTANCE_NAME: El nombre de la instancia.

Ejemplo de cuerpo de la solicitud:

{
    "stackType": "STACK_TYPE",
}

Reemplaza STACK_TYPE por el tipo de pila para la instancia: IPV4_ONLY o IPV4_IPV6.

Crea una plantilla de instancias con direcciones IPv6

Puedes crear una plantilla de instancias regional o global que pueda usarse para crear instancias de pila doble o solo IPv6 (versión preliminar). Para obtener más información, consulta Crea plantillas de instancias.

Debes usar Google Cloud CLI o REST para crear una plantilla de instancias que cree instancias que usen direcciones IPv6.

gcloud

Para crear una plantilla de instancias regional o global, usa el comando gcloud compute instance-templates create. Si deseas crear una plantilla de instancias regional, debes usar la marca --instance-template-region para especificar la región de la plantilla de instancias.

En el siguiente ejemplo, se crea una plantilla de instancias global:

gcloud compute instance-templates create TEMPLATE_NAME \
    --subnet=SUBNET \
    --stack-type=STACK_TYPE

Reemplaza lo siguiente:

  • TEMPLATE_NAME: es el nombre de la plantilla.
  • SUBNET: una subred que tiene un rango de subred IPv6.
  • STACK_TYPE: Es el tipo de pila, ya sea IPV4_IPV6 para una instancia de pila doble o IPV6_ONLY para una instancia con dirección IPv6 externa.

REST

Para crear una plantilla de instancias regional, usa el método regionInstanceTemplates.insert, o, para crear una plantilla de instancias global, usa el método instanceTemplates.insert.

En el siguiente ejemplo, se crea una plantilla de instancias global:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

Reemplaza PROJECT_ID por el ID del proyecto.

Ejemplo de cuerpo de la solicitud:

{
  "name": "INSTANCE_TEMPLATE_NAME"
  "properties": {
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET",
        "stackType": "STACK_TYPE",
      },
    ],
    "disks":
    [
      {
        "type": "PERSISTENT",
        "boot": true,
        "mode": "READ_WRITE",
        "initializeParams":
        {
          "sourceImage": "IMAGE_URI"
        }
      }
    ]
  }
}

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.
  • MACHINE_TYPE: Es el tipo de máquina de las instancias. Por ejemplo, c3-standard-4
  • SUBNET: una subred que tiene un rango de subred IPv6.
  • REGION: la región de la subred.
  • IMAGE_URI: el URI de la imagen que deseas usar.

    Por ejemplo, si especificas "sourceImage": "projects/debian-cloud/global/images/family/debian-12", Compute Engine crea una instancia a partir de la versión más reciente de la imagen del sistema operativo en la familia de imágenes Debian 12.

Para obtener más información sobre los parámetros de solicitud, consulta el método instanceTemplates.insert.