Reserva una dirección IP externa estática

Puedes reservar direcciones IP externas estáticas. También puedes enumerar y liberar las direcciones IP externas estáticas reservadas. Para asignar una dirección IP externa estática a una instancia de máquina virtual (VM), consulta Configura direcciones IP externas estáticas.

Las direcciones IP externas pueden ser estáticas o efímeras. Si una VM requiere una dirección IP externa fija que no cambie, puedes obtener una dirección IP externa estática. Puedes reservar direcciones IP externas nuevas o ascender direcciones IP externas efímeras existentes.

Si necesitas una dirección IP interna estática, consulta Reserva una dirección IP interna estática, en su lugar.

Antes de comenzar

  • Lee sobre las direcciones IP.
  • Lee sobre cuotas y límites para direcciones IP externas estáticas.
  • Lee sobre los precios de las direcciones IP externas.
  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    gcloud init

    Terraform

    Para usar las muestras de Terraform de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    1. Instala Google Cloud CLI.
    2. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

      gcloud init
    3. Crea credenciales de autenticación locales para tu Cuenta de Google:

      gcloud auth application-default login

    Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Funciones obligatorias

Para obtener los permisos que necesitas para reservar y administrar direcciones IP estáticas, pídele a tu administrador que te otorgue el rol de IAM Administrador de Compute Network (roles/compute.networkAdmin) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para reservar y administrar direcciones IP estáticas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para reservar y administrar direcciones IP estáticas:

  • compute.addresses.create en la dirección IP
  • compute.addresses.createInternal en la dirección IP
  • compute.networks.list en la red
  • compute.subnetworks.use en la subred
  • compute.subnetworks.list en la subred

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos

Acerca de las direcciones IP externas estáticas

Una dirección IP externa estática es una dirección IP que se reserva para tu recurso hasta que decidas liberarla. Si tienes una dirección IP en la que tus clientes o usuarios confíen a fin de acceder a tu servicio, puedes reservarla para que solo tu recurso pueda usarla. También puedes subir la categoría de una dirección IP externa efímera a una dirección IP externa estática.

Para obtener más información, consulta Direcciones IP.

En la siguiente tabla, se enumeran las direcciones IP externas estáticas compatibles con Google Cloud.

Tipo de dirección IP Recurso Rango de IP Origen Asociada con
Direcciones IPv4 externas regionales VMs y balanceadores de cargas regionales /32 Grupo de direcciones IP externas de Google Proyecto
Direcciones IPv6 externas regionales VMs y balanceadores de cargas regionales admitidos /96 Rango de direcciones IPv6 externas de la subred Subred
Direcciones IPv4 externas globales Balanceadores de cargas globales /32 Grupo de direcciones IP externas de Google Proyecto
Direcciones IPv6 externas globales Balanceadores de cargas globales /64 Grupo de direcciones IP externas de Google Proyecto

Para obtener una lista de los balanceadores de cargas regionales y globales, consulta Resumen de los tipos de balanceadores de cargas.

Limitaciones

  • Solo un recurso a la vez puede usar una dirección IP externa estática.

  • No hay forma de verificar si una dirección IP es estática o efímera después de que se asigna a un recurso. Puedes comparar la dirección IP con la lista de direcciones IP externas estáticas reservadas para ese proyecto. Usa el subcomando gcloud compute addresses list a fin de ver una lista de direcciones IP externas estáticas disponibles para el proyecto.

  • Cada VM puede tener varias interfaces de red y cada interfaz puede tener las siguientes direcciones IP asignadas:

    • Una dirección IPv4 interna (obligatoria)
    • Una dirección IPv4 externa
    • Un rango de direcciones IPv6, ya sean internas o externas, pero no ambas
  • No puedes cambiar el nombre de una dirección IP estática.

  • Las direcciones IP externas asignadas existen en el mismo host físico que la instancia de VM y existen en la misma región que la VM para todos los fines, incluidos el enrutamiento, la latencia y los precios. Esto sucede sin importar la información de búsqueda de la ubicación geográfica de Internet.

Nota: Las interfaces de red pueden recibir tráfico de varias reglas de reenvío, que pueden entregar a otras direcciones IP externas. Cualquier cantidad de direcciones IP externas puede hacer referencia a una interfaz de red a través de estas reglas de reenvío, sin embargo, a cada interfaz de red se le puede asignar solo una dirección IPv4 externa y un rango de direcciones IPv6 externas.

Para obtener más información sobre el balanceo de cargas y las reglas de reenvío, consulta la documentación de balanceo de cargas.

Reserva una dirección IP externa estática nueva

Después de reservar la dirección, asígnala a una VM nueva mientras la creas o a una VM existente.

Console

  1. En la consola de Google Cloud, ve a la página Reserva una dirección estática.

    Ir a Reserva una dirección estática

  2. Elige un nombre para la dirección nueva.

  3. Especifica si el nivel de servicio de red será Premium o Estándar. La reserva de direcciones estáticas IPv6 solo es compatible con el nivel Premium.

  4. Especifica si es una dirección IPv4 o IPv6.

  5. Elige si esta dirección IP será regional o global.

    • Si reservas una dirección IP estática para un balanceador de cargas global, elige Global y, luego, haz clic en Reservar.
    • Si reservas una dirección IP estática para una VM o un balanceador de cargas de red, elige Regional y, luego, elige la región en la que deseas crear la dirección.
  6. Si reservas una dirección IPv6 externa regional, también elige lo siguiente:

    • Red: la red de VPC
    • Subred: la subred desde la que se asigna la dirección IPv6 regional estática
    • Tipo de extremo: elige Instancia de VM o Balanceador de cargas de red
  7. Opcional: Si reservas la dirección IP externa estática de una VM, en la lista Adjuntar, elige una VM a la que deseas conectar la dirección IP.

  8. Haz clic en Reservar si deseas reservar la dirección IP.

gcloud

Para reservar una dirección IP externa estática, usa el comando gcloud compute addresses create.

Usa las siguientes instrucciones para reservar una dirección IPv4 o IPv6 externa estática:

Dirección IP global

Para reservar una dirección IP global, sigue estos pasos:
  gcloud compute addresses create ADDRESS_NAME \
      --global \
      --ip-version [IPV4 | IPV6]
  

Dirección IPv4 externa regional

Para reservar una dirección IPv4 externa regional, sigue estos pasos:
   gcloud compute addresses create ADDRESS_NAME \
       --region=REGION
   

Dirección IPv6 externa regional

Para reservar una dirección IPv6 externa regional, sigue estos pasos:
   gcloud compute addresses create ADDRESS_NAME \
       --region=REGION \
       --subnet=SUBNET_NAME \
       --ip-version=IPV6 \
       --endpoint-type=[VM | NETLB]
   

Reemplaza lo siguiente:

  • ADDRESS_NAME: el nombre que deseas asociar a esta dirección.
  • REGION: para direcciones IP externas regionales, especifica la región en la que deseas reservar esta dirección. Esta región debe ser la misma que el recurso al que deseas conectar la dirección IP.
  • SUBNET_NAME: para direcciones IPv6 externas regionales, especifica la subred a la que se asignará la dirección IPv6 regional estática. La subred debe tener un rango de direcciones IPv6 externas asignado.
  • [IPV4 | IPV6]: para direcciones IP globales, especifica la versión de IP, ya sea IPv4 o IPv6. Para direcciones IPv6 externas regionales, especifica IPv6. Se asigna un rango de IPv6 /96 desde la subred especificada.
  • VM | NETLB: para direcciones IPv6 externas regionales, especifica el tipo de extremo; ya sea una VM o un balanceador de cargas de red.

Para ver el resultado, usa el comando gcloud compute addresses describe:

gcloud compute addresses describe ADDRESS_NAME

Terraform

Puedes usar el recurso google_compute_address para crear una dirección IP externa regional.

resource "google_compute_address" "default" {
  name   = "my-test-static-ip-address"
  region = "us-central1"
}

En el siguiente ejemplo, se muestra cómo usar el recurso google_compute_global_address para crear una dirección IPv6 externa global:

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

API

  • Para crear una dirección IPv4 regional, invoca el método addresses.insert regional:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
    

    El cuerpo de la solicitud debe contener la siguiente información:

    {
      "name": "ADDRESS_NAME"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • REGION: el nombre de la región para esta solicitud
    • ADDRESS_NAME: Es el nombre que deseas asociar a la dirección
  • Para direcciones IPv4 estáticas globales, llama al método globalAddresses.insert:

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

    El cuerpo de la solicitud debe contener la siguiente información:

    {
      "name": "ADDRESS_NAME"
    }
    
  • Para direcciones IPv6 estáticas globales, llama al método globalAddresses.insert:

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

    El cuerpo de la solicitud debe contener la siguiente información:

    {
      "name": "ADDRESS_NAME",
      "ipVersion": "IPV6"
    }
    

    Para ver el resultado, usa el método addresses.get.

  • Para direcciones IPv6 estáticas regionales, llama al método addresses.insert:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
    

    El cuerpo de la solicitud debe contener la siguiente información:

    {
      "name": "ADDRESS_NAME",
      "ipVersion": "IPV6",
      "ipv6EndpointType": "VM|LB",
      "networkTier": "PREMIUM",
      "subnetwork": "SUBNET"
    }
    

    Reemplaza SUBNET por la subred de este proyecto.

    Para ver el resultado, usa el método addresses.get.

Promueve una dirección IP externa efímera

Si tu instancia tiene una dirección IP externa efímera y deseas asignar la dirección IP a tu proyecto de manera permanente, debes promover la dirección IP externa efímera a una dirección IP externa estática. Promover una dirección IP externa efímera a una reservada no implica que Google Cloud descarte los paquetes enviados al VM. Esto incluye los paquetes que se enviaron a la VM directamente o mediante un balanceador de cargas.

Console

  1. Ve a la página Direcciones IP.

    Ir a Direcciones IP

  2. Haz clic en Direcciones IP externas.
  3. Opcional: En el campo Filtro, busca la dirección IP efímera que deseas ascender.
  4. En el menú Más acciones () de la dirección IP que deseas ascender, elige Ascender a dirección IP estática.
  5. Proporciona un nombre para la dirección IP estática nueva y haz clic en Reservar.

gcloud

Usa las siguientes instrucciones para ascender una dirección IPv4 o IPv6 externa estática:

  • Si quieres promover una dirección IPv4 externa efímera a una dirección IPv4 externa estática, debes proporcionar la dirección IP externa efímera mediante el uso de la siguiente información: --addresses marca con el compute addresses createcomando. Usa la marca region a fin de ascender una dirección IP regional efímera o la marca global a fin de ascender una dirección IP global efímera.

    gcloud compute addresses create ADDRESS_NAME --addresses=IP_ADDRESS \
        [--region=REGION | --global]
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: Es el nombre que deseas asociar a esta dirección.
    • IP_ADDRESS: la dirección IP que deseas ascender.
    • REGION: la región a la que pertenece la dirección IP regional.

    • Si quieres promover una dirección IPv6 externa regional efímera a una dirección IPv6 externa regional estática, debes proporcionar la dirección IP externa efímera mediante el uso de la marca --addresses con el comando compute addresses create.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --addresses=IPV6_ADDRESS \
        --prefix-length=96
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: un nombre para el recurso de dirección IP.
    • REGION: la región para el recurso de dirección IPv6.
    • IPV6_ADDRESS: la dirección IPv6 que estás promoviendo.

API

Para ascender una dirección IP regional efímera, llama al método addresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Si quieres promover una dirección IP global efímera, debes realizar una solicitud POST al siguiente URI:

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

Especifica los valores para los campos obligatorios del cuerpo de la solicitud:

  • Para las direcciones IPv4, el cuerpo de la solicitud debe contener los siguientes campos:

    {
      "name": "ADDRESS_NAME",
      "address": "IPV4_ADDRESS"
      "addressType": "EXTERNAL"
    }
    
  • Para las direcciones IPv6, el cuerpo de la solicitud debe contener los siguientes campos:

    {
      "name": "ADDRESS_NAME",
      "address": "IPV6_ADDRESS"
      "prefixLength": 96
      "addressType": "EXTERNAL"
    }
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: Es el nombre que deseas asociar a esta dirección
    • IPV4_ADDRESS|IPV6_ADDRESS: la dirección IPv4 o IPv6 que deseas ascender
    • REGION: la región a la que pertenece la dirección IPv4 o IPv6
    • PROJECT_ID: Es el ID del proyecto de esta solicitud.

La dirección IP externa permanece adjunta a la instancia incluso después de que se haya asignado a una dirección IP externa estática. Si necesitas asignar la dirección IP externa estática nueva a otro recurso, anula la asignación de la dirección IP externa estática de la VM existente.

Enumera direcciones IP externas estáticas

Para crear una lista de las direcciones IP externas estáticas que reservaste para tu proyecto, sigue estos pasos.

Console

  1. En la consola de Google Cloud, ve a la página Direcciones IP.

    Ir a Direcciones IP

  2. Haz clic en Direcciones IP externas.

gcloud

Usa el comando gcloud compute addresses list:

  • Para enumerar todas las direcciones IP, usa el siguiente comando:

    gcloud compute addresses list
  • Para enumerar todas las direcciones IP globales, usa el siguiente comando:

    gcloud compute addresses list --global
  • Para enumerar todas las direcciones IP regionales en una región determinada, usa el siguiente comando:

    gcloud compute addresses list \
        --regions=REGION
    

    Reemplaza REGION por la región de la que deseas enumerar las direcciones. Puedes enumerar direcciones de varias regiones si especificas nombres de región separados por comas:

    gcloud compute addresses list \
        --regions=REGION1,REGION2,..REGION_n_
    

API

  • Para enumerar las direcciones IPv4 o IPv6 regionales, llama al método addresses.list:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • REGION: El nombre de la región para esta solicitud
  • Para enumerar todas las direcciones de todas las regiones, llama al método addresses.aggregatedList:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
    
  • Para enumerar las direcciones IPv4 o IPv6 globales, llama al método globalAddresses.list:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
    

    Reemplaza lo siguiente:

    PROJECT_ID: Es el ID del proyecto de esta solicitud.

Describe una dirección IP externa estática

Para obtener información sobre una dirección IP externa estática, sigue estos pasos.

Console

  1. En la consola de Google Cloud, ve a la página Direcciones IP.

    Ir a Direcciones IP

  2. Haz clic en Direcciones IP externas.

  3. Haz clic en la dirección IP que la que quieres obtener más información.

gcloud

Usa el comando gcloud compute addresses describe y reemplaza ADDRESS_NAME por el nombre de la dirección IP externa que deseas describir.

  • Para una dirección IPv4 o IPv6 global, usa el siguiente comando:

    gcloud compute addresses describe ADDRESS_NAME --global
  • Para una dirección IPv4 o IPv6 regional, usa el siguiente comando:

    gcloud compute addresses describe ADDRESS_NAME --region=REGION

API

  • Para describir una dirección IPv4 o IPv6 regional, llama al método addresses.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de la solicitud.
    • REGION: El nombre de la región para esta solicitud
    • ADDRESS_NAME: El nombre de la dirección IP.
  • Para describir una dirección IPv4 o IPv6 global, llama al método globalAddresses.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de la solicitud.
    • ADDRESS_NAME: El nombre de la dirección IP.

Liberar una dirección IP externa estática

Si ya no necesitas una dirección IPv4 o IPv6 externa estática, puedes borrar el recurso de dirección IP para liberarla.

Si usas la consola de Google Cloud, puedes liberar una dirección IP estática solo si no la usa otro recurso.

Si usas gcloud CLI o la API, puedes liberar una dirección IP, ya sea que la use otro recurso o no.

  • Si un recurso no usa la dirección IP, esta se muestra al grupo de direcciones IP externas disponibles.

  • Si un recurso usa la dirección IP, permanece adjunta al recurso hasta que este se borra.

Console

  1. En la consola de Google Cloud, ve a la página Direcciones IP.

    Ir a Direcciones IP

  2. Haz clic en Direcciones IP externas.

  3. Elige la dirección IP que deseas liberar.

  4. Haz clic en Liberar dirección estática.

    Si no ves esta opción, haz clic en el menú Más acciones () en la barra de menú superior y, luego, selecciona Liberar dirección estática en la lista.

gcloud

Usa el comando compute addresses delete:

gcloud compute addresses delete ADDRESS_NAME

Reemplaza ADDRESS_NAME por el nombre de la dirección IPv4 o IPv6 que deseas liberar.

API

  • Para liberar una dirección IPv4 o IPv6 regional, llama al método addresses.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • REGION: El nombre de la región para esta solicitud
    • ADDRESS_NAME: El nombre de la dirección IP.
  • Para liberar una dirección IPv4 o IPv6 global, llama al método globalAddresses.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: El nombre de la dirección IP.
    • PROJECT_ID: Es el ID del proyecto de esta solicitud.

¿Qué sigue?