Reserve um endereço IP interno estático

Esta página mostra como reservar e gerir endereços IPv4 ou IPv6 internos estáticos em redes da nuvem virtual privada (VPC).

Os endereços IP internos estáticos permitem reservar endereços IP internos a partir do intervalo de endereços IP configurado na sub-rede e, em seguida, atribuir esses endereços IP internos reservados aos recursos, conforme necessário. A reserva de um endereço IP interno retira esse endereço do conjunto de atribuição dinâmica e impede que seja usado para atribuições automáticas. A reserva de endereços IP internos estáticos requer autorizações específicas da gestão de identidade e de acesso (IAM) para que apenas os utilizadores autorizados possam reservar um endereço IP interno estático.

Com a capacidade de reservar endereços IP internos estáticos, pode sempre usar o mesmo endereço IP para o mesmo recurso, mesmo que tenha de eliminar e recriar o recurso.

Para reservar um endereço IP externo estático em vez de um endereço IP interno, consulte o artigo Reserve um endereço IP externo estático.

Antes de começar

  • Leia acerca dos endereços IP.
  • Se ainda não o fez, configure a autenticação. A autenticação é o processo através do qual a sua identidade é validada para acesso a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se da seguinte forma.

    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

    Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

    gcloud init

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Terraform

    Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para mais informações, consulte Configure o ADC para um ambiente de desenvolvimento local na Google Cloud documentação de autenticação.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Funções necessárias

Para receber as autorizações de que precisa para reservar e gerir endereços IP estáticos, peça ao seu administrador para lhe conceder a função do IAM Administrador da rede de computação (roles/compute.networkAdmin) no seu projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para reservar e gerir endereços IP estáticos. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para reservar e gerir endereços IP estáticos:

  • compute.addresses.create no endereço IP
  • compute.addresses.createInternal no endereço IP
  • compute.networks.list na rede
  • compute.subnetworks.use na sub-rede
  • compute.subnetworks.list na sub-rede

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Limitações

  • O número de endereços IP internos estáticos que pode reservar não pode exceder a quota do seu projeto. Para mais informações, consulte as quotas por projeto na documentação da VPC.

  • Apenas um recurso de cada vez pode usar um endereço IP interno estático.

  • A reserva de um endereço IP interno estático só é suportada para redes VPC. Não é suportado para redes no modo antigo.

  • A eliminação de um recurso não liberta automaticamente um endereço IP interno estático. Tem de libertar manualmente os endereços IP internos estáticos quando deixar de precisar deles.

  • Cada VM pode ter várias interfaces de rede e cada interface pode ter os seguintes endereços IP atribuídos de acordo com o respetivo tipo de pilha:

    • Interfaces apenas IPv4:
      • Um endereço IPv4 interno (obrigatório)
      • Um endereço IPv4 externo (opcional)
    • Interfaces de pilha dupla (IPv4 e IPv6):
      • Um endereço IPv4 interno (obrigatório)
      • Um endereço IPv4 externo (opcional)
      • Um intervalo de endereços IPv6, interno ou externo, mas não ambos (obrigatório)/96
    • Interfaces apenas IPv6:
      • Um intervalo de endereços IPv6, interno ou externo, mas não ambos (obrigatório)/96
  • Não pode anular a atribuição nem alterar o seguinte:

    • O endereço IPv4 interno de um recurso existente. Por exemplo, não pode atribuir um novo endereço IP interno estático a uma instância de VM em execução ou parada.
    • O endereço IPv6 interno de uma VM com uma interface de rede apenas IPv6.

    No entanto, pode promover um endereço IP interno efémero de um recurso para um endereço IP interno estático, para que o endereço permaneça reservado mesmo após a eliminação do recurso.

  • Não pode alterar o nome de um endereço IP estático.

  • Os endereços IP internos estáticos são regionais, o que significa que estão restritos à região na qual são reservados. Por exemplo, se existir um endereço IP interno estático reservado em Region A, só pode usar o endereço IP em Region A.

Reserve um novo endereço IPv4 ou IPv6 interno estático

Antes de poder reservar um novo endereço IP interno estático, tem de criar uma rede VPC com uma sub-rede.

Se quiser reservar um novo endereço IPv6 interno estático, a rede VPC tem de ter o intervalo IPv6 interno ULA ativado. Além disso, a rede tem de ter uma sub-rede com um intervalo de endereços IPv6 e o INTERNALtipo de acesso IPv6.

Para reservar um endereço IP interno autónomo, conclua os seguintes passos.

Consola

  1. Na Google Cloud consola, aceda à página Endereços IP.

    Aceda a Endereços IP

  2. Clique em Reservar endereço IP estático interno. Pode ter de clicar no menu Mais ações para ver este botão.
  3. No campo Nome, introduza um nome de endereço IP.
  4. Na lista Versão de IP, selecione a versão de IP necessária:
    • Para reservar um endereço IPv4 interno estático, selecione IPv4.
    • Para reservar um endereço IPv6 interno estático, selecione IPv6.
  5. Nas listas Rede e Sub-rede, selecione uma rede de VPC e uma sub-rede, respetivamente.
  6. Especifique como quer reservar o endereço IP:
    • Para endereços IPv4, para especificar um endereço IPv4 interno estático a reservar, em Endereço IP estático, selecione Permitir-me escolher e, de seguida, introduza um endereço IP personalizado. Caso contrário, o sistema atribui automaticamente um endereço IPv4 interno estático na sub-rede.
    • Para endereços IPv6, o sistema atribui automaticamente um endereço IPv6 interno estático a partir do intervalo de endereços IPv6 internos da sub-rede.
  7. Opcional: se quiser partilhar o endereço IPv4 interno estático em diferentes front-ends, na lista Finalidade, escolha Partilhado. A seleção predefinida é Não partilhado.

  8. Clique em Reservar.

gcloud

  • Para reservar um endereço IPv4 interno, use o comando compute addresses create:

    gcloud compute addresses create ADDRESS_NAMES \
        --region REGION --subnet SUBNETWORK \
        --addresses IP_ADDRESS
    

    Substitua o seguinte:

    • ADDRESS_NAMES: os nomes de um ou mais [--purpose=SHARED_LOADBALANCER_VIP] endereços que quer criar. No caso de vários endereços, especifique todos os endereços como uma lista, separados por espaços. Por exemplo, example-address-1 example-address-2 example-address-3
    • REGION: a região deste pedido.
    • SUBNETWORK: a sub-rede para este endereço IP interno.
    • IP_ADDRESS: o endereço IP a reservar, que tem de estar dentro do intervalo de IP principal da sub-rede. Se não for especificado, é automaticamente atribuído um endereço IP da sub-rede.
  • Para reservar um endereço IPv6 interno, use o comando compute addresses create. Especifique IPV6 como o valor de --ip-version:

    gcloud compute addresses create ADDRESS_NAMES \
        --region REGION --subnet SUBNETWORK \
        --ip-version IPV6
    

    Substitua o seguinte:

    • ADDRESS_NAMES: os nomes de um ou mais endereços que quer reservar. No caso de vários endereços, especifique todos os endereços como uma lista, separados por espaços, por exemplo, example-address-1 example-address-2 example-address-3
    • REGION: a região deste pedido.
    • SUBNETWORK: a sub-rede para este endereço IPv6 interno.

    Ao contrário da reserva de IPv4 interna, a reserva de IPv6 interna não suporta a reserva de um endereço IP específico da sub-rede. Em alternativa, é automaticamente atribuído um endereço IPv6 interno a partir do intervalo de endereços IPv6 internos da sub-rede./96/64

Exemplos

  • Reserve um endereço IPv4 interno atribuído automaticamente a partir de uma sub-rede:

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1
    
  • Reserve um endereço IPv4 interno específico de uma sub-rede:

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1 \
        --addresses 10.128.0.12
    
  • Reserve um endereço IPv6 interno estático a partir de uma sub-rede:

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1 \
        --ip-version IPV6
    
  • Crie vários endereços IPv4 transmitindo mais do que um nome de endereço IPv4; todos os endereços estão reservados na mesma sub-rede:

    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

Pode usar um módulo do Terraform para criar um endereço IP interno.

No exemplo seguinte, os argumentos do Terraform têm valores de exemplo que pode alterar. O exemplo cria dois endereços IP internos específicos:

module "address" {
  source     = "terraform-google-modules/address/google"
  version    = "~> 4.0"
  project_id = var.project_id # Replace this with your project ID in quotes
  region     = "asia-east1"
  subnetwork = "my-subnet"
  names      = ["internal-address1", "internal-address2"]
  addresses  = ["10.0.0.3", "10.0.0.4"]
}

O exemplo seguinte cria dois endereços IP internos atribuídos dinamicamente:

module "address" {
  source     = "terraform-google-modules/address/google"
  version    = "~> 4.0"
  project_id = var.project_id # Replace this with your project ID in quotes
  region     = "asia-east1"
  subnetwork = "my-subnet"
  names      = ["internal-address1", "internal-address2"]
}

API

Use o método addresses.insert:

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

Para endereços IPv4 e IPv6, o corpo do pedido tem de incluir o campo addressType, que deve ser INTERNAL, o name do endereço e o subnetwork ao qual o endereço IP pertence. O corpo do pedido pode incluir opcionalmente o purpose do endereço IP interno.

Além disso, para endereços IPv4 internos, pode permitir que o sistema lhe atribua automaticamente um endereço IP ou usar address para especificar um endereço IPv4 interno. O endereço IPv4 tem de pertencer ao intervalo de endereços IP principal da sub-rede.

{
  "addressType": "INTERNAL",
  "name": "IPV4_ADDRESS_NAME",
  "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
  "address": "IPV4_ADDRESS"
  "purpose": "GCE_ENDPOINT"
}

Por exemplo:

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 endereços IPv6 internos, também tem de especificar ipVersion como IPV6. O sistema atribui automaticamente um endereço IPv6 interno estático a partir do intervalo de endereços IPv6 internos da sub-rede.

{
  "addressType": "INTERNAL",
  "name": "IPV6_ADDRESS_NAME",
  "ipVersion": "IPV6",
  "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
  "purpose": "GCE_ENDPOINT"
}

Por exemplo:

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"
}

Reserve um intervalo de endereços IP internos estáticos para a VPN de alta disponibilidade através do Cloud Interconnect

Pode reservar um intervalo de endereços IP internos estáticos para usar com a VPN de alta disponibilidade através do Cloud Interconnect.

Quando cria o endereço IP interno estático, tem de especificar a flag --purpose=IPSEC_INTERCONNECT e um comprimento do prefixo (--prefix-length) entre 26 e 29.

Os endereços IPv4 internos regionais que reserva são aplicados aos gateways de VPN de alta disponibilidade usados pelo Cloud Interconnect.

Para mais informações, consulte o artigo Atribua intervalos de endereços IP internos a gateways de VPN de HA.

Determine se um endereço IPv4 ou IPv6 interno é efémero ou estático

Os endereços IP internos estáticos e efémeros comportam-se e aparecem da mesma forma na maioria dos contextos. No entanto, com endereços IP internos estáticos, pode usar o mesmo endereço IP para o mesmo recurso, mesmo que elimine e recrie o recurso. Em geral, um endereço IP efémero é libertado se parar ou eliminar o recurso.

Para determinar se um endereço é estático ou efémero, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Endereços IP.

    Aceda a Endereços IP

  2. Encontre o endereço na lista e verifique a coluna Tipo para saber o tipo de endereço IP.

Promova um endereço IPv4 ou IPv6 interno efémero em utilização para um endereço estático

Se tiver endereços IP internos efémeros em utilização, pode promover estes endereços a endereços IP internos estáticos para que os endereços permaneçam com o seu projeto até os remover ativamente.

Para promover um endereço IP interno efémero a um endereço IP interno estático, conclua os seguintes passos.

Consola

  1. Na Google Cloud consola, aceda à página Endereços IP.

    Aceda a Endereços IP

  2. Clique em Endereços IP internos.
  3. Opcional: no campo Filtro, para pesquisar endereços IP efémeros, introduza ephemeral e, de seguida, selecione Efémero : tipo na lista pendente.
  4. Selecione o endereço IP interno que quer promover.
  5. No menu Mais ações () no final da linha de apresentação do endereço IP selecionado, selecione Promover a endereço IP estático.
  6. Introduza um nome para o novo endereço IP estático e, de seguida, clique em Reservar.

gcloud

  1. Antes de promover um endereço IPv6 interno efémero existente, tem de saber o valor desse endereço IP. Use a Google Cloud CLI para fazer um pedido describe ao recurso para obter o valor do endereço IP.

    • Para uma instância com um endereço IPv4, use o seguinte comando:

      gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "networkIP"
      
    • Para uma instância com um endereço IPv6, use o seguinte comando:

      gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "ipv6Address"
      
    • Para uma regra de encaminhamento regional, use o seguinte comando:

      gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region REGION | grep "IPAddress"
      

      Para uma regra de encaminhamento global, use a flag --global em vez da flag --region.

  2. Promova a morada:

    • Para promover um ou mais endereços IPv4 internos existentes, use o comando compute addresses create e forneça a flag --addresses com os endereços IP internos explícitos a promover:

      gcloud compute addresses create IPV4_ADDRESS_NAMES \
        --addresses IPV4_ADDRESSES \
        --region REGION \
        --prefix-length PREFIX_LENGTH \
        --subnet SUBNETWORK
      

      Substitua o seguinte:

      • IPV4_ADDRESS_NAMES: os nomes dos endereços IPv4. No caso de várias moradas, especifique todos os nomes das moradas como uma lista, separados por espaços, por exemplo, example-address-name-1 example-address-name-2 example-address-name-3. Declare os nomes pela mesma ordem pela qual declara os endereços IP. Por exemplo, suponhamos que especifica os nomes das moradas como example-address-name-1 example-address-name-2 example-address-name-3 e os endereços IPv4 como 192.0.2.0 192.0.2.1 192.0.2.2. Neste cenário, o Compute Engine mapeia os nomes e as moradas da seguinte forma:

        • 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: os endereços IPv4 a promover. No caso de vários endereços, especifique todos os endereços como uma lista, separados por espaços. Por exemplo, 192.0.2.0 192.0.2.1 192.0.2.2.

      • REGION: a região para reservar esta morada.

      • PREFIX_LENGTH: opcional. O comprimento do prefixo do intervalo de endereços IPv4. O valor tem de ser um número inteiro entre 7 e 31. Inclua este campo apenas se especificar um intervalo de endereços. Exclua o campo se o endereço IPv4 especificado for um único endereço IP.

      • SUBNETWORK: a sub-rede para este pedido.

    • Para promover um ou mais endereços IPv6 internos existentes, use o comando compute addresses create e forneça a flag --addresses com os endereços IPv6 internos explícitos:

      gcloud compute addresses create IPV6_ADDRESS_NAMES \
       --addresses IPV6_ADDRESSES \
       --region REGION \
       --prefix-length PREFIX_LENGTH \
       --subnet SUBNETWORK
      

      Substitua o seguinte:

      • IPV6_ADDRESS_NAMES: os nomes da morada. Declare os nomes pela mesma ordem em que declara os endereços IPv6. Neste caso, IPV6_ADDRESS_NAME_1 corresponde a IPV6_ADDRESS_1 e IPV6_ADDRESS_NAME_2 corresponde a IPV6_ADDRESS_2.
      • IPV6_ADDRESS_1,[IPV6_ADDRESS_2,...]: os endereços IPv6 a promover no formato CIDR.
      • PREFIX_LENGTH_1,[PREFIX_LENGTH_2,...]: o comprimento do prefixo dos endereços IPv6.
      • REGION: a região para reservar esta morada.
      • SUBNETWORK: a sub-rede para este pedido.

      O endereço IPv6 interno permanece associado à instância existente, mesmo depois de ter sido promovido a um endereço IPv6 interno estático. Se precisar de atribuir o endereço IPv6 interno estático recém-promovido a outro recurso, primeiro desatribua o endereço IPv6 interno estático da instância existente.

API

Use o método addresses.insert:

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

Para endereços IPv4 e IPv6, o corpo do pedido tem de incluir o addressType, que deve ser INTERNAL, o name do endereço, o address a promover e o subnetwork ao qual o endereço IP pertence. Para endereços IPv6, o corpo do pedido também tem de incluir prefixLength com 96 como valor.

  • Corpo do pedido para promover endereços IPv4 internos:

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

    Por exemplo:

    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"
    }
    
  • Corpo do pedido para promover endereços IPv6 internos:

    {
    "name": "ADDRESS_NAME",
    "addressType": "INTERNAL",
    "address": "IP_ADDRESS",
    "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
    "prefixLength": 96
    }
    

    Por exemplo:

    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
    }
    

Use um endereço IPv4 ou IPv6 interno estático com a VPC partilhada

Pode criar um endereço IP interno estático reservado numa sub-rede partilhada de uma rede VPC partilhada. O objeto de endereço IP é criado no mesmo projeto de serviço que o recurso que o vai usar, mesmo que o respetivo valor provenha do intervalo de endereços IP disponíveis na sub-rede partilhada selecionada da rede de VPC partilhada. Para mais informações acerca deste exemplo de utilização, consulte os seguintes recursos:

Liste endereços IPv4 ou IPv6 internos estáticos

Para ver todos os seus endereços IP internos estáticos existentes, conclua os passos seguintes.

Consola

  1. Na Google Cloud consola, aceda à página Endereços IP.

    Aceda a Endereços IP

  2. Clique em Endereços IP internos.

gcloud

Use o comando gcloud compute addresses list:

gcloud compute addresses list

API

Use o método addresses.list:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para este pedido
  • REGION: o nome da região para este pedido

Para apresentar uma lista de todas as moradas em todas as regiões, use o método addresses.aggregatedList:

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

Liberte um endereço IPv4 ou IPv6 interno estático

Se já não precisar de um endereço IP interno estático, pode libertar o endereço IP eliminando o recurso de endereço IP.

Se estiver a usar a consola Google Cloud , só pode libertar um endereço IP estático se não estiver a ser usado por outro recurso.

Se estiver a usar a CLI gcloud ou a API, pode libertar um endereço IP, quer esteja ou não a ser usado por outro recurso.

  • Se o endereço IP não estiver a ser usado por um recurso, o endereço IP é devolvido ao conjunto de endereços IP internos disponíveis.

  • Se o endereço IP estiver a ser usado por um recurso, permanece associado ao recurso até que este seja eliminado.

Para libertar um endereço IPv4 ou IPv6 interno estático, conclua os passos seguintes.

Consola

  1. Na Google Cloud consola, aceda à página Endereços IP.

    Aceda a Endereços IP

  2. Selecione o separador Endereços IP internos.
  3. Opcional: no campo Filtro, introduza static e, de seguida, selecione Estático : tipo na lista pendente.
  4. Selecione o endereço IP interno estático que quer libertar.
  5. Clique em Libertar endereço estático e, de seguida, confirme esta operação clicando em Libertar na caixa de diálogo.

    Se não vir esta opção, clique no menu Mais ações () na barra de menu superior e, de seguida, selecione Lançar endereço estático na lista.

gcloud

Use o comando compute addresses delete:

gcloud compute addresses delete ADDRESS_NAME \
    --region REGION

Substitua o seguinte:

  • ADDRESS_NAME: o nome da morada a eliminar.
  • REGION: a região à qual a morada pertence.

Por exemplo:

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

API

Use o método addresses.delete:

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

Este exemplo elimina uma morada na região us-west1:

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

O que se segue?