Configurar o acesso a serviços privados
O Acesso a serviços privados é uma conexão privada entre sua rede VPC e uma rede de propriedade do Google ou de terceiros. O Google ou o terceiro, entidades que oferecem serviços, também são conhecidos como fornecedores de serviços. A conexão particular permite que as instâncias de VM na sua rede VPC e os serviços que você acessa se comuniquem exclusivamente usando endereços IP internos. As instâncias de VM não precisam de acesso à Internet ou de endereços IP externos para alcançar serviços disponíveis por meio do acesso a serviços privados.
Para saber mais sobre o Acesso privado a serviços e alternativas similares, consulte Opções de acesso privado para serviços.
Em geral, para usar o Acesso privado a serviços, você precisa alocar um intervalo de endereços IP (bloco CIDR) na sua rede VPC e depois criar uma conexão particular com um fornecedor de serviços.
Antes de começar
Para estabelecer uma conexão particular, atenda aos seguintes pré-requisitos:
- Verifique se o serviço que você está usando suporta o acesso a serviços privados.
- Crie um projeto do Google Cloud ou escolha um atual. Para saber como criar um projeto do Cloud, consulte Como criar e gerenciar projetos.
- Ative a API Service Networking no seu projeto. Ela é necessária para criar uma conexão particular.
- Crie ou escolha uma rede VPC para se conectar à rede do produtor de serviços. As instâncias de VM precisam usar essa rede VPC para se conectarem a serviços por meio de uma conexão particular.
- Instale a CLI gcloud se você quiser executar os exemplos de linhas de comando
gcloud
neste guia.
Permissões
Proprietários de projetos e membros do IAM com o papel de administrador de rede de computação (roles/compute.networkAdmin
) podem criar intervalos de endereços IP alocados e gerenciar conexões particulares.
Para mais informações sobre papéis, leia a documentação sobre papéis de IAM de VPC.
Cenário de VPC compartilhada
Caso você esteja usando a VPC compartilhada, crie o intervalo de IP alocado e a conexão particular no projeto host. Normalmente, o administrador de rede nesse projeto é quem realiza essas tarefas. Depois que o projeto host estiver configurado, as instâncias de VM em projetos de serviço poderão usar a conexão particular.
Cotas e limites
Uma conexão particular é implementada como uma conexão de peering VPC. Por isso, as cotas e os limites que se aplicam ao Peering de redes VPC também se aplicam ao Acesso privado a serviços.
Intervalos de endereços IP alocados para serviços
Antes de criar uma conexão particular, é preciso alocar um intervalo de endereços IPV4 que será usado pela rede VPC do fornecedor de serviços. Isso garante que não haja colisão de endereços IP entre a rede VPC e a rede do fornecedor de serviços. Crie um intervalo alocado para cada fornecedor de serviços.
Quando você aloca um intervalo na sua rede VPC, ele deixa de ser aceito para sub-redes (intervalos primários e secundários) e destinos de rotas estáticas personalizadas.
Não é possível usar intervalos de endereços IPv6 com acesso a serviços particulares.
Tamanho do intervalo de endereços IP
Quando um fornecedor de serviços cria uma sub-rede no seu lado da conexão, um intervalo aberto da alocação é selecionado para o intervalo de endereços IP da sub-rede.
Cada fornecedor de serviços exige um tamanho mínimo de intervalo de endereços IP. Para o Google, o tamanho mínimo é um único bloco /24
(256 endereços), mas o recomendado é um bloco /16
(65.536 endereços).
O tamanho escolhido depende de vários fatores, por exemplo:
- O número de serviços e regiões que você usa.
- Os requisitos dos serviços que você usa.
- O tamanho mínimo do intervalo de endereços IP para os serviços.
- Se o provedor de serviços requer intervalos de IP separados para cada instância do serviço que você cria ou se pode usar o mesmo intervalo de IP para várias instâncias do serviço.
Caso
você não tenha um bloco /16
contíguo, comece com uma alocação menor e
adicione novas opções depois se precisar de mais endereços IP.
Sobre a sub-rede do produtor de serviço
Quando você estabelece uma conexão particular e cria um recurso com um endereço IP privado, o serviço cria uma sub-rede para provisionar o recurso. O serviço seleciona um intervalo de endereços IP disponível no intervalo alocado. Não é possível selecionar ou modificar o intervalo de endereços IP da sub-rede do fornecedor de serviços. A sub-rede só será excluída pelo serviço quando você excluir todos os recursos na sub-rede.
À medida que você provisiona mais recursos, eles são provisionados pelo serviço nas sub-redes regionais criadas anteriormente. Se uma sub-rede estiver cheia, o serviço criará uma nova na região.
Considerações
Antes de alocar um intervalo de endereços IP, considere o seguinte:
- Selecione um intervalo alocado totalmente separado do atual e intervalos de sub-redes futuros, incluindo intervalos de sub-redes de redes conectadas usando o Peering de rede VPC e intervalos de sub-redes spokes conectados ao mesmo hub do Network Connectivity Center.
Selecione um intervalo que não corresponda exatamente ou que contenha os destinos de quaisquer rotas estáticas ou dinâmicas personalizadas.
Quando um produtor de serviços seleciona uma parte não utilizada de um intervalo alocado para usar como candidato a novos recursos, ele exclui todos os destinos de rotas personalizadas que correspondam exatamente ou se ajustem ao intervalo alocado. Quando uma rede VPC contém um intervalo alocado e destinos de rotas personalizadas que correspondam ou se ajustem ao intervalo alocado, parte do intervalo alocado é reduzido. Essa configuração pode levar a erros inesperados de alocação esgotada.
Por exemplo, se você criar um intervalo alocado para
10.0.0.0/16
, o seguinte se aplica:Se existe ou não um destino da rota personalizada para
10.0.0.0/16
criado posteriormente, todo o intervalo10.0.0.0/16
será considerado indisponível. Se um produtor de serviços tentar usar o intervalo alocado, O Google Cloud retornará um erro de alocação esgotada.Se existe ou não um destino de rota personalizada para
10.0.0.0/20
criado posteriormente, a parte10.0.0.0/20
do intervalo alocado10.0.0.0/16
é considerado indisponível. Se um produtor de serviços tentar usar o intervalo alocado e a parte disponível do intervalo alocado não for suficiente para um produtor de serviços, o Google Cloud retornará um erro de alocação esgotada.Se existir ou não um destino de rota personalizada para
10.0.0.0/8
criado posteriormente, isso não afeta a disponibilidade do intervalo alocado10.0.0.0/16
.
Selecione um intervalo que não entre em conflito com as outras necessidades de endereço IP:
- Alguns produtos do Google e de terceiros usam
172.17.0.0/16
para roteamento no sistema operacional convidado. Por exemplo, a rede de ponte padrão do Docker usa esse intervalo. Se você depende de um produto que usa172.17.0.0/16
, não use172.17.0.0/16
em um intervalo alocado para acesso a serviços particulares. - Se você estiver usando uma rede VPC de modo automático, não será possível criar um intervalo alocado que corresponda ou se sobreponha a
10.128.0.0/9
. O Google usa o intervalo10.128.0.0/9
para sub-redes criadas automaticamente, incluindo aquelas em regiões futuras.
- Alguns produtos do Google e de terceiros usam
Selecione um bloco CIDR grande o suficiente para atender às suas necessidades atuais e futuras. Se você descobrir depois que o intervalo não é suficiente, amplie-o, se possível. Embora você possa atribuir várias alocações a um único fornecedor de serviços, o Google impõe uma cota sobre o número de intervalos de endereços IP que podem ser alocados, mas não sobre o tamanho (máscara de rede) de cada um.
Se você adicionar mais um intervalo alocado a uma conexão particular, ele expandirá o intervalo de endereços IP disponíveis para o produtor de serviços ao criar novos recursos para qualquer serviço que ele fornecer. Não é possível reservar um intervalo alocado específico em uma conexão particular para uso de um determinado serviço.
Não reutilize o mesmo intervalo alocado para vários produtores de serviço. Embora seja possível, isso pode levar à sobreposição de endereços IP. Cada fornecedor de serviços tem visibilidade apenas sobre a própria rede e não sabe quais endereços IP são usados por outros fornecedores.
Só é possível atribuir um bloco CIDR a um intervalo alocado ao criar a alocação. Se você ampliar o intervalo de endereços IP, não poderá adicionar mais blocos a uma alocação. Em vez disso, crie outra alocação ou recrie a atual usando um bloco maior que englobe os intervalos novos e os atuais.
Se você mesmo criar a alocação em vez de deixar que o Google faça isso (por meio do Cloud SQL, por exemplo), poderá usar a mesma convenção de nomenclatura para indicar a outros usuários ou serviços do Google que já existe uma alocação para o Google. Quando um serviço do Google aloca um intervalo em seu nome, o serviço usa o seguinte formato para nomear a alocação:
google-managed-services-[your network name]
. Se essa alocação já existir, os serviços do Google a utilizarão, em vez de criar outra.Observação: como uma conexão particular é implementada como uma conexão de Peering de redes VPC, os comportamentos e as restrições de conexões de peering também se aplicam a conexões particulares, como limites do Peering de redes VPC.
Se você planeja alterar o endereço IP interno de uma instância de serviço atual que usa a VPC, considere se essa ação pode causar interrupção, por exemplo, exigindo a exclusão e a recriação da instância de serviço. Para mais informações, consulte a documentação do serviço gerenciado associado. Por exemplo, se você estiver usando o Cloud SQL, consulte Alterar o endereço IP particular de uma instância atual do Cloud SQL.
Criar uma alocação de IP
Nas etapas a seguir, você aprende a criar um intervalo de endereços IP alocado.
Console
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que se conectará a um produtor de serviços.
Selecione a guia Acesso a serviços particulares.
Na guia Acesso a serviços particulares, selecione Intervalos de IP alocados para serviços.
Clique em Alocar intervalo de IP.
Insira um Nome e uma Descrição para o intervalo alocado.
Especifique um intervalo de IP para a alocação:
- Para especificar um intervalo de endereços IP, selecione Personalizado e insira um bloco CIDR, como
192.168.0.0/16
. - Para especificar o tamanho de um prefixo e permitir que o Google selecione um intervalo disponível, selecione Automático e insira um tamanho de prefixo, como
16
.
- Para especificar um intervalo de endereços IP, selecione Personalizado e insira um bloco CIDR, como
Clique em Alocar para criar o intervalo alocado.
gcloud
Para criar um intervalo alocado na sua rede VPC, use o comando addresses create
.
Para especificar um intervalo de endereços e um tamanho de prefixo (máscara de sub-rede), use os sinalizadores
addresses
eprefix-length
. Por exemplo, para alocar o bloco CIDR192.168.0.0/16
, especifique192.168.0.0
como endereço e16
como tamanho de prefixo.gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
Para especificar apenas um tamanho de prefixo (máscara de sub-rede), basta usar a sinalização
prefix-length
. Quando você omitir o intervalo de endereços, o Google Cloud selecionará automaticamente um intervalo de endereços não utilizado na sua rede VPC. No exemplo a seguir, é selecionado um intervalo de endereços IP não utilizado com um tamanho de prefixo de16
bits.gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
Substitua:
RESERVED_RANGE_NAME
: é um nome para o intervalo alocado, comomy-allocated-range
.DESCRIPTION
: é uma descrição para o intervalo, comoallocated for my-service
.VPC_NETWORK
: o nome da rede VPC, comomy-vpc-network
.
O exemplo a seguir cria uma conexão privada com o Google para que as instâncias de VM na rede VPC my-network
possam usar serviços privados para acessar serviços do Google compatíveis.
gcloud compute addresses create google-managed-services-my-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="peering range for Google" \ --network=my-network
Terraform
Para criar um intervalo alocado na sua rede VPC, use o recurso google_compute_global_address
.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Se você receber um erro sobre a permissão compute.globalAddresses.list
para
o projeto, consulte Permissões da conta de serviço.
Listar intervalos de endereços IP alocados
Para listar intervalos de endereços IP alocados, use o comando addresses list
.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Crie uma conexão privada
Depois de criar um intervalo alocado, crie uma conexão particular com um fornecedor de serviços. A conexão particular estabelece uma conexão com o Peering de redes VPC entre sua rede VPC e a rede do fornecedor de serviços.
Conexões particulares são um relacionamento um para um entre a rede VPC e o fornecedor de serviços. Se um único fornecedor de serviços oferecer vários serviços, você precisará apenas de uma conexão privada para todos eles.
Se um único fornecedor de serviços oferecer vários serviços e você quiser controlar quais intervalos alocados serão usados para diferentes recursos de serviço, poderá usar várias redes VPC cada uma com as próprias conexões particulares. Essa configuração permite selecionar uma rede específica ao criar um novo recurso de serviço gerenciado para garantir que os intervalos alocados associados sejam usados para o novo recurso.
Caso você se conecte a vários fornecedores de serviços, use uma alocação exclusiva para cada. Essa prática o ajuda a gerenciar suas configurações de rede, como regras de firewall e rotas, para cada fornecedor de serviços.
Console
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que se conectará a um produtor de serviços.
Selecione a guia Acesso a serviços particulares.
Na guia Acesso a serviços particulares, selecione a guia Conexões privadas com serviços.
Clique em Criar conexão para criar uma conexão particular entre sua rede e um produtor de serviços.
Em Alocação atribuída, selecione um ou mais intervalos alocados que não estejam sendo usados por outros fornecedores de serviços.
Clique em Conectar para criar a conexão.
gcloud
Use o comando
vpc-peerings connect
.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK
Substitua:
RESERVED_RANGE_NAME
: o nome de um ou mais intervalos alocados.VPC_NETWORK
: o nome da rede VPC.
O comando inicia uma operação de longa duração, que retorna um nome de operação.
Para verificar se a operação foi bem-sucedida, use o comando
vpc-peerings operations describe
.gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
Substitua
OPERATION_NAME
pelo nome da operação retornado na etapa anterior.
Você pode especificar mais de um intervalo alocado ao criar uma conexão privada. Por exemplo, se um intervalo tiver sido esgotado, será possível atribuir mais intervalos alocados. O serviço usará endereços IP de todos os intervalos fornecidos, na ordem que você especificou.
Terraform
Para criar uma conexão particular, use o recurso google_service_networking_connection
.
Listar conexões particulares
Depois de criar uma conexão particular, liste-a para verificar se ela existe. A lista também mostra a lista de intervalos alocados associados a cada conexão. Por exemplo, se você não se lembrar qual intervalo alocado atribuiu a uma conexão, consulte a lista para descobrir.
Console
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que contém as conexões.
Selecione a guia Acesso a serviços particulares.
Na guia Acesso a serviços particulares, selecione a guia Conexões privadas com os serviços para visualizar todas as conexões de rede privadas.
gcloud
Use o
comando vpc-peerings list
.
gcloud services vpc-peerings list \ --network=VPC_NETWORK
Substitua VPC_NETWORK
pelo nome da rede VPC.
Modificar uma conexão particular
Nas conexões particulares, é possível adicionar ou remover intervalos de endereços IP alocados sem interromper o tráfego. Por exemplo, ao escalonar, é possível adicionar um intervalo alocado caso o atual esteja perto de esgotar.
Não é possível remover intervalos de IP alocados usando o Console do Google Cloud. Se você quiser
remover um intervalo alocado, use as instruções do gcloud
para modificar a
conexão. Quando você remove um intervalo de uma conexão particular, estas condições são
aplicadas:
O intervalo alocado não está mais associado à conexão particular, mas não foi excluído.
- Se um intervalo removido não estiver mais em uso, exclua a alocação.
Os recursos do produtor de serviços existentes podem continuar usando o intervalo removido.
O acesso a serviços privados não usará os intervalos removidos para alocar novas sub-redes.
Console
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que contém as conexões.
Selecione a guia Acesso a serviços particulares.
Na guia Acesso a serviços particulares, selecione a guia Conexões privadas com os serviços para visualizar todas as conexões de rede privadas.
Clique no nome de uma conexão na lista.
No menu suspenso Alocação atribuída, selecione os intervalos que você quer alocar.
Clique em OK.
gcloud
Para adicionar ou remover intervalos de endereços IP alocados e atribuídos em uma conexão particular já existente, use o comando vpc-peerings update
.
gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ [--force]
Substitua:
RESERVED_RANGE_NAME
: uma lista de um ou mais nomes de intervalos alocados a serem atribuídos à conexão particular.RESERVED_RANGE_NAME
substitui a lista anterior de intervalos alocados. Se você omitir um intervalo que estava associado a essa conexão particular, o intervalo será removido da conexão. Use a opção--force
para remover um intervalo.VPC_NETWORK
: o nome da rede VPC.
Excluir um intervalo de endereços IP alocado
Antes de excluir um intervalo de endereços IP, verifique se ele está sendo usado por uma conexão particular.
Se o intervalo de endereços IP alocado estiver em uso, primeiro modifique a conexão particular para remover o intervalo. Em seguida, exclua o intervalo de endereços IP alocado.
Se você excluir um endereço IP alocado que está em uso e não modificar a conexão particular, estes casos serão aplicados:
As conexões atuais permanecem ativas, mas nada impede que sua rede VPC use endereços IP que se sobreponham à rede do produtor de serviços.
Se você excluir o único intervalo de endereços IP alocado associado a uma conexão particular, o serviço não poderá criar novas sub-redes porque não haverá intervalo de endereços IP alocado para seleção.
Se você criar mais tarde um intervalo de endereços IP alocado que corresponda ou se sobreponha ao intervalo excluído, a adição do intervalo a uma conexão particular falhará.
Para evitar esses problemas, sempre modifique suas conexões particulares ao excluir um intervalo de endereços IP alocado em uso.
Console
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que contém as alocações que você quer excluir.
Selecione a guia Acesso a serviços particulares.
Na guia Acesso a serviços particulares, selecione Intervalos de IP alocados para serviços.
Selecione a alocação que você quer excluir.
Clique em Liberar para retornar o intervalo de endereços IP alocado ao pool de endereços IP internos disponíveis da rede.
Se o intervalo de endereços IP alocado ainda estiver atribuído a uma conexão existente, será necessário confirmar mais uma vez antes de liberar a alocação.
Clique em Liberar novamente para confirmar a exclusão.
gcloud
Para excluir a alocação, especifique o nome dela.
gcloud compute addresses delete NAME \ --global
Substitua NAME
pelo nome do intervalo alocado que você quer excluir.
Excluir uma conexão privada
Antes de excluir uma conexão particular, é preciso excluir todas as instâncias de serviço que você acessa por meio da conexão. Por exemplo, se você quiser excluir uma conexão particular usada para acessar o Cloud SQL, primeiro exclua as instâncias do Cloud SQL que usam essa conexão. Depois de excluir as instâncias de serviço, os recursos do produtor de serviço são excluídos, mas essa exclusão pode não acontecer imediatamente. Alguns produtores de serviços atrasam a exclusão até que um período de espera tenha passado. Não é possível excluir a conexão particular durante o período de espera. Aguarde até que os recursos do produtor de serviços sejam excluídos antes de excluir a conexão.
Por exemplo, se você excluir uma instância do Cloud SQL, receberá uma resposta bem-sucedida, mas o serviço aguardará quatro dias para excluir os recursos do produtor de serviço. O período de espera significa que, se você mudar de ideia sobre a exclusão do serviço, poderá solicitar a restauração dos recursos. Se você tentar excluir a conexão durante o período de espera, a exclusão falhará com uma mensagem informando que os recursos ainda estão sendo usados pelo fornecedor do serviço.
Console
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que contém as conexões que você quer excluir.
Selecione a guia Acesso a serviços particulares.
Na guia Acesso a serviços particulares, selecione a guia Conexão privada aos serviços.
Escolha a conexão particular a ser excluída.
Clique em Excluir.
Clique em Excluir novamente para confirmar a ação.
gcloud
Para excluir a conexão de peering de rede VPC de uma conexão particular, use o comando vpc-peerings delete
.
gcloud services vpc-peerings delete \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK
Substitua VPC_NETWORK
pelo nome da rede VPC.
Compartilhar zonas particulares de DNS com produtores de serviço
As zonas particulares do Cloud DNS são particulares na rede VPC. Se você quiser permitir que uma rede de produtores de serviços resolva nomes de sua zona particular, configure o peering de DNS entre as duas redes.
Ao configurar o peering de DNS, você fornece uma rede VPC e um sufixo DNS. Se o fornecedor de serviços precisar resolver um endereço com esse sufixo DNS, o produtor de serviço encaminhará essas consultas para sua rede VPC para que sejam resolvidos.
Esses serviços compatíveis são compatíveis com peering de DNS, com exceção do Cloud SQL.
Se você quiser ativar o peering de DNS, ative a API Cloud DNS no seu projeto.
Peering de DNS com um produtor de serviço
gcloud
Para configurar o peering de DNS entre a rede VPC e a rede do provedor de serviços, use o comando peered-dns-domains create
.
gcloud services peered-dns-domains create PEERING_NAME \ --network=VPC_NETWORK \ --dns-suffix=DNS_SUFFIX
Substitua:
PEERING_NAME
: um nome para essa configuração de peering de DNS.VPC_NETWORK
: o nome da rede VPC conectada ao produtor de serviços que está usando o acesso a serviços privados.DNS_SUFFIX
: o sufixo de DNS que você quer parear com o produtor de serviço. Você precisa fornecer um nome de domínio DNS completo, incluindo o ponto. Por exemplo,example.com.
é um sufixo DNS válido.
Terraform
Para configurar o peering de DNS entre a rede VPC e a rede do provedor de serviços, use o recurso google_service_networking_peered_dns_domain
.
Listar configurações de peering de DNS
gcloud
Use o
comando peered-dns-domains list
.
gcloud services peered-dns-domains list \ --network=VPC_NETWORK
Substitua VPC_NETWORK
pelo nome da rede
VPC.
Excluir uma configuração de peering de DNS
gcloud
Use o
comando peered-dns-domains delete
.
gcloud services peered-dns-domains delete PEERING_NAME \ --network=VPC_NETWORK
Substitua:
PEERING_NAME
: o nome da configuração de peering de DNS.VPC_NETWORK
: o nome da rede VPC.
Solução de problemas
Quanto da minha alocação está sendo usada?
Ao criar uma conexão particular com um fornecedor de serviços, você aloca um intervalo de endereços IP para o uso do provedor. Se você usar vários serviços de um fornecedor, cada serviço reservará uma parte dos endereços IP desse intervalo alocado. É possível verificar quais serviços usam quais endereços IP, por exemplo, para ver quais serviços estão usando blocos grandes de endereços IP e evitar o esgotamento dos endereços.
Para ver a proporção de alocação dos seus intervalos alocados, use o Network Analyzer. Para mais informações, consulte Resumo de utilização de endereços IP para acesso a serviços particulares.
Alternativamente, para ver qual serviço está usando um determinado intervalo de endereços IP, siga estas etapas:
- Liste suas conexões particulares.
- Encontre o nome da conexão de peering que conecta você ao fornecedor de serviços relevante.
- Liste as rotas para sua rede VPC.
- Encontre as rotas com um próximo salto que corresponda ao nome da conexão de peering. O intervalo de destino das rotas indica quais endereços IP são usados por cada serviço.
Esgotamento do intervalo de endereços IP
Se você esgotar o espaço de endereços IP alocado de uma determinada conexão particular, o Google Cloud retornará este erro: Failed to create subnetwork.
Couldn't find free blocks in allocated IP ranges.
Esse erro pode aparecer porque o intervalo alocado não é suficiente para o uso ou porque uma rota estática ou dinâmica personalizada impede que o intervalo alocado seja totalmente utilizados. Para mais informações sobre considerações de roteamento, consulte Considerações.
É possível expandir a alocação existente ou adicionar novas. A alocação expandida precisa ser um intervalo contíguo de endereços IP que inclua o intervalo atual. A expansão de uma alocação é recomendada porque não há limite para o tamanho de uma alocação, mas há para o número de alocações que podem ser criadas.
Para expandir uma alocação atual, siga estas etapas:
- Liste suas conexões particulares e registre o nome do intervalo alocado que você precisa expandir.
- Exclua o intervalo alocado existente.
- Crie um novo intervalo alocado usando o mesmo nome que o intervalo excluído. Especifique um intervalo de endereços IP que inclua aquele que foi excluído. Dessa forma, os recursos com peering que estejam usando o intervalo alocado antigo poderão continuar utilizando os mesmos endereços IP sem colidir com os recursos da sua rede VPC. Por exemplo, se o intervalo alocado anterior for
192.168.0.0/20
, crie um novo intervalo alocado como192.168.0.0/16
.
Para adicionar intervalos alocados a uma conexão particular, siga estas etapas:
- Crie um novo intervalo alocado. Ele não precisa ser contíguo aos intervalos alocados atuais.
- Adicione o intervalo alocado à conexão particular.
Hosts locais não podem se comunicar com a rede do provedor de serviços
A rede do fornecedor de serviços pode não ter as rotas corretas para direcionar o tráfego para sua rede local. Por padrão, a rede do produtor do serviço só aprende as rotas de sub-rede da sua rede VPC. Portanto, qualquer solicitação que não seja de um intervalo de IP de sub-rede será eliminada pelo produtor do serviço.
Para configurar a conectividade entre os hosts locais e a rede do produtor de serviços, faça isto:
Na rede VPC, atualize a conexão de peering para exportar rotas personalizadas para a rede do fornecedor de serviços. A exportação de rotas envia para a rede do produtor do serviço todas as rotas dinâmicas e estáticas qualificadas que estão na sua rede VPC, como rotas para sua rede local. A rede do produtor do serviço as importa automaticamente e pode enviar o tráfego de volta para sua rede local por meio da rede VPC.
Verifique se os prefixos que incluem os intervalos de IP alocados para o acesso a serviços particulares estão sendo divulgados corretamente para sua rede local. Para entender como divulgar prefixos IPv4 personalizados usando o Cloud Router, consulte Rotas divulgadas.
Verifique se o anexo da VLAN ou o túnel do Cloud VPN termina na mesma rede VPC (ou rede VPC compartilhada) que a conexão particular, porque o peering de rede VPC não oferece roteamento transitivo.
Permissões de conta de serviço
Se você vir um erro sobre a permissão compute.globalAddresses.list
de um
projeto ao criar uma alocação de IP ou ocorrerem erros como
Error 400: Precondition check failed
ao criar, listar ou modificar
conexões particulares, pode haver um problema com papéis do Identity and Access Management (IAM)
para sua conta de serviço da API Service Networking.
Essa conta de serviço é criada automaticamente depois que você ativa a API Service
Networking. Pode levar algum tempo para que a conta seja provisionada e exibida
na página do IAM.
Console
Para que a conta de serviço tenha o papel correto do IAM, faça o seguinte:
No console do Google Cloud, abra a página IAM.
Marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.
Na coluna Nome, encontre o principal Agente de rede de serviço e clique em
Editar principal na linha correspondente.No campo Papel, verifique se o papel Agente de rede de serviço (
roles/servicenetworking.serviceAgent
) está presente.Se o papel Agente de rede de serviço não estiver presente, clique em
Adicionar papel ou Adicionar outro papelClique em Selecionar papel.
Na caixa de texto Filtro, insira
Service Networking Service Agent
.Selecione Agente de rede de serviço na lista e clique em Salvar.
gcloud
Para criar uma conta de serviço da API Service Networking, use o
comando add-iam-policy-binding
.
gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \ --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \ --role=roles/servicenetworking.serviceAgent
Substitua:
HOST_PROJECT_NAME
: o nome do projeto host.HOST_PROJECT_NUMBER
: o número do projeto host.
A rota de sub-rede de peering persiste após a atualização da alocação de IP
Depois de atualizar o intervalo de endereços IP alocado de uma conexão de serviços particulares, a antiga rota de sub-rede de peering ainda poderá aparecer na tabela de roteamento da rede VPC. A rota persiste porque o intervalo de endereços IP ainda está em uso.
Para resolver esse problema, faça o seguinte:
- Se você excluir uma alocação de IP, também precisará atualizar a conexão particular.
- Exclua ou atualize os recursos que usam o intervalo de endereços IP antigo.
A rota de sub-rede de peering é removida automaticamente depois que o intervalo de endereços IP não está mais em uso. Pode haver um atraso entre a exclusão do recurso e a exclusão total do recurso pelo produtor do serviço. Por exemplo, se o intervalo de endereços IP antigo estiver sendo usado por uma instância do Cloud SQL, pode levar até quatro dias para o produtor de serviço excluir totalmente sua instância. A rota de sub-rede de peering é removida após a conclusão da exclusão.