Reserva una dirección IP interna estática

Si una instancia requiere una dirección IP interna fija que no cambie, puedes obtener una dirección IP interna estática para esa instancia a través de una de las siguientes opciones:

Para obtener información sobre cómo administrar las direcciones IP internas secundarias, consulta Descripción general de los rangos de IP de alias.

En Compute Engine, cada instancia de VM puede tener varias interfaces de red. Cada interfaz puede tener una dirección IP externa, una dirección IP interna principal y una o más direcciones IP internas secundarias. Las reglas de reenvío pueden tener direcciones IP externas para el balanceo de cargas externo o direcciones internas para el balanceo de cargas interno. Para obtener información sobre las direcciones IP, consulta la documentación Direcciones IP.

Las IP internas estáticas proporcionan la capacidad de reservar direcciones IP internas del rango privado de IP RFC 1918 configurado en la subred y, luego, asignan esas direcciones internas reservadas a los recursos según sea necesario. Reservar direcciones IP internas quita esa dirección del grupo de asignación dinámica y evita que se use para asignaciones automáticas. Reservar direcciones IP internas estáticas requiere permisos específicos de IAM para que solo los usuarios autorizados puedan reservar una dirección IP interna estática.

Gracias a la habilidad de reservar direcciones IP internas estáticas, siempre puedes usar la misma dirección IP para el mismo recurso, incluso si tienes que borrar y volver a crear el recurso.

Para reservar una dirección IP externa estática en lugar de una dirección IP interna, consulta Reserva una dirección externa estática.

Antes de comenzar

Permisos

Para reservar y administrar direcciones IP internas estáticas, se te debe otorgar la función compute.networkAdmin. Para obtener más información sobre las funciones, consulta Funciones de IAM de Compute Engine.

Restricciones

  • No puedes cambiar la dirección IP interna de un recurso existente. Por ejemplo, no puedes asignar una nueva dirección IP interna estática a una instancia de VM en ejecución. Sin embargo, puedes promover la dirección IP interna efímera de un recurso a una IP interna estática para que la dirección permanezca reservada incluso después de que se borre el recurso.

  • Solo puedes reservar hasta 200 direcciones IP internas estáticas por región de forma predeterminada.

  • Un solo recurso a la vez puede usar una dirección IP interna estática.

  • No hay forma de saber si una dirección IP es estática o efímera después de asignarla a un recurso, excepto si se compara la dirección IP con la lista de las direcciones IP internas estáticas reservadas para ese proyecto. Usa el subcomando addresses list a fin de ver una lista de las direcciones IP internas estáticas disponibles para el proyecto.

  • La reserva de una dirección IP interna estática solo es compatible con las redes de VPC. No es compatible con las redes de modo heredado.

  • Borrar un recurso no libera de forma automática una dirección IP interna estática. Debes liberar las direcciones IP internas estáticas de forma manual cuando ya no las necesites.

Cómo reservar una dirección IP interna estática

Puedes reservar una dirección IP interna estática antes de crear el recurso asociado, o puedes crear el recurso con una dirección IP interna efímera y, luego, promover esa dirección IP efímera a una dirección IP interna estática.

Si deseas usar una dirección IP interna estática, debes tener una red de VPC para tu proyecto. Consulta Cómo usar redes VPC para obtener información sobre cómo crear la red de VPC.

Reserva una dirección específica y, luego, asóciala con un recurso específico

En este caso, debes reservar por separado una dirección IP interna estática y asígnala a un recurso. Para ello, sigue estos pasos:

  1. Crea una subred desde la red de VPC.

  2. Reserva una dirección IP interna desde el rango de IP de la subred. En este paso, se crea un recurso de dirección IP interna que contiene esa dirección IP interna específica.

  3. Crea el recurso y asocia la dirección IP interna reservada con una instancia de VM o un balanceador de cargas interno en el momento de la creación.

Especifica una dirección IP interna efímera para un recurso y promueve la dirección

En este caso, debes promover una dirección IP interna efímera que aún esté asociada a un recurso para una dirección IP interna estática.

  1. Crea una instancia de VM o un balanceador de cargas interno con una dirección IP efímera asignada automáticamente o una dirección IP elegida de forma específica.

  2. Crea una subred.

  3. Promueve la dirección IP interna a una dirección IP interna estática.

Los dos métodos se describen en el siguiente diagrama.

Reserva de una IP interna.

Reserva una nueva dirección IP interna estática

Para poder reservar una nueva dirección IP interna estática, debes crear una red de VPC con una subred.

Para reservar una nueva dirección IP interna estática, ya sea si se asignó automáticamente o si es una dirección en desuso de una subred existente, puedes usar Google Cloud Platform Console, el comando gcloud compute addresses create o el método addresses.insert en la API de Compute Engine.

Console

  1. Ve a la página Redes de VPC en GCP Console.

    Ir a la página Redes de VPC

  2. Identifica la red de VPC que deseas asociar con la instancia.
  3. Ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  4. Selecciona tu proyecto.
  5. Haz clic en Crea una instancia y especifica un nombre para la instancia.
  6. Selecciona la Región en la que se encuentra la red de VPC.
  7. Selecciona una Zona dentro de esa región.
  8. Completa los otros campos de la instancia.
  9. Expande el menú Administración, seguridad, discos, Herramientas de redes, instancia única.
  10. Haz clic en Herramientas de redes.
  11. Haz clic en Interfaces de Herramientas de redes para editar.
  12. En Red, selecciona la red de VPC que creaste.
  13. Elige la subred.
  14. En IP interna principal, selecciona Dirección IP estática de reserva.
  15. Completa el resto de las opciones de las Herramientas de red.
  16. Haz clic en Listo.
  17. Completa los requisitos de la instancia.
  18. Haz clic en Crear.

gcloud

Mediante la herramienta de línea de comandos de gcloud, ejecuta el comando compute addresses create:

gcloud compute addresses create [ADDRESS_NAME] [[ADDRESS_NAME]..] \
    --region [REGION] --subnet [SUBNETWORK] \
    --addresses [IP_ADDRESS]

En el que:

  • [ADDRESS_NAME] son los nombres deseados para una o más de las direcciones que se crearán.
  • [REGION] es la región para esta solicitud.
  • [SUBNETWORK] es la subred de esta dirección IP interna.
  • [IP_ADDRESS] es la dirección IP que se reservará, que debe estar dentro del rango de IP de la subred. Si no se especifica, se asignará una de forma automática desde la subred.

Por ejemplo, para reservar una dirección IP interna asignada de forma automática desde una subred, ejecuta este comando:

gcloud compute addresses create example-address-1 \
    --region us-central1 --subnet subnet-1

Para reservar una dirección IP interna específica desde una subred, ejecuta este comando:

gcloud compute addresses create example-address-1 \
    --region us-central1 --subnet subnet-1 --addresses 10.128.0.12

Puedes crear varias direcciones si usas más de un nombre de dirección. Sin embargo, todas las direcciones se reservarán en la misma subred. Por ejemplo:

gcloud compute addresses create example-address-1 example-address-2 \
    --region us-central1 --subnet subnet-1 \
    --addresses 10.128.0.12,10.128.0.13

API

En la API, realiza una solicitud POST a la siguiente URL:

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

El cuerpo de la solicitud debe incluir el addressType que debe ser INTERNAL, el name de la dirección y la subnetwork a la que pertenece la dirección IP. Puedes permitir que el sistema asigne de forma automática una dirección IP a la subred o especificar la address para una dirección IP específica:

{
    "addressType": "INTERNAL",
    "name": "[ADDRESS_NAME]",
    "subnetwork": "regions/[REGION]/subnetworks/[SUBNET]",
    "address": "[IP_ADDRESS]"
}

Por ejemplo:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses

{
 "name": "example-address-1",
 "addressType": "INTERNAL",
 "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
 "address": "10.128.0.12"
}

Promueve una dirección IP interna efímera en uso a una dirección estática

Si tienes direcciones IP efímeras que estén en uso, puedes promoverlas a direcciones IP internas estáticas para que permanezcan en el proyecto hasta que las quites de forma activa.

Antes de reservar una dirección IP existente, necesitarás el valor de la dirección IP que deseas promover. Realiza una solicitud describe al recurso para obtener la dirección IP. Por ejemplo, si promocionas una dirección IP que una instancia de VM use en la actualidad, usa el siguiente comando:

gcloud compute instances describe [INSTANCE_NAME] --zone [ZONE] | grep "networkIP"

La herramienta de gcloud muestra el valor networkIP, que es la IP interna que usa el recurso. Por ejemplo:

networkIP: 10.240.0.2

Luego, promueve la dirección.

Console

Para promover una dirección IP interna efímera a una dirección IP estática en Console, sigue estos pasos:

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

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto.
  3. Selecciona la instancia que deseas cambiar.
  4. Haz clic en la herramienta Editar en la parte superior de la página.
  5. Haz clic en la herramienta de edición en Interfaces de red.
  6. En Tipo de IP interna, selecciona Estática.
  7. Completa la información de una dirección IP estática.
  8. Haz clic en Listo para guardar los cambios.
  9. Haz clic en Guardar para actualizar tu instancia.

gcloud

Para promover una o más direcciones IP existentes, usa el comando compute addresses create y proporciona la marca --addresses con las IP internas explícitas que desees promover:

gcloud compute addresses create [ADDRESS_NAME_1] [[ADDRESS_NAME_2]..] \
    --addresses [IP_ADDRESS_1],[[IP_ADDRESS_2],..] \
    --region [REGION] \
    --subnet [SUBNETWORK]

En el que:

  • [ADDRESS_NAME] son los nombres que deseas para la dirección. Declara los nombres en el mismo orden en el que declararás las direcciones IP. En este caso, [ADDRESS_NAME_1] se correspondería con [IP_ADDRESS_1] y [ADDRESS_NAME_2] se correspondería con [IP_ADDRESS_2].
  • [IP_ADDRESS],[[IP_ADDRESS_2],...] son las direcciones IP que promoverán. Por ejemplo, 10.128.1.9.
  • [REGION] es la región en la que se reservará esta dirección.
  • [SUBNETWORK] es la subred para esta solicitud.

Por ejemplo:

gcloud compute addresses create example-address-1 example-address-2 \
    --addresses 10.128.4.90,10.128.0.232 \
    --region us-central1 \
    --subnet subnet-1

API

En la API, realiza una solicitud POST a la siguiente URL:

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

El cuerpo de la solicitud debe incluir el addressType que debe ser INTERNAL, el name de la dirección, la address que se promoverá y la subnetwork a la que pertenece la dirección IP:

{
    "addressType": "INTERNAL",
    "address": "[IP_ADDRESS]",
    "name": "[ADDRESS_NAME]",
    "subnetwork": "regions/[REGION]/subnetworks/[SUBNET]"
}

Por ejemplo:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses

{
 "name": "example-address-1",
 "addressType": "INTERNAL",
 "address": "10.128.0.2",
 "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
}

Crea una instancia de VM con una dirección IP interna estática

Puedes asignar una dirección IP interna estática reservada cuando crees una VM nueva.

Console

  1. En GCP Console, ve a la página VM Instances.

    Ir a la página Instancias de VM

  2. Haz clic en Crear instancia.
  3. En la página Crear una instancia nueva, llena las propiedades que quieras para tu instancia.
  4. Expande la sección Administración, seguridad, discos, Herramientas de redes, instancia única.
  5. Haz clic en Herramientas de redes.
  6. Haz clic en Red y selecciona la subred.
  7. Haz clic en la herramienta de edición en Interfaces de red.
  8. En IP interna primaria, selecciona Dirección IP interna estática de reserva.
  9. Completa la información para reservar la dirección IP interna estática.
  10. Haz clic en Crear para crear la instancia.

gcloud

  1. Primero, reserva una dirección IP interna estática. En el siguiente ejemplo, se reserva una dirección llamada my-vm-ip-address en la región us-central1. Debido a que el comando omite la marca --addresses, Compute Engine reserva una dirección IP aleatoria:

    gcloud compute addresses create my-vm-ip-address \
        --region us-central1 --subnet my-subnet
    
  2. Luego, usa esa dirección cuando crees la instancia. Por ejemplo:

    gcloud compute instances create my-instance \
        --image-family [IMAGE_FAMILY] \
        --image-project [IMAGE_PROJECT] \
        --private-network-ip my-vm-ip-address \
        --subnet my-subnet
    

Crea un balanceador de cargas interno con una dirección IP interna estática

Para crear un balanceador de cargas interno que use una dirección IP interna estática, sigue las instrucciones en los siguientes vínculos:

Usa una dirección IP interna estática para una interfaz de red secundaria

Cuando creas una instancia de VM con varias interfaces de red, puedes usar una dirección IP interna estática reservada para las interfaces de red primaria y secundaria.

Para asignar una dirección IP interna estática a una interfaz de red secundaria, sigue estos pasos:

  1. Primero, reserva una dirección IP interna estática. En el siguiente ejemplo, se reserva una dirección llamada my-second-ip-address en la región us-central1. Debido a que el comando omite la marca --addresses, Compute Engine reserva una dirección IP aleatoria:

    gcloud compute addresses create my-second-ip-address \
        --region us-central1 --subnet subnet-b
    
  2. Usa la dirección como la dirección IP para la interfaz secundaria cuando crees una instancia de VM. Por ejemplo:

    gcloud compute instances create my-instance \
        --image-family [IMAGE_FAMILY] \
        --image-project [IMAGE_PROJECT] \
        --network-interface subnet=subnet-a,no-address \
        --network-interface \
          subnet=subnet-b,private-network-ip=my-second-ip-address,no-address
    

Usa una IP interna estática con una VPC compartida

Puedes crear una IP interna estática reservada en una subred compartida de una red de VPC compartida. El objeto de la dirección IP se crea en el mismo proyecto de servicio que el recurso que lo usará, aunque su valor provenga del rango de IP disponibles en la subred compartida seleccionada de la red de VPC compartida. Consulta estas páginas para obtener más información sobre este caso práctico:

Borra una dirección IP interna estática

Puedes borrar una dirección IP interna estática si ya no la necesitas. Puedes borrar una dirección, ya sea que otro recurso la use o no. Si un recurso usa la dirección, permanece adjunta al recurso hasta que este se borra. En ese caso, la dirección se devuelve al grupo de direcciones disponibles para otros proyectos.

Console

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

    Ir a la página Instancias de VM

  2. Selecciona tu proyecto.
  3. Selecciona la instancia de VM de la lista de proyectos.
  4. Selecciona la herramienta Editar en la parte superior de la página.
  5. Haz clic en la herramienta de edición en Interfaces de red.
  6. Cambia el Tipo de IP interna de Estática a Efímera.
  7. Selecciona Liberar para liberar la dirección IP estática.
  8. Haz clic en Listo para guardar los cambios.

    La instancia usará la dirección IP estática hasta que se borre o reinicie la instancia. Luego de eso, la dirección IP se devuelve al grupo predeterminado de la subred de direcciones IP internas disponibles.

gcloud

Mediante la herramienta de gcloud, ejecuta el comando compute addresses delete:

gcloud compute addresses delete [ADDRESS_NAME] \
    --region [REGION]

En el que:

  • [ADDRESS_NAME] es el nombre de la dirección que se borrará.
  • [REGION] es la región a la que pertenece la dirección.

Por ejemplo:

gcloud compute addresses delete example-address-to-delete \
    --region us-west1

API

En la API, realiza una solicitud DELETE a la siguiente URL:

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

Por ejemplo, para borrar una dirección en la región us-west1, ejecuta el siguiente comando:

DELETE https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-west1/addresses/example-address-to-delete

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine