Sobre serviços publicados
Neste documento, apresentamos uma visão geral de como usar o Private Service Connect para disponibilizar um serviço para os consumidores de serviço.
Como produtor de serviço, use o Private Service Connect para publicar serviços usando endereços IP internos na rede VPC. Os serviços publicados podem ser acessados pelos consumidores de serviços que usam endereços IP internos nas redes VPC.
Para disponibilizar um serviço aos consumidores, crie uma ou mais sub-redes dedicadas. Em seguida, crie um anexo de serviço que se refere a essas sub-redes. O anexo de serviço pode ter diferentes preferências de conexão.
Tipos de consumidores de serviços
Dois tipos de consumidores podem se conectar a um serviço do Private Service Connect:
Endpoints têm base em uma regra de encaminhamento.

Um endpoint permite que os consumidores de serviço enviem tráfego da rede VPC do consumidor para serviços na rede VPC do produtor de serviço (clique para ampliar).
Back-ends têm base em um balanceador de carga.

Um back-end que usa um balanceador de carga de aplicativo externo global permite que consumidores de serviço com acesso à Internet enviem tráfego para serviços na rede VPC do produtor de serviço (clique para ampliar).
Sub-redes NAT
Os anexos de serviço do Private Service Connect são configurados com uma ou mais sub-redes NAT, também conhecidas como sub-redes do Private Service Connect. Os pacotes da rede VPC do consumidor são convertidos usando a NAT de origem (SNAT) para que os endereços IP de origem sejam convertidos em endereços IP de origem da sub-rede NAT na rede VPC do produtor.
Os anexos de serviço podem ter várias sub-redes NAT. É possível adicionar sub-redes NAT extras ao anexo de serviço a qualquer momento sem interromper o tráfego.
Um anexo de serviço pode ter várias sub-redes NAT configuradas, mas uma sub-rede NAT não pode ser usada em mais de um anexo de serviço.
Não é possível usar sub-redes NAT do Private Service Connect para recursos como instâncias de máquina virtual (VM) ou regras de encaminhamento. As sub-redes são usadas apenas para fornecer endereços IP para SNAT de conexões de consumidor recebidas.
Dimensionamento de sub-rede NAT
O tamanho da sub-rede determina quantos consumidores podem se conectar ao seu serviço. Se todos os endereços IP na sub-rede NAT forem consumidos, qualquer conexão adicional do Private Service Connect vai falhar. Considere o seguinte:
Um endereço IP é consumido da sub-rede NAT para cada endpoint ou back-end conectado ao anexo de serviço.
O número de conexões TCP ou UDP, clientes ou redes VPC de consumidor não afeta o consumo de endereços IP da sub-rede NAT
Se a propagação de conexão for usada pelos consumidores, um endereço IP adicional será consumido para cada spoke VPC em que as conexões são propagadas, para cada endpoint.
É possível controlar quantas conexões propagadas são criadas configurando o limite de conexão propagada.
Ao estimar quantos endereços IP você precisa para endpoints e back-ends, considere todos os serviços multilocatários ou consumidores que usam acesso multiponto para Private Service Connect.
Monitoramento de sub-rede NAT
Para ajudar a garantir que as conexões do Private Service Connect não falhem devido a endereços IP indisponíveis em uma sub-rede NAT, recomendamos estas ações:
- Monitore a métrica do anexo de serviço
private_service_connect/producer/used_nat_ip_addresses
. Verifique se o número de endereços IP NAT usados não excede a capacidade das sub-redes NAT de um anexo de serviço. - Monitore o status das conexões do anexo de serviço. Se uma conexão tiver o status Requer atenção, talvez não haja mais endereços IP disponíveis nas sub-redes NAT do anexo.
- Para serviços com multilocatário, é possível usar Limites de conexão para garantir que um único consumidor não esgote a capacidade de sub-redes NAT de um anexo de serviço.
Se necessário, sub-redes NAT podem ser adicionadas ao anexo de serviço a qualquer momento sem interromper o tráfego.
Especificações NAT
Considere as seguintes características da NAT do Private Service Connect ao projetar o serviço que você publicará:
O tempo limite de inatividade do mapeamento UDP é de 30 segundos e não pode ser configurado.
O tempo limite de inatividade da conexão estabelecida TCP é de 20 minutos e não pode ser configurado.
Para evitar problemas de tempo limite das conexões de cliente, siga um destes procedimentos:
Garanta que todas as conexões durem menos de 20 minutos.
Garanta que parte do tráfego seja enviado mais de uma vez a cada 20 minutos. É possível usar um sinal de funcionamento ou sinal de atividade no seu aplicativo ou sinais de atividade TCP. Por exemplo, é possível configurar um sinal de atividade no proxy de destino de um balanceador de carga de aplicativo interno regional ou um balanceador de carga de rede de proxy interno regional.
O tempo limite de inatividade da conexão TCP transitiva é de 30 segundos e não pode ser configurado.
Há um atraso de dois minutos antes que qualquer tupla de cinco (endereço IP de origem da sub-rede do Private Service Connect e porta de origem mais o protocolo de destino, endereço IP e porta de destino) possa ser reutilizada.
A SNAT do Private Service Connect não é compatível com fragmentos de IP.
Número máximo de conexões
Uma única VM de produtor aceita no máximo 64.512 conexões TCP e 64.512 conexões UDP de um único consumidor do Private Service Connect (endpoint ou back-end). Não há limite para o número total de conexões TCP e UDP que um endpoint do Private Service Connect pode receber de maneira agregada em todos os back-ends do produtor. As VMs de cliente podem usar todas as 65.536 portas de origem ao iniciar conexões TCP ou UDP para um endpoint do Private Service Connect. Toda a conversão de endereços de rede é feita localmente no host do produtor, o que não requer um pool de portas NAT alocado centralmente.
Anexos de serviço
Os produtores de serviços expõem o serviço deles utilizando um anexo.
- Para expor um serviço, um produtor de serviços cria um anexo que
se refere a um serviço de destino. O serviço de destino pode ser um dos seguintes:
- A regra de encaminhamento de um balanceador de carga
- Uma instância do proxy seguro da Web
O URI do anexo de serviço tem este formato:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
É possível associar um anexo de serviço a um único serviço de destino. Não é possível associar vários anexos de serviço a um determinado serviço de destino.
Preferências de conexão
Cada anexo de serviço tem uma preferência de conexão que especifica se as solicitações de conexão são aceitas automaticamente. Há três opções:
- Aceitar automaticamente todas as conexões. O anexo de serviço aceita automaticamente todas as solicitações de conexão de entrada de qualquer consumidor. A aceitação automática pode ser substituída por uma política da organização que bloqueie as conexões de entrada.
- Aceitar as conexões das redes selecionadas. O anexo de serviço só aceitará solicitações de conexão de entrada se a rede VPC do consumidor estiver na lista de aceitação do consumidor do anexo de serviço.
- Aceitar conexões para os projetos selecionados. O anexo de serviço só aceitará solicitações de conexão de entrada se o projeto de consumidor estiver na lista de aceitação do consumidor de anexo de serviço.
Recomendamos que você aceite conexões para redes ou projetos selecionados. A aceitação automática de todas as conexões pode ser apropriada se você controla o acesso do consumidor por outros meios e quer ativar o acesso permissivo ao serviço.
Status da conexão
Os anexos de serviço têm status de conexão que descrevem o estado das respectivas conexões. Para mais informações, consulte Status da conexão.
Listas de aceitação e rejeição do consumidor
Listas de aceitação do consumidor e Listas de rejeição do consumidor são um recurso de segurança dos anexos de serviço. As listas de aceitação e rejeição permitem que os produtores de serviços especifiquem quais consumidores podem estabelecer conexões do Private Service Connect com os serviços deles. As listas de aceitação do consumidor especificam se uma conexão é aceita, e as listas de rejeição do consumidor especificam se uma conexão é rejeitada. Ambas as listas permitem especificar consumidores pela rede VPC ou pelo projeto do recurso de conexão. Se você adicionar um projeto ou uma rede à lista de aceitação e à lista de proibições, as solicitações de conexão desse projeto ou rede serão rejeitadas. Não é possível especificar consumidores por pasta.
As listas de aceitação e de rejeição do consumidor permitem que você especifique projetos ou redes VPC, mas não ambos ao mesmo tempo. É possível alterar uma lista de um tipo para outro sem interromper as conexões, mas você precisa fazer a alteração em uma única atualização. Caso contrário, algumas conexões poderão mudar temporariamente para o estado pendente.
As listas de consumidores controlam se um endpoint pode se conectar a um serviço publicado, mas não controlam quem pode enviar solicitações a esse endpoint. Por exemplo, digamos que um consumidor tenha uma
rede VPC compartilhada
com dois projetos de serviço anexados. Se um serviço publicado tiver
service-project1
na lista de aceitação do consumidor e service-project2
na
lista de rejeição do consumidor, o seguinte se aplica:
-
Um consumidor em
service-project1
pode criar um endpoint que se conecta ao serviço publicado. -
Um consumidor em
service-project2
não pode criar um endpoint que se conecte ao serviço publicado. -
Um cliente em
service-project2
pode enviar solicitações para o endpoint emservice-project1
, se não houver regras ou políticas de firewall impedindo esse tráfego.
Para informações sobre como as listas de aceitação do consumidor interagem com as políticas da organização, consulte Interação entre listas de aceitação do consumidor e políticas da organização.
Limites de lista de aceitação do consumidor
As listas de aceitação do consumidor têm limites de conexão. Esses limites definem o número total de conexões de endpoint do Private Service Connect que um anexo de serviço pode aceitar do projeto de consumidor especificado ou da rede VPC.
Os produtores podem usar esses limites de conexões para evitar que consumidores individuais consumam endereços IP ou cotas de recursos na rede VPC do produtor. Cada conexão do Private Service Connect aceita é subtraída do limite configurado para um projeto de consumidor ou rede VPC. Os limites são definidos ao criar ou atualizar listas de aceitação do consumidor. É possível ver as conexões de um anexo de serviço ao descrever um anexo de serviço.
Por exemplo, considere um caso em que um anexo de serviço tenha uma lista de aceitação do consumidor que inclua project-1
e project-2
, ambos com um limite de uma conexão. O projeto project-1
solicita duas conexões, project-2
solicita uma conexão e project-3
solicita uma conexão. Como project-1
tem um limite de uma conexão, a primeira é aceita e a segunda permanece pendente.
A conexão de project-2
é aceita, e a conexão de project-3
permanece pendente. A segunda conexão de project-1
pode ser aceita ao aumentar o limite de project-1
. Se
project-3
for adicionado à lista de aceitação do consumidor, essa conexão mudará de
pendente para aceita.
Reconciliação de conexão
A reconciliação de conexão determina se as atualizações nas listas de aceitação ou rejeição de um anexo de serviço podem afetar as conexões atuais do Private Service Connect. Se a reconciliação de conexão estiver ativada, a atualização de listas de aceitação ou rejeição poderá encerrar as conexões atuais. As conexões que foram rejeitadas anteriormente podem se tornar aceitas. Se a reconciliação de conexão estiver desativada, a atualização das listas de aceitação ou rejeição afetará apenas as conexões novas e pendentes.
Por exemplo, considere um anexo de serviço que tenha várias conexões aceitas de Project-A
. Project-A
está na lista de aceitação do anexo de serviço. O anexo de serviço é atualizado removendo Project-A
da
lista de aceitação.
Se a reconciliação de conexão estiver ativada, todas as conexões existentes de Project-A
farão a transição para PENDING
, o que encerra a conectividade de rede entre as duas redes VPC e interrompe imediatamente o tráfego de rede.
Se a reconciliação de conexão estiver desativada, as conexões atuais de
Project-A
não serão afetadas. O tráfego de rede ainda pode fluir entre as conexões atuais do Private Service Connect. No entanto, novas conexões do Private Service Connect não são permitidas.
Para informações sobre como configurar a reconciliação de conexão para novos anexos de serviço, consulte Publicar um serviço com aprovação explícita.
Para informações sobre como configurar a reconciliação de conexão para anexos de serviço atuais, consulte Configurar a reconciliação de conexão.
Configuração do DNS
Para informações sobre a configuração de DNS para serviços publicados e endpoints que se conectam a serviços publicados, consulte Configuração de DNS para serviços.
Conversão de versão de IP
Para endpoints do Private Service Connect que se conectam a serviços publicados (anexos de serviço), a versão de IP do endereço IP da regra de encaminhamento do consumidor determina a versão de IP do endpoint e o tráfego que sai dele. O endereço IP pode vir de uma sub-rede somente IPv4, somente IPv6 (Pré-lançamento) ou de pilha dupla. A versão IP do endpoint pode ser IPv4 ou IPv6, mas não as duas opções.
Para serviços publicados, a versão do IP do anexo de serviço é determinada pelo endereço IP da regra de encaminhamento ou da instância do proxy da Web seguro associada. Esse endereço IP precisa ser compatível com o tipo de pilha da sub-rede NAT do anexo de serviço. A sub-rede NAT pode ser somente IPv4 ou de pilha dupla. Se a sub-rede NAT for de pilha dupla, será usado o intervalo de endereços IPv4 ou IPv6, mas não ambos. O Private Service Connect não oferece suporte ao uso de uma sub-rede somente IPv6 (prévia) para a sub-rede NAT.
O Private Service Connect não oferece suporte à conexão de um endpoint IPv4 com um anexo de serviço IPv6. Nesse caso, a criação do endpoint falha e exibe a seguinte mensagem de erro:
Private Service Connect forwarding rule with an IPv4 address
cannot target an IPv6 service attachment.
As seguintes combinações são possíveis para as configurações compatíveis:
- Endpoint IPv4 para anexo de serviço IPv4
- Endpoint IPv6 para anexo de serviço IPv6
-
Endpoint IPv6 para anexo de serviço IPv4
Nessa configuração, o Private Service Connect faz a conversão automaticamente entre as duas versões de IP.
Para conexões entre back-ends e anexos de serviço do Private Service Connect, as regras de encaminhamento do consumidor e do produtor precisam usar IPv4.
Recursos e compatibilidade
indica "sem" indica que um recurso não tem suporte.
Suporte para endpoints
Esta seção resume as opções de configuração disponíveis para consumidores e produtores ao usar endpoints para acessar serviços de publicação.
Configuração do consumidor
Esta tabela resume as opções de configuração e os recursos compatíveis dos endpoints que acessam serviços publicados com base no tipo de produtor de destino.
Configuração do produtor
Veja nesta tabela um resumo das opções de configuração e dos recursos compatíveis dos serviços publicados que são acessados pelos endpoints.
Tipo de produtor | Configuração do produtor (serviço publicado) | |||
---|---|---|---|---|
Back-ends de produtor compatíveis | Protocolo PROXY (somente tráfego TCP) | Versão do IP | ||
Balanceador de carga de aplicativo interno entre regiões (pré-lançamento) |
|
|
||
Balanceador de carga de rede de passagem interna |
|
|
||
Encaminhamento de protocolo interno (instância de destino) |
|
|
||
Serviços de mapeamento de portas |
|
|
||
Balanceador de carga de aplicativo interno regional |
|
|
||
Balanceador de carga de rede de proxy interno regional |
|
|
||
Proxy seguro da Web |
|
|
Diferentes balanceadores de carga oferecem suporte a diversas configurações de porta; alguns balanceadores de carga aceitam uma única porta, alguns aceitam uma variedade de portas e alguns aceitam todas as portas. Para mais informações, consulte Especificações de porta.
VPC compartilhada
Os administradores de projetos de serviço podem criar anexos de serviço em projetos de serviço de VPC compartilhada que se conectam a recursos em redes VPC compartilhadas.
A configuração é a mesma de um anexo de serviço normal, exceto para o seguinte:
- A regra de encaminhamento do balanceador de carga do produtor está associada a um endereço IP da rede VPC compartilhada. É preciso compartilhar a sub-rede da regra de encaminhamento com o projeto de serviço.
- O anexo de serviço usa uma sub-rede do Private Service Connect da rede VPC compartilhada. Ela precisa ser compartilhada com o projeto de serviço.
Logging
É possível ativar os registros de fluxo de VPC nas sub-redes que contêm as VMs de back-end. Os registros mostram fluxos entre as VMs de back-end e os endereços IP na sub-rede do Private Service Connect.
VPC Service Controls
O VPC Service Controls e o Private Service Connect são compatíveis entre si. Se a rede VPC em que o endpoint do Private Service Connect estiver implantado estiver em um perímetro do VPC Service Controls, esse endpoint faz parte do mesmo perímetro. Todos os Serviços com suporte com o VPC Service Controls que são acessados por meio do endpoint estão sujeitos às políticas desse perímetro do VPC Service Controls.
Quando você cria um endpoint, as chamadas de API do plano de controle são feitas entre os projetos do consumidor e do produtor para estabelecer uma conexão do Private Service Connect. Estabelecer uma conexão do Private Service Connect entre projetos do consumidor e do produtor que não estão no mesmo perímetro do VPC Service Controls não exige autorização explícita com políticas de saída. A comunicação com os Serviços com suporte com o VPC Service Controls por meio do endpoint é protegida pelo perímetro do VPC Service Controls.
Como visualizar as informações de conexão do consumidor
Por padrão, o Private Service Connect converte o endereço IP de origem do consumidor para um endereço em uma das sub-redes do Private Service Connect na rede VPC do fornecedor de serviços. Se você quiser ver o endereço IP de origem original do consumidor, ative o protocolo PROXY ao publicar um serviço. O Private Service Connect oferece suporte à versão 2 do protocolo PROXY.
Nem todos os serviços são compatíveis com o protocolo PROXY. Para mais informações, consulte Recursos e compatibilidade.
Se o protocolo PROXY estiver
ativado, é possível conseguir o endereço IP de origem e o ID da conexão do PSC (pscConnectionId
) do consumidor no
cabeçalho do protocolo PROXY.
O formato dos cabeçalhos do protocolo PROXY depende da versão do IP do endpoint do consumidor. Se o balanceador de carga do anexo de serviço tiver um endereço IPv6, os consumidores poderão se conectar com endereços IPv4 e IPv6. Configure seu aplicativo para receber e ler cabeçalhos do protocolo PROXY para a versão IP do tráfego que ele está recebendo.
Quando você ativa o protocolo PROXY para um anexo de serviço, a alteração se aplica apenas a novas conexões. As conexões existentes não incluem o cabeçalho do protocolo PROXY.
Se você ativar o protocolo PROXY, verifique a documentação do software do servidor da Web de back-end para ver informações sobre como analisar e processar cabeçalhos de protocolo PROXY recebidos nos payloads TCP de conexão do cliente. Se o protocolo PROXY estiver ativado no anexo do serviço, mas o servidor da Web de back-end não estiver configurado para processar cabeçalhos de protocolo PROXY, as solicitações da Web poderão estar malformadas. Se as solicitações estiverem incorretas, o servidor não poderá interpretá-las.
O ID de conexão do Private Service Connect (pscConnectionId
) é
codificado no cabeçalho do protocolo PROXY no
formato tipo-comprimento-valor (TLV).
Campo | Comprimento do campo | Valor do campo |
---|---|---|
Tipo | 1 byte | 0xE0 (PP2_TYPE_GCP)
|
Comprimento | 2 bytes | 0x8 (8 bytes) |
Valor | 8 bytes | O pscConnectionId de 8 bytes na ordem de rede |
Visualize o valor pscConnectionId
de 8 bytes da regra de encaminhamento do consumidor ou do anexo de serviço do produtor.
O valor pscConnectionId
é globalmente exclusivo para todas as conexões ativas em um
determinado momento. No entanto, com o tempo, um pscConnectionId
pode ser reutilizado nestes cenários:
Em uma determinada rede VPC, se você excluir um endpoint (regra de encaminhamento) e criar um novo usando o mesmo endereço IP, o mesmo valor
pscConnectionId
poderá ser usado.Se você excluir uma rede VPC que contenha endpoints (regras de encaminhamento), após um período de espera de sete dias, o valor
pscConnectionId
usado para esses endpoints poderá ser utilizado para um endpoint diferente em outra rede VPC.
Você pode usar valores pscConnectionId
para depuração e rastrear as origens de
pacotes.
Um ID de anexo de serviço (pscServiceAttachmentId
) separado de 16 bytes do Private Service Connect está disponível no anexo de serviço do produtor.
O valor pscServiceAttachmentId
é um ID globalmente exclusivo que identifica um
anexo de serviço do Private Service Connect. É possível usar o
valor pscServiceAttachmentId
para visibilidade e depuração. Esse valor não está
incluído no cabeçalho do protocolo PROXY.
Cotas
O número total de endpoints do Private Service Connect e
conexões propagadas de qualquer consumidor que pode acessar sua
rede VPC de produtor é controlado pela
Cota PSC ILB consumer forwarding rules per producer VPC network
.
Os endpoints contribuem para essa cota até serem excluídos, mesmo que o anexo de serviço associado seja excluído ou configurado para rejeitar a conexão. As conexões propagadas contribuem para essa cota até que o endpoint associado seja excluído, mesmo que a propagação da conexão esteja desativada no hub do Network Connectivity Center ou que o spoke da conexão propagada seja excluído.
Acesso no local
Os serviços do Private Service Connect são disponibilizados usando endpoints. Esses endpoints podem ser acessados de hosts locais compatíveis conectados. Para mais informações, consulte Acessar o endpoint de hosts locais.
Limitações
Os serviços publicados têm as seguintes limitações:
- Não há suporte para balanceadores de carga configurados com
vários protocolos (conjunto de protocolos definido como
L3_DEFAULT
). - O Espelhamento de pacotes não pode espelhar pacotes para o tráfego de serviços publicados do Private Service Connect.
- Use a Google Cloud CLI ou a API para criar um anexo de serviço que aponte para uma regra de encaminhamento usada no encaminhamento de protocolo interno.
Para problemas e soluções alternativas, consulte Problemas conhecidos.