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:

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 em service-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.

Produtor de destino Configuração do consumidor (endpoint)
Acesso global do consumidor Acesso híbrido Configuração automática de DNS
(somente IPv4)
Acesso ao peering de rede VPC Propagação de conexão do Network Connectivity Center (somente IPv4) Serviços de destino compatíveis com endpoints IPv4 Serviços de destino compatíveis com endpoints IPv6
Balanceador de carga de aplicativo interno entre regiões (pré-lançamento)
  • Serviços IPv4
  • Serviços IPv4
Balanceador de carga de rede de passagem interna Somente se o acesso global estiver ativado no balanceador de carga (problema conhecido)
  • Serviços IPv4
  • Serviços IPv4
  • Serviços IPv6
Encaminhamento de protocolo interno (instância de destino) Somente se o acesso global estiver ativado na regra de encaminhamento do produtor (problema conhecido)
  • Serviços IPv4
  • Serviços IPv4
  • Serviços IPv6
Serviços de mapeamento de portas Somente se o acesso global estiver ativado na regra de encaminhamento do produtor
  • Serviços IPv4
  • Serviços IPv4
  • Serviços IPv6
Balanceador de carga de aplicativo interno regional Somente se o acesso global estiver ativado no balanceador de carga antes da criação do anexo de serviço.
  • Serviços IPv4
  • Serviços IPv4
Balanceador de carga de rede de proxy interno regional Somente se o acesso global estiver ativado no balanceador de carga antes da criação do anexo de serviço.
  • Serviços IPv4
  • Serviços IPv4
Proxy seguro da Web
  • Serviços IPv4
  • Serviços IPv4

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)
  • NEGs zonais GCE_VM_IP_PORT
  • NEGs híbridos
  • NEGs sem servidor
  • NEGs do Private Service Connect
  • Grupos de instâncias
  • IPv4
Balanceador de carga de rede de passagem interna
  • NEGs zonais GCE_VM_IP
  • Grupos de instâncias
  • IPv4
  • IPv6
Encaminhamento de protocolo interno (instância de destino)
  • Não relevante
  • IPv4
  • IPv6
Serviços de mapeamento de portas
  • NEG para mapeamento de portas
  • IPv4
  • IPv6
Balanceador de carga de aplicativo interno regional
  • NEGs zonais GCE_VM_IP_PORT
  • NEGs híbridos
  • NEGs sem servidor
  • NEGs do Private Service Connect
  • Grupos de instâncias
  • IPv4
Balanceador de carga de rede de proxy interno regional
  • NEGs zonais GCE_VM_IP_PORT
  • NEGs híbridos
  • NEGs do Private Service Connect
  • Grupos de instâncias
  • IPv4
Proxy seguro da Web
  • Não relevante
  • IPv4

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.