Configura IPv6 para instancias y plantillas de instancias


Puedes configurar direcciones IPv6 en una instancia de máquina virtual (VM) si la subred a la que está conectada la VM tiene un rango IPv6 configurado.

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

Especificaciones

  • Las VM que tienen configuraciones IPv4 e IPv6 son pilas dobles. A las interfaces en VM de doble pila se les asigna un único rango /96 de direcciones IPv6. La primera dirección IPv6 en el rango (/128) se configura en la interfaz. La dirección IPv6 se suma a cualquier dirección IPv4 que esté configurada en la interfaz. No puedes configurar una VM para que solo tenga direcciones IPv6.

  • Cualquier interfaz en la VM 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.

  • Para configurar las direcciones IPv6 en una interfaz de VM, la interfaz debe estar conectada a una subred de pila doble.

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

Accede a las VM mediante 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 VM mediante 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.

Por ejemplo, las reglas de firewall de VPC, consulta Configura las reglas de firewall para casos de uso comunes.

Asignación de dirección IPv6

  • A las VM se les asigna una dirección IPv6 mediante DHCPv6. El servidor de metadatos responde a las solicitudes de DHCPv6 de la VM 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 a la VM. Luego, la VM puede usar esta ruta predeterminada para todo el tráfico IPv6.

    Puedes encontrar la ruta predeterminada de la interfaz de una VM si 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, visita Consulta metadatos de VM.

  • Las VM 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 VM 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 VM de doble pila

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

Si usas una VPC compartida y deseas crear una VM de pila doble 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 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, expande una interfaz de red para 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 VM recibe una dirección IPv6 interna o externa.

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

    4. En IP interna principal, selecciona una de las siguientes opciones:

      • Efímera para asignar una dirección IPv4 efímera nueva
      • Una dirección IPv4 reservada de la lista
      • Estática para asignar una nueva dirección IPv4 estática
    5. 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.
    6. Para terminar de modificar la interfaz de red, haz clic en Listo.

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

  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 VM 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: ID del proyecto en el que se creará la VM
    • ZONE: Zona en la que se creará la VM

    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: Zona que contiene el tipo de máquina que se usará para la VM nueva
    • MACHINE_TYPE: Es el tipo de máquina, predefinido o personalizado de la VM nueva. Por ejemplo, n1-standard-1.
    • INSTANCE_NAME: es el nombre de la VM 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 VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.

Cambia el tipo de máquina de una VM

Puedes cambiar el tipo de pila de una VM 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 VM debe estar conectada a una subred de pila doble. Si necesitas cambiar a qué subred está conectada la VM, detén la VM y cambia la subred. Después de actualizar la subred, puedes cambiar el tipo de pila de la IP de la VM.

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 siguientes pasos:
    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 VM mediante 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.
  • ZONE: la zona en la que se implementa la instancia.
  • STACK_TYPE: el tipo de pila de la VM: IPV4_ONLY o IPV4_IPV6.

REST

Actualiza el tipo de pila de una VM mediante una solicitud PATCH al método instances.updateNetworkInterface.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONEinstances/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 VM: 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 VMs de pila doble. 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 VMs de doble pila.

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

Reemplaza lo siguiente:

  • TEMPLATE_NAME: es el nombre de la plantilla.
  • SUBNET: una subred que tiene un rango de subred IPv6.

REST

Para crear una plantilla de instancias regional, usa el método regionInstanceTemplates.insert, o bien, 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": "IPV4_IPV6",
      },
    ],
    "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: el tipo de máquina de las VM. Por ejemplo, n1-standard-1.
  • 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-10", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.

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