Reservar una nueva dirección IP interna estática
En esta página, se muestra cómo reservar y administrar direcciones IPv4 o IPv6 internas estáticas en redes de nube privada virtual (VPC).
Las direcciones IP internas estáticas proporcionan la capacidad de reservar direcciones IP internas del rango de direcciones IP configurado en la subred y, luego, asignar esas direcciones IP 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 Identity and Access Management (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 IP externa estática.
Antes de comenzar
- Lee sobre las direcciones IP.
- 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.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura ADC 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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Roles obligatorios
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 a proyectos, carpetas y organizaciones.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
-
compute.addresses.createInternal
compute.networks.list
compute.subnetworks.use
compute.subnetworks.list
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Limitaciones
No puedes anular la asignación ni cambiar la dirección IPv4 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 o detenida. Sin embargo, puedes promover la dirección IP interna efímera de un recurso a una dirección IP interna estática para que la dirección permanezca reservada incluso después de que se borre el recurso.
La cantidad de direcciones IP internas estáticas que puedes reservar no debe superar la cuota de tu proyecto. Para obtener más información, consulta las cuotas por proyecto en la documentación de VPC.
Un solo recurso a la vez puede usar una dirección IP interna estática.
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.
No puedes cambiar el nombre de una dirección IP estática.
Las direcciones IP internas estáticas son regionales, lo que significa que están restringidas a la región en la que se reservan. Por ejemplo, si hay una dirección IP interna estática reservada en
Region A
, solo puedes usar la dirección IP enRegion A
.
Reserva una nueva dirección IPv4 o IPv6 interna estática
Para poder reservar una dirección IP interna estática nueva, debes crear una red de VPC con una subred.
Si deseas reservar una dirección IPv6 interna estática nueva, la red de VPC debe tener habilitado el rango de IPv6 interno de ULA. Además, debe tener una subred de pila doble con el tipo de acceso IPv6
INTERNAL
.Para reservar una dirección IP interna independiente, completa los siguientes pasos.
Console
- En la consola de Google Cloud, ve a la página Direcciones IP.
- Haz clic en Reservar dirección IP estática interna. Es posible que debas hacer clic en el menú Más acciones para ver este botón.
- En el campo Nombre, ingresa un nombre de dirección IP.
- En la lista Versión de IP, elige la versión de IP requerida:
- Para reservar una dirección IPv4 interna estática, elige IPv4.
- Para reservar una dirección IPv6 interna estática, elige IPv6.
- En las listas Red y Subred, elige una red de VPC y una subred respectivamente.
- Especifica cómo deseas reservar la dirección IP:
- En direcciones IPv4, para especificar una dirección IPv4 interna estática que se reservará, en Dirección IP estática, elige Permitirme elegir y, luego, ingresa una dirección IP personalizada. De lo contrario, el sistema asignará de forma automática una dirección IPv4 interna estática en la subred.
- Para las direcciones IPv6, el sistema asigna de forma automática una dirección IPv6 interna estática del rango de direcciones IPv6 interno de la subred.
Opcional: Si deseas compartir la dirección IPv4 interna estática en diferentes frontends, en la lista Propósito, elige Compartida. La selección predeterminada es No compartida.
Haz clic en Reservar.
gcloud
Para reservar una dirección IPv4 interna, usa el comando
compute addresses create
:gcloud compute addresses create ADDRESS_NAMES \ --region REGION --subnet SUBNETWORK \ --addresses IP_ADDRESS
Reemplaza lo siguiente:
ADDRESS_NAMES
: son los nombres de una o más direcciones[--purpose=SHARED_LOADBALANCER_VIP]
que deseas crear. En el caso de varias direcciones, especifica todas las direcciones como una lista, separadas por espacios, por ejemplo,example-address-1 example-address-2 example-address-3
.REGION
: Es la región para esta solicitud.SUBNETWORK
: Es la subred para esta dirección IP interna.IP_ADDRESS
: Es la dirección IP que se reservará, que debe estar dentro del rango de IP principal de la subred. Si no se especifica, se asigna una dirección IP de forma automática desde la subred.
Para reservar una dirección IPv6 interna, usa el comando
compute addresses create
. EspecificaIPV6
como el valor de--ip-version
:gcloud compute addresses create ADDRESS_NAMES \ --region REGION --subnet SUBNETWORK \ --ip-version IPV6
Reemplaza lo siguiente:
ADDRESS_NAMES
: Son los nombres de una o más direcciones que deseas reservar. En el caso de varias direcciones, especifica todas las direcciones como una lista, separadas por espacios, por ejemplo,example-address-1 example-address-2 example-address-3
.REGION
: Es la región para esta solicitud.SUBNETWORK
: Es la subred para esta dirección IPv6 interna.
A diferencia de la reserva IPv4 interna, la reserva IPv6 interna no admite la reserva de una dirección IP específica de la subred. En su lugar, una dirección IPv6 interna
/96
se asigna de forma automática a partir del rango de direcciones IPv6 interna de la subred/64
.
Ejemplos
Reserva una dirección IPv4 interna asignada de forma automática desde una subred:
gcloud compute addresses create example-address-1 \ --region us-central1 \ --subnet subnet-1
Reserva una dirección IPv4 interna específica desde una subred:
gcloud compute addresses create example-address-1 \ --region us-central1 \ --subnet subnet-1 \ --addresses 10.128.0.12
Reserva una dirección IPv6 interna estática desde una subred:
gcloud compute addresses create example-address-1 \ --region us-central1 \ --subnet subnet-1 \ --ip-version IPV6
Para crear varias direcciones IPv4, pasa más de un nombre de dirección IPv4; todas las direcciones están reservadas en la misma subred:
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
Terraform
Puedes usar un módulo de Terraform para crear una dirección IP interna.
En el siguiente ejemplo, los argumentos de Terraform tienen valores de ejemplo que puedes cambiar. En el ejemplo, se crean dos direcciones IP internas específicas:
En el siguiente ejemplo, se crean dos direcciones IP internas asignadas de forma dinámica:
API
Usa el método
addresses.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Para las direcciones IPv4 e IPv6, el cuerpo de la solicitud debe incluir el campo
addressType
, que debe serINTERNAL
, elname
de la dirección y lasubnetwork
a la que pertenece la dirección IP. El cuerpo de la solicitud puede incluir de manera opcional elpurpose
de la dirección IP interna.Además, para las direcciones IPv4 internas, puedes permitir que el sistema asigne de forma automática una dirección IP o usar
address
a fin de especificar una dirección IPv4 interna. La dirección IPv4 debe pertenecer al rango de direcciones IP principal de la subred.{ "addressType": "INTERNAL", "name": "IPV4_ADDRESS_NAME", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK", "address": "IPV4_ADDRESS" "purpose": "GCE_ENDPOINT" }
Por ejemplo:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses { "addressType": "INTERNAL", "name": "example-ipv4-address-1", "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet", "address": "10.128.0.12" "purpose": "GCE_ENDPOINT" }
Para las direcciones IPv6 internas, también debes especificar
ipVersion
comoIPV6
. El sistema asigna de forma automática una dirección IPv6 interna estática del rango de direcciones IPv6 interno de la subred.{ "addressType": "INTERNAL", "name": "IPV6_ADDRESS_NAME", "ipVersion": "IPV6", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK", "purpose": "GCE_ENDPOINT" }
Por ejemplo:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses { "addressType": "INTERNAL", "name": "example-ipv6-address-1", "ipVersion": "IPV6" "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet", "purpose": "GCE_ENDPOINT" }
Reserva un rango de direcciones IP internas estáticas para la VPN con alta disponibilidad en Cloud Interconnect
Puedes reservar un rango de direcciones IP internas estáticas para usar con una VPN con alta disponibilidad a través de Cloud Interconnect.
Cuando creas la dirección IP interna estática, debes especificar la marca
--purpose=IPSEC_INTERCONNECT
y una longitud de prefijo (--prefix-length
) entre 26 y 29.Las direcciones IPv4 internas regionales que reservas se aplican a las puertas de enlace de VPN con alta disponibilidad que usa Cloud Interconnect.
Para obtener más información, consulta Asigna rangos de direcciones IP internas a las puertas de enlace de VPN con alta disponibilidad.
Determina si una dirección IPv4 o IPv6 interna es efímera o estática
Las direcciones IP internas estáticas y efímeras se comportan y se ven iguales en la mayoría de los contextos. Sin embargo, con las direcciones IP internas estáticas, puedes usar la misma dirección IP para el mismo recurso, incluso si borras y vuelves a crear el recurso. En general, una dirección IP efímera se libera si detienes o borras el recurso.
Para determinar si una dirección es estática o efímera, haz lo siguiente:
En la consola de Google Cloud, ve a la página Direcciones IP.
Busca la dirección en la lista y verifica la columna Tipo para el tipo de dirección IP.
Promueve una dirección IPv4 o IPv6 interna efímera en uso a una dirección estática
Si tienes direcciones IP internas efímeras que estén en uso, puedes ascenderlas a direcciones IP internas estáticas para que permanezcan en el proyecto hasta que las quites de forma activa.
Para ascender una dirección IP interna efímera a una dirección IP interna estática, completa los siguientes pasos.
Console
- En la consola de Google Cloud, ve a la página Direcciones IP.
- Haz clic en Direcciones IP internas.
- Opcional: En el campo Filtro, para buscar direcciones IP efímeras, ingresa
ephemeral
y, luego, selecciona Efímero: Tipo de la lista desplegable. - Selecciona la dirección IP interna que deseas promocionar.
- En el menú Más acciones ( ) al final de la fila de visualización de la dirección IP seleccionada, elige Ascender a dirección IP estática.
- Proporciona un nombre para la dirección IP estática nueva y haz clic en Reservar.
gcloud
Antes de ascender una dirección IPv6 interna efímera existente, debes conocer el valor de esa dirección IP. Usa Google Cloud CLI para realizar una solicitud
describe
al recurso a fin de obtener el valor de la dirección IP.Para una instancia con una dirección IPv4, usa el siguiente comando:
gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "networkIP"
Para una instancia con una dirección IPv6, usa el siguiente comando:
gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "ipv6Address"
Para una regla de reenvío regional, usa el siguiente comando:
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region REGION | grep "IPAddress"
Para una regla de reenvío global, usa la marca
--global
en lugar de la marca--region
.
Promueve la dirección:
Para ascender runa o más direcciones IPv4 internas existentes, usa el comando
compute addresses create
y proporciona la marca--addresses
con las direcciones IP internas explícitas para ascender:gcloud compute addresses create IPV4_ADDRESS_NAMES \ --addresses IPV4_ADDRESSES \ --region REGION \ --prefix-length PREFIX_LENGTH \ --subnet SUBNETWORK
Reemplaza lo siguiente:
IPV4_ADDRESS_NAMES
: los nombres de las direcciones IPv4. En el caso de varias direcciones, especifica todos los nombres de direcciones como una lista, separados por espacios, por ejemplo,example-address-name-1 example-address-name-2 example-address-name-3
. Declara los nombres en el mismo orden en el que declararás las direcciones IP. Por ejemplo, supongamos que especificas los nombres de las direcciones comoexample-address-name-1 example-address-name-2 example-address-name-3
y las direcciones IPv4 como192.0.2.0 192.0.2.1 192.0.2.2
. En esta situación, Compute Engine asigna los nombres y las direcciones de la siguiente manera:example-address-name-1
:192.0.2.0
example-address-name-2
:192.0.2.1
example-address-name-3
:192.0.2.2
IPV4_ADDRESSES
: Son las direcciones IPv4 que se deben ascender. En el caso de varias direcciones, especifica todas las direcciones como una lista, separadas por espacios, por ejemplo,192.0.2.0 192.0.2.1 192.0.2.2
.REGION
: Es la región en la que se reservará esta dirección.PREFIX_LENGTH
: Opcional La longitud del prefijo del rango de direcciones IPv4. El valor debe ser un número entero entre 7 y 31. Incluye este campo solo si especificas un rango de direcciones. Excluye el campo si la dirección IPv4 especificada es una sola dirección IP.SUBNETWORK
: Es la subred de esta solicitud.
Para ascender una o más direcciones IPv6 internas existentes, usa el comando
compute addresses create
y proporciona la marca--addresses
con las direcciones IPv6 internas explícitas:gcloud compute addresses create IPV6_ADDRESS_NAMES \ --addresses IPV6_ADDRESSES \ --region REGION \ --prefix-length PREFIX_LENGTH \ --subnet SUBNETWORK
Reemplaza lo siguiente:
IPV6_ADDRESS_NAMES
: los nombres de la dirección. Declara los nombres en el mismo orden en el que declararás las direcciones IPv6. En este caso,IPV6_ADDRESS_NAME_1
corresponde aIPV6_ADDRESS_1
, yIPV6_ADDRESS_NAME_2
aIPV6_ADDRESS_2
.IPV6_ADDRESS_1,[IPV6_ADDRESS_2,...]
: Son las direcciones IPv6 que se deben ascender en formato CIDR.PREFIX_LENGTH_1,[PREFIX_LENGTH_2,...]
: Es la longitud de prefijo de direcciones IPv6.REGION
: Es la región en la que se reservará esta dirección.SUBNETWORK
: Es la subred de esta solicitud.
La dirección IPv6 interna permanece adjunta a la instancia existente incluso después de que se asigne a una dirección IPv6 interna estática. Si necesitas asignar la dirección IPv6 interna estática que se acaba de ascender a otro recurso, primero debes anular la asignación de la dirección IPv6 interna estática de la instancia existente.
API
Usa el método
addresses.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Para las direcciones IPv4 e IPv6, el cuerpo de la solicitud debe incluir el
addressType
, que debe serINTERNAL
, elname
de la dirección, eladdress
que se debe ascender y elsubnetwork
al que pertenece la dirección IP. Para las direcciones IPv6, además, el cuerpo de la solicitud debe incluirprefixLength
con96
como valor.Cuerpo de la solicitud para ascender direcciones IPv4 internas:
{ "name": "ADDRESS_NAME", "addressType": "INTERNAL", "address": "IP_ADDRESS", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" }
Por ejemplo:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses { "name": "example-IPv4-address-1", "addressType": "INTERNAL", "address": "10.128.0.2", "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet" }
Cuerpo de la solicitud para ascender direcciones IPv6 internas:
{ "name": "ADDRESS_NAME", "addressType": "INTERNAL", "address": "IP_ADDRESS", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" "prefixLength": 96 }
Por ejemplo:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses { "name": "example-IPv6-address-1", "addressType": "INTERNAL", "address": "fd20:0:0::", "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet" "prefixLength": 96 }
Usa una dirección IPv4 o IPv6 interna estática con una VPC compartida
Puedes crear una dirección 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 direcciones IP disponibles en la subred compartida seleccionada de la red de VPC compartida. Para obtener más información sobre este caso de uso, consulta los siguientes recursos:
- La sección Direcciones IP en la Descripción general de la VPC compartida
- La sección Reserva una dirección IPv4 o IPv6 interna estática en Aprovisiona la VPC compartida
Enumera direcciones IPv4 o IPv6 internas estáticas
Para ver todas tus direcciones IP internas estáticas existentes, completa los siguientes pasos.
Console
En la consola de Google Cloud, ve a la página Direcciones IP.
Haz clic en Direcciones IP internas.
gcloud
Usa el comando
gcloud compute addresses list
:gcloud compute addresses list
API
Usa el 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, usa el método
addresses.aggregatedList
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
Libera una dirección IPv4 o IPv6 interna estática
Si ya no necesitas una dirección IP interna 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 internas disponibles.
Si un recurso usa la dirección IP, permanece adjunta al recurso hasta que este se borra.
Para liberar una dirección IPv4 o IPv6 interna estática, completa los siguientes pasos.
Console
- En la consola de Google Cloud, ve a la página Direcciones IP.
- Selecciona la pestaña Direcciones IP internas.
- Opcional: En el campo Filtro, ingresa
static
y, luego, selecciona Estático: Tipo en la lista desplegable. - Elige la dirección IP interna estática que deseas liberar.
Haz clic en Liberar dirección estática y, luego, haz clic en Liberar en el cuadro de diálogo para confirmar esta operación.
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 \ --region REGION
Reemplaza lo siguiente:
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
Usa el método
addresses.delete
:DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
En este ejemplo, se borra una dirección en la región
us-west1
:DELETE https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-west1/addresses/example-address-to-delete
¿Qué sigue?
- Obtén información sobre cómo configurar direcciones IP internas estáticas para VMs.
Crea un balanceador de cargas interno que use una dirección IPv4 interna estática:
Obtén información sobre las especificaciones de direcciones IP para las reglas de reenvío y cómo usar reglas de reenvío en la Descripción general de las reglas de reenvío.
Obtén más información acerca de las direcciones IP.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-22 (UTC)