Sobre os registros de fluxo de VPC
Nesta página, descrevemos o formato de registro dos registros de fluxo de VPC, incluindo quais campos de base e metadados estão disponíveis. Ela também explica como você pode usar filtragem de registros para que apenas registros correspondentes a determinados critérios sejam gerados.
Formato do registro
Os registros contêm campos básicos, que são os campos principais de cada registro, e campos de metadados que acrescentam informações adicionais. É possível omitir os campos de metadados para economizar custos de armazenamento.
Alguns campos de registro aparecem em um formato múltiplo, com mais de um dado em cada campo. Por exemplo, o campo connection é do formato IpConnection, que contém o endereço IP e a porta de origem e destino, mais o protocolo, em um único campo. Esses vários campos estão descritos abaixo da tabela de formatos de registro.
Os valores dos campos de metadados não são baseados no caminho do plano de dados. Eles são aproximações, podendo estar ausentes ou incorretos. Por outro lado, os valores dos campos base são obtidos diretamente dos cabeçalhos dos pacotes.
| Campo | Formato do campo | Tipo de campo: base ou metadados opcionais |
|---|---|---|
| conexão |
IpConnection
Detalhes da conexão que descrevem o fluxo, incluindo as 5 tuplas e o endereço IP de NAT, quando aplicável |
Base |
| reporter |
string
O lado que informou o fluxo:
|
Base |
| connection_direction |
string
Direção da conexão TCP em relação ao gerador de relatórios. Preenchido para VMs e endpoints sem servidor quando a
geração de registros de conexão TCP
está ativada e um pacote de saída Será um dos seguintes valores:
|
Base |
| round_trip_time |
Latências
RTT em milissegundos com precisão de submilisegundos, conforme medido durante o intervalo de agregação. Esse campo é preenchido para TCP (para VMs e endpoints sem servidor) e tráfego do Falcon:
Não preenchido:
|
Base |
| rtt_msec |
int64
Tempo de retorno (RTT, na sigla em inglês) em milissegundos, conforme medido durante o intervalo de agregação. Esse campo é preenchido da seguinte maneira:
O RTT medido é o tempo decorrido entre o envio de um SEQ e o recebimento de um ACK correspondente. |
Base |
| bytes_sent |
int64
Número estimado de bytes de payload do usuário enviados da origem para o destino.1 Para pacotes sem payload do usuário, o valor é zero.2 Não preenchido para tráfego descartado ( disposition=DROPPED)
ou quando
a geração de registros de conexão TCP
registra um evento de conexão sem pacotes de dados de amostra.
|
Base |
| packets_sent |
int64
Número estimado de pacotes enviados da origem para o destino.1 Não preenchido para tráfego descartado ( disposition=DROPPED) ou quando
o registro de conexão TCP
registra um evento de conexão sem pacotes de dados de amostra.
|
Base |
| start_time |
string
Carimbo de data/hora (formato de string de data RFC 3339) do primeiro pacote observado durante o intervalo de tempo agregado. |
Base |
| end_time |
string
Carimbo de data/hora (formato de string de data RFC 3339) do último pacote observado durante o intervalo de tempo agregado. |
Base |
| disposition |
string
Preenchido apenas para registros que capturam pacotes descartados. Esse campo está definido como DROPPED.
|
Base |
| drop_reason |
string
Preenchido apenas para registros com disposition=DROPPED.
Para mais informações, consulte
Anotações de queda de pacotes e
Motivos de queda de pacotes.
|
Base |
| bytes_dropped |
int64
Número estimado de bytes de payload do usuário descartados da origem para o destino. Preenchido apenas para registros com disposition=DROPPED.
|
Base |
| packets_dropped |
int64
Número estimado de pacotes descartados da origem para o destino. Preenchido apenas para registros com disposition=DROPPED.
|
Base |
| throughput_inclusion |
string
Preenchido apenas para registros com disposition=DROPPED.
Indica se o tráfego descartado está incluído (INCLUDED) ou excluído (EXCLUDED) dos campos bytes_sent e packets_sent que são informados para o fluxo pelo mesmo gerador de relatórios.
|
Base |
| Campos de metadados de origem e destino | ||
| src_gateway |
GatewayDetails
Se a origem do fluxo for um endpoint local ou de outra nuvem conectado ao Google Cloud por um gateway, como um anexo da VLAN para o Cloud Interconnect ou um túnel do Cloud VPN, e uma das condições a seguir for atendida, esse campo será preenchido com detalhes do gateway:
|
Metadados |
| dest_gateway |
GatewayDetails
Se o destino do fluxo for um endpoint local ou de outra nuvem conectado ao Google Cloud por um gateway, como um anexo da VLAN para o Cloud Interconnect ou um túnel do Cloud VPN, e uma das condições a seguir for atendida, esse campo será preenchido com detalhes do gateway:
|
Metadados |
| src_gke_details |
GkeDetails
Se a origem do fluxo for um endpoint do Google Kubernetes Engine (GKE), esse campo será preenchido com detalhes do endpoint do GKE. |
Metadados |
| dest_gke_details |
GkeDetails (em inglês)
Se o destino do fluxo for um bucket do GKE endpoint, esse campo é preenchido com o endpoint do GKE detalhes. |
Metadados |
| src_google_service |
GoogleServiceDetails
Se a origem do fluxo for um serviço do Google, esse campo será preenchido com detalhes do serviço. |
Metadados |
| dest_google_service |
GoogleServiceDetails
Se o destino do fluxo for um serviço do Google, esse campo será preenchido com os detalhes do serviço. |
Metadados |
| src_instance |
InstanceDetails (link em inglês)
Se a origem do fluxo for uma VM localizada em uma VPC rede e uma das condições a seguir for atendida, esse campo será preenchida com detalhes da instância de VM:
|
Metadados |
| dest_instance |
InstanceDetails (link em inglês)
Se o destino do fluxo for uma VM localizada em uma VPC e uma das condições a seguir for atendida, este campo é preenchido com detalhes da instância de VM.
|
Metadados |
| src_location |
GeographicDetails (Detalhes geográficos)
Se a origem do fluxo for um endereço IP público fora do rede VPC, esse campo é preenchido com metadados de local disponíveis. |
Metadados |
| dest_location |
GeographicDetails
Se o destino do fluxo for um endereço IP público fora da rede VPC, esse campo será preenchido com metadados de local disponíveis. |
Metadados |
| src_serverless_details |
ServerlessDetails
Se a origem do fluxo for um endpoint sem servidor, como um recurso do Cloud Run ou do App Engine configurado com saída de VPC direta, esse campo será preenchido com metadados sem servidor. |
Metadados |
| dest_serverless_details |
ServerlessDetails
Se o destino do fluxo for um endpoint sem servidor, como um recurso do Cloud Run ou do App Engine configurado com saída de VPC direta, esse campo será preenchido com metadados sem servidor. |
Metadados |
| src_psc_interface |
PrivateServiceConnectInterfaceDetails
Se a origem do fluxo for uma interface do Private Service Connect, esse campo será preenchido com detalhes da interface do Private Service Connect e será informado no projeto do consumidor, tanto pela origem quanto pelo destino. |
Metadados |
| dest_psc_interface |
PrivateServiceConnectInterfaceDetails
Se o destino do fluxo for uma interface do Private Service Connect, esse campo será preenchido com detalhes da interface do Private Service Connect e será informado no projeto do consumidor, tanto pela origem quanto pelo destino. |
Metadados |
| src_vpc |
VpcDetails
Se a origem do fluxo for uma VM ou um endpoint sem servidor localizado em uma rede VPC e uma das condições a seguir for atendida, esse campo será preenchido com detalhes da rede VPC:
|
Metadados |
| dest_vpc |
VpcDetails
Se o destino do fluxo for uma VM ou um endpoint sem servidor localizado em uma rede VPC e uma das condições a seguir for atendida, esse campo será preenchido com detalhes da rede VPC:
|
Metadados |
| Outros campos de metadados | ||
| internet_routing_details |
InternetRoutingDetails
Se o fluxo for entre o Google Cloud e a Internet, esse campo será preenchido com os detalhes de roteamento. Disponível apenas para fluxos de saída. |
Metadados |
| load_balancing |
LoadBalancingDetails (em inglês)
Se o fluxo passa por um balanceador de carga em um dos seguintes locais de configuração, este campo é preenchido com Cloud Load Balancing detalhes:
|
Metadados |
| nat_gateway_details |
NatGatewayDetails
Se o gerador do fluxo for SRC em uma sub-rede
em que um gateway do Cloud NAT realiza a conversão de endereços de rede, esse
campo será preenchido com os detalhes do gateway do Cloud NAT.
|
Metadados |
| network_service |
NetworkServiceDetails (em inglês)
Se o cabeçalho Differentiated Services Code Point (DSCP) estiver definido, este campo é preenchido com detalhes do serviço de rede. |
Metadados |
| psc |
PrivateServiceConnectDetails
Se o fluxo estiver associado a uma conexão do Private Service Connect, incluindo uma conexão propagada pelo Network Connectivity Center, e uma das seguintes condições for atendida, esse campo será preenchido com detalhes do Private Service Connect:
|
Metadados |
| rdma_traffic_type |
string
Tipo de tráfego RDMA. Preenchido para tráfego de GPU para GPU entre VMs. Pode ser GPUDirect-TCPXO, Falcon ou
RoCE.
|
Metadados |
- Se a VM de origem for a informante, o valor de bytes informado será a soma dos bytes de payload do usuário e dos bytes de cabeçalho do pacote enviados. Esse valor é sempre maior que zero, mesmo para pacotes que não contêm payload do usuário.
- Se a VM de destino for a que informa, o valor de bytes informados será os bytes de payload do usuário recebidos e encaminhados para a camada do aplicativo. Para pacotes sem payload do usuário, o valor de bytes é zero.
Formato do campo GatewayDetails
| Campo | Tipo | Descrição |
|---|---|---|
| project_id | string | Google Cloud ID do projeto do gateway |
| local | string | Região do gateway |
| name | string | Nome do gateway |
| Tipo | string |
Tipo de gateway. Pode ser INTERCONNECT_ATTACHMENT ou VPN_TUNNEL.
|
| vpc | VpcDetails | Detalhes da rede VPC do gateway |
| interconnect_name | string |
Se o tipo do gateway for INTERCONNECT_ATTACHMENT,
esse campo será preenchido com o nome da conexão do Cloud Interconnect
em que o anexo da VLAN está configurado.
|
| interconnect_project_number | int64 |
Se o tipo do gateway for INTERCONNECT_ATTACHMENT,
esse campo será preenchido com o número do projeto do Google Cloud da
conexão do Cloud Interconnect em que o anexo da VLAN está
configurado.
|
Formato do campo GeographicDetails
| Campo | Tipo | Descrição |
|---|---|---|
| asn | int32 | O ASN da rede externa à qual este endpoint pertence. |
| cidade | string | Cidade para endpoints externos |
| continent | string | Continente para endpoints externos |
| país | string | País para endpoints externos, representado por códigos de país ISO 3166-1 Alfa-3. |
| região | string | Região para endpoints externos |
Formato do campo GkeDetails
| Campo | Tipo | Descrição |
|---|---|---|
| cluster | ClusterDetails | Metadados do cluster do GKE |
| pod | PodDetails | Metadados do pod do GKE, preenchidos quando a origem ou o destino do tráfego for um pod. |
| serviço | ServiceDetails |
Metadados do Serviço do GKE, preenchidos apenas em endpoints de Serviço. O registro contém até dois Serviços. Se houver mais de dois Serviços relevantes, esse campo conterá um único Serviço com um marcador MANY_SERVICES especial.
|
Formato do campo ClusterDetails
| Campo | Tipo | Descrição |
|---|---|---|
| cluster_location | string | Local do cluster. É uma zona ou uma região, dependendo se o cluster for zonal ou regional. |
| cluster_name | string | Nome do cluster do GKE |
Formato do campo PodDetails
| Campo | Tipo | Descrição |
|---|---|---|
| pod_name | string | Nome do pod |
| pod_namespace | string | Namespace do pod |
| carga de trabalho | WorkloadDetails | Metadados sobre o recurso de carga de trabalho de nível superior que controla o Conjunto |
Formato do campo WorkloadDetails
| Campo | Tipo | Descrição |
|---|---|---|
| workload_name | string | Nome do controlador de carga de trabalho de nível superior |
| workload_type | string |
Tipo do controlador de carga de trabalho de nível superior. Pode ser
DEPLOYMENT, REPLICA_SET,
STATEFUL_SET, DAEMON_SET, JOB,
CRON_JOB, ou
REPLICATION_CONTROLLER.
|
Formato do campo ServiceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| service_name | string |
Nome do serviço. Se houver mais de dois Serviços relevantes, o campo será definido como um marcador MANY_SERVICES especial.
|
| service_namespace | string | Namespace do Serviço |
Exemplo:
Se houver dois serviços, o campo Serviço será semelhante a:
service: [
0: {
service_name: "my-lb-service"
service_namespace: "default"
}
1: {
service_name: "my-lb-service2"
service_namespace: "default"
}
]
Se houver mais de dois serviços, o campo Serviço será semelhante a:
service: [
0: {
service_name: "MANY_SERVICES"
}
]
Formato do campo GoogleServiceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| Tipo | string | Tipo de serviço:
|
| service_name | string | Nome do serviço. Por exemplo,
Limitações:
|
| conectividade | string | Método de acesso. Para o tipo
Para o tipo
|
| private_domain | string | Domínio particular ou pacote de APIs do Private Service Connect. O campo private_domain pode ser um dos seguintes:
|
Formato do campo InstanceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| project_id | string | ID do projeto do Google Cloud que contém o recurso de VM |
| região | string | Região da VM |
| vm_name | string | Nome da instância da VM |
| zona | string | Zona da VM |
| managed_instance_group | InstanceGroupDetails | Se a VM fizer parte de um grupo gerenciado de instâncias, esse campo será preenchido com os detalhes do grupo de instâncias. |
Formato do campo InstanceGroupDetails
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | Nome do grupo de instâncias |
| região | string | Se o grupo de instâncias for regional, esse campo será preenchido com a região do grupo de instâncias. |
| zona | string | Se o grupo de instâncias for zonal, esse campo será preenchido com a zona do grupo de instâncias. |
Formato do campo InternetRoutingDetails
| Campo | Tipo | Descrição |
|---|---|---|
| egress_as_path | AsPath | Lista de caminhos AS relevantes. Se houver vários caminhos AS disponíveis para o fluxo, o campo pode conter mais de um caminho AS. |
Formato do campo AsPath
| Campo | Tipo | Descrição |
|---|---|---|
| as_details | AsDetails | Lista de detalhes do AS para todos os sistemas no caminho do AS. A lista começa do primeiro AS externo à rede do Google Cloude termina com o AS ao qual o endereço IP remoto pertence. |
Formato do campo AsDetails
| Campo | Tipo | Descrição |
|---|---|---|
| asn | uint32 | O número de sistema autônomo (ASN, na sigla em inglês) do AS |
Formato do campo IpConnection
| Campo | Tipo | Descrição |
|---|---|---|
| src_ip | string | Endereço IP de origem. Preenchido para todos os fluxos. |
| dest_ip | string | Endereço IP de destino. Preenchido para todos os fluxos. |
| src_port | int32 | Porta de origem:
|
| dest_port | int32 | Porta de destino:
|
| nat_ip | string | Endereço IP usado pelo gateway do Cloud NAT (se
configurado). Preenchido apenas se o denunciante for SRC. |
| nat_port | int32 | Porta atribuída pelo gateway do Cloud NAT (se
configurado). Preenchido apenas se o denunciante for SRC. |
| protocolo | int32 | O número do protocolo IANA:
|
Formato do campo de latências
| Campo | Tipo | Descrição |
|---|---|---|
| median_msec | double | A latência mediana em milissegundos medida durante o intervalo de agregação. |
Formato do campo LoadBalancingDetails
| Campo | Tipo | Descrição |
|---|---|---|
| forwarding_rule_project_id | string | Google Cloud ID do projeto do Google Cloud da regra de encaminhamento |
| reporter | string | Relatório do Cloud Load Balancing. Pode ser
CLIENT ou BACKEND.
|
| Tipo | string | Tipo do balanceador de carga. Pode ser APPLICATION_LOAD_BALANCER,
PROXY_NETWORK_LOAD_BALANCER,
PASSTHROUGH_NETWORK_LOAD_BALANCER,
ou PROTOCOL_FORWARDING. |
| esquema | string | Esquema do balanceador de carga. Pode ser EXTERNAL_MANAGED,
INTERNAL_MANAGED, EXTERNAL,
INTERNAL, ou INTERNAL_SELF_MANAGED. |
| url_map_name | string | Nome do mapa de URL. Preenchido se o tipo de
balanceador de carga é APPLICATION_LOAD_BALANCER. |
| forwarding_rule_name | string | Nome da regra de encaminhamento |
| backend_service_name | string | Nome do serviço de back-end. Será preenchido se
o informante for BACKEND e o tipo de balanceador de carga for
PASSTHROUGH_NETWORK_LOAD_BALANCER. Se o tipo de grupo de back-end
for TARGET_POOL, esse campo não será preenchido. |
| backend_service_project_id | string | ID do projeto do serviço de back-end.
Preenchido se o informante for BACKEND e o balanceador de carga
o tipo é PASSTHROUGH_NETWORK_LOAD_BALANCER. Se o tipo de grupo de back-end for TARGET_POOL, esse campo não será preenchido. |
| backend_group_name | string | Nome do grupo de back-ends. Será preenchido se
o informante for BACKEND e o tipo de balanceador de carga for
PASSTHROUGH_NETWORK_LOAD_BALANCER. |
| backend_group_type | string | Tipo do grupo de back-ends. Pode ser INSTANCE_GROUP,
NETWORK_ENDPOINT_GROUP, ou TARGET_POOL.
Preenchido se o informante for BACKEND e o balanceador de carga
o tipo é PASSTHROUGH_NETWORK_LOAD_BALANCER. |
| backend_group_location | string | Local do grupo de back-ends. Pode ser uma zona ou região, dependendo se o escopo do grupo de back-ends é zonal ou regional.
Preenchido se o informante for BACKEND e o balanceador de carga
o tipo é PASSTHROUGH_NETWORK_LOAD_BALANCER. Se o tipo de grupo de back-end for TARGET_POOL, esse campo não será preenchido. |
| vpc | VpcDetails | Detalhes da rede VPC do balanceador de carga |
Formato do campo NatGatewayDetails
| Campo | Tipo | Descrição |
|---|---|---|
| gateway_name | string | Nome do gateway do Cloud NAT |
| router_name | string | Nome do Cloud Router associado ao gateway do Cloud NAT. |
| project_id | string | Google Cloud ID do projeto do gateway do Cloud NAT e do Cloud Router |
| região | string | Região do gateway do Cloud NAT e do Cloud Router |
| tipo | string | Tipo de Cloud NAT: PUBLIC ou
PRIVATE |
Formato do campo NetworkServiceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| dscp | int32 | Se o campo "Serviços diferenciados" estiver presente nos cabeçalhos dos pacotes, ele será preenchido com o valor DSCP. |
Motivos para descarte de pacotes
A tabela a seguir descreve os valores compatíveis do campo drop_reason quando informados por SRC ou SRC_GATEWAY.
| Motivo da queda | Descrição |
|---|---|
FIREWALL_DENY |
O tráfego de saída foi descartado porque uma regra de firewall de saída foi
avaliada e a ação dela foi Recomendação: se você quiser permitir esse tráfego, ajuste as regras de firewall. |
NAT_ENDPOINT_INDEPENDENT_CONFLICT |
O tráfego de saída foi descartado porque ocorreu um conflito de mapeamento independente de endpoint. Recomendação:consulte a seguinte documentação do Cloud NAT: |
NAT_OUT_OF_CONNECTIONS |
O tráfego de saída foi descartado porque a tabela de rastreamento de conexão NAT atingiu a capacidade máxima. Recomendação: consulte os limites de conexão NAT por VM e os tempos limite de NAT. |
NAT_OUT_OF_PORTS |
O tráfego de saída foi descartado porque o gateway do Cloud NAT ficou sem tuplas de 2 elementos (portas) do NAT para atribuir às VMs. Consequentemente, a interface de rede da VM não conseguiu enviar pacotes usando o gateway. Recomendação: verifique se o endereço IP NAT e as alocações de portas por VM são suficientes. Para mais informações, consulte Endereços IP e portas. |
NO_MATCHING_ROUTE |
O tráfego de saída foi descartado porque não havia uma rota correspondente para o destino. Recomendação: revise as rotas na sua rede VPC usando a seção "Rotas efetivas" do console do Google Cloud . Também é possível criar e executar Testes de conectividade. |
QUEUE_OVERFLOW |
O tráfego de saída foi descartado porque o software de processamento de pacotes do host excedeu a capacidade da CPU. Recomendação: se as quedas forem persistentes, use VMs com largura de banda maior (Tier_1) ou distribua o tráfego em mais VMs. |
SPOOFED_SOURCE |
O tráfego de saída foi descartado porque a origem do pacote não estava associada à interface de rede da VM e o encaminhamento de IP está desativado. Recomendação: para enviar pacotes com origens arbitrárias de uma interface de rede de VM para destinos roteáveis em uma rede VPC, é necessário ativar o encaminhamento de IP para a VM. |
TOO_MANY_CONNECTIONS |
O tráfego de saída foi descartado porque o software de processamento de pacotes do host não conseguiu acomodar a taxa de fluxo. Recomendação: use uma série de máquinas diferente projetada para um número maior de conexões ou distribua sua carga de trabalho em mais VMs. |
A tabela a seguir descreve os valores compatíveis do campo drop_reason quando informados por DEST ou DEST_GATEWAY.
| Motivo da queda | Descrição |
|---|---|
EARLY_DROPS_FULL_FAIR_QUEUE |
O tráfego de entrada foi descartado porque o software de processamento de pacotes do host aplicou a imparcialidade de recursos. Esse comportamento normalmente afeta apenas as séries de máquinas de 1ª geração. Recomendação: se as quedas forem persistentes, considere migrar para uma série de máquinas mais recente ou com melhor desempenho. |
FIREWALL_DENY |
O tráfego de entrada foi descartado porque uma regra de firewall de entrada
foi avaliada e a ação dela foi Recomendação: se você quiser permitir esse tráfego, ajuste as regras de firewall. |
INVALID_L4_CHECKSUM_INTERNET |
O tráfego de entrada foi descartado porque uma incompatibilidade de checksum foi detectada. Os pacotes foram enviados de uma origem fora da rede VPC para um endereço IP externo de destino associado ao gerador de relatórios da VM. Para mais informações, consulte Entrada para destinos fora de uma rede VPC. Recomendação: se as quedas forem persistentes, investigue a integridade da origem ou do caminho de rede. |
INVALID_L4_CHECKSUM_INTERNAL |
O tráfego de entrada foi descartado porque uma incompatibilidade de checksum foi detectada. Os pacotes foram roteados na rede VPC para um endereço IP de destino associado ao gerador de relatórios da VM. Para mais informações, consulte Entrada para destinos roteáveis em uma rede VPC. Recomendação: se as quedas forem persistentes, investigue a integridade da origem ou do caminho de rede. |
PSC_NAT_OUT_OF_CONNECTIONS |
O tráfego de entrada foi descartado porque o endpoint do Private Service Connect atingiu o número máximo de conexões simultâneas para o consumidor. Recomendação: peça ao consumidor para reduzir a taxa de novas conexões com esse endpoint do Private Service Connect ou distribuir as conexões com esse endpoint do Private Service Connect usando mais VMs de cliente. |
PSC_NAT_OUT_OF_PORTS |
O tráfego de entrada de um consumidor do Private Service Connect foi descartado porque ocorreu o esgotamento de portas NAT do Private Service Connect. Recomendação: revise o dimensionamento da sub-rede NAT. |
QUEUE_OVERFLOW |
O tráfego de entrada foi descartado porque o software de processamento de pacotes do host excedeu a capacidade da CPU. Recomendação: se as quedas forem persistentes, use VMs com largura de banda maior (Tier_1) ou distribua o tráfego em mais VMs. |
TOO_MANY_CONNECTIONS |
O tráfego de entrada foi descartado porque o software de processamento de pacotes do host não conseguiu acomodar a taxa de fluxo. Recomendação: se a alta taxa de fluxo for devido à alta simultaneidade de conexão ou à rotatividade no nível da VM, considere reduzir a taxa de novas conexões com a VM. |
Formato do campo PrivateServiceConnectDetails
| Campo | Tipo | Descrição |
|---|---|---|
| reporter | string | Gerador de relatórios do Private Service Connect.
Pode ser CONSUMER ou PRODUCER. |
| consumer_connection | IpConnection |
A tupla de 5 elementos pré-NAT que descreve o fluxo da perspectiva do consumidor. Preenchido se o
denunciante for PRODUCER.
|
| psc_endpoint | PrivateServiceConnectEndpointDetails | Detalhes do endpoint do consumidor |
| psc_attachment | PrivateServiceConnectAttachmentDetails | Detalhes do anexo de serviço do produtor |
Formato do campo PrivateServiceConnectEndpointDetails
| Campo | Tipo | Descrição |
|---|---|---|
| name | string |
Nome do endpoint do Private Service Connect. Preenchido apenas se target_service_type
for PUBLISHED_SERVICE.
|
| project_id | string | Google Cloud ID do projeto do endpoint. |
| região | string | Região do endpoint. Não preenchido se
o tipo de serviço segmentado é GLOBAL_GOOGLE_APIS. |
| psc_connection_id | string | ID da conexão do Private Service Connect |
| target_service_type | string | Tipo de serviço de destino. Pode ser GLOBAL_GOOGLE_APIS ou PUBLISHED_SERVICE. |
| vpc | VpcDetails |
Detalhes da rede VPC do endpoint.
Se o informante for PRODUCER,
os campos subnetwork_name e
subnetwork_region não serão preenchidos.
|
Formato do campo PrivateServiceConnectAttachmentDetails
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | Nome do anexo de serviço |
| project_id | string | Google Cloud ID do projeto do anexo de serviço |
| região | string | Região do anexo de serviço |
| vpc | VpcDetails | Detalhes da rede VPC do anexo de serviço |
Formato do campo PrivateServiceConnectInterfaceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| network_attachment | NetworkAttachmentDetails | Metadados do anexo de rede do consumidor |
| produtor | ProducerDetails | Metadados do produtor que iniciou a conexão |
Formato do campo NetworkAttachmentDetails
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | Nome do anexo de rede |
| project_id | string | Google Cloud ID do projeto do anexo de rede |
| região | string | Região do anexo de rede |
Formato do campo ProducerDetails
| Campo | Tipo | Descrição |
|---|---|---|
| project_id | string |
Google Cloud ID do projeto do produtor. Preenchido apenas se o campo service_class_id não estiver disponível.
|
| região | string | Região da VM do produtor |
| service_class_id | string | ID da classe de serviço do produtor (se disponível) |
| zona | string | Zona da VM do produtor |
Formato do campo ServerlessDetails
| Campo | Tipo | Descrição |
|---|---|---|
| project_id | string | ID do projeto do Google Cloud que contém o recurso do Cloud Run ou do App Engine. Em uma configuração de VPC compartilhada, o ID do projeto geralmente é o ID do projeto de serviço. |
| região | string | Região do recurso do Cloud Run ou do App Engine |
Opções:
|
Opções: |
Nome do recurso do Cloud Run ou do App Engine |
Formato do campo CloudRunServiceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| service_name | string | Nome do serviço do Cloud Run |
Formato do campo CloudRunJobDetails
| Campo | Tipo | Descrição |
|---|---|---|
| job_name | string | Nome do job do Cloud Run |
Formato do campo CloudRunWorkerPoolDetails
| Campo | Tipo | Descrição |
|---|---|---|
| worker_pool_name | string | Nome do pool de workers do Cloud Run |
Formato do campo AppEngineServiceDetails
| Campo | Tipo | Descrição |
|---|---|---|
| service_name | string | Nome do serviço do App Engine |
Formato do campo VpcDetails
| Campo | Tipo | Descrição |
|---|---|---|
| project_id | string | ID do projeto do Google Cloud que contém a VPC. Em uma configuração de VPC compartilhada, o ID do projeto é o ID do projeto host. |
| subnetwork_name | string | Nome da sub-rede, se aplicável |
| subnetwork_region | string | Região da sub-rede, se aplicável |
| vpc_name | string | Nome da rede |
Anotações de metadados
Os registros contêm campos de base e de metadados. A seção Formato de registro lista quais campos são do tipo metadados e quais são do tipo base. Todos os campos de base são sempre incluídos. É possível personalizar quais campos de metadados manter.
Se você selecionar todos os metadados, todos os campos de metadados no formato de registros de fluxo de VPC serão incluídos nos registros de fluxo. Quando novos campos de metadados são adicionados ao formato de registro, os registros de fluxo incluem automaticamente os novos campos.
Se você não selecionar metadados, todos os campos de metadados serão omitidos.
Se você selecionar metadados personalizados, poderá especificar os campos de metadados que quer incluir pelo campo pai, como
src_vpc, ou pelos nomes completos, comosrc_vpc.project_id.Quando novos campos de metadados são adicionados ao de registro, eles são excluídos dos registros de fluxo, a menos que estejam dentro de um campo pai que você especificou para incluir.
Quando você especifica metadados personalizados usando campos pais, quando novos campos de metadados são adicionados ao formato de registro no campo pai, os registros de fluxo incluem automaticamente os novos campos.
Se você especificar metadados personalizados usando o nome completo do campo, novos campos de metadados adicionados ao campo pai serão excluídos dos registros de fluxo.
Para saber como personalizar campos de metadados, consulte Ativar os registros de fluxo de VPC ou Atualizar a configuração dos registros de fluxo de VPC.
Anotações entre projetos
Se os registros de fluxo de VPC estiverem ativados no nível da organização, os fluxos pela VPC compartilhada, pelo peering de rede VPC e pelo Network Connectivity Center serão anotados com anotações entre projetos. As anotações entre projetos são ativadas por padrão. Se quiser, você pode desativar essas anotações.
- Se as anotações entre projetos estiverem ativadas, os registros de fluxos entre recursos em projetos diferentes vão incluir informações sobre os dois lados do fluxo.
- Se as anotações entre projetos estiverem desativadas, os registros vão incluir informações apenas sobre o gerador do fluxo.
Se os registros de fluxo de VPC estiverem ativados no nível do projeto, os fluxos entre recursos em projetos diferentes não serão anotados com anotações entre projetos.
Anotações do GKE
É possível que fluxos que tenham um endpoint em um cluster do GKE sejam anotados com anotações do GKE, que incluem detalhes do cluster, do pod e do serviço do endpoint.
Anotações de serviço do GKE
O tráfego enviado para um ClusterIP, NodePort ou LoadBalancer recebe anotações de serviço. Se for enviado para um NodePort ou LoadBalancer, o fluxo receberá a anotação de serviço nos dois saltos da conexão.
O tráfego enviado diretamente para a porta de serviço de um pod será anotado com uma anotação de serviço no endpoint de destino.
O tráfego enviado para a porta de serviço de um pod em que o pod está fazendo mais de um serviço na mesma porta de serviço será anotado com vários serviços no endpoint de destino. Isso se limita a dois serviços. Se houver mais, o endpoint será anotado com um marcador MANY_SERVICES especial.
Anotações de pod no tráfego da Internet
O tráfego entre um pod e a Internet não recebe anotações de pod por padrão. Os registros de fluxo de VPC não podem adicionar anotações de pod porque, de pacotes para a Internet, o agente de mascaramento traduz o endereço IP do pod para o endereço IP do nó antes que os registros de fluxo de VPC vejam o pacote.
Devido ao mascaramento, as anotações de pod só serão visíveis se os destinos estiverem dentro dos destinos padrão não mascaradosou em uma lista nonMasqueradeCIDRs personalizada.
Se você incluir destinos de Internet em uma lista nonMasqueradeCIDRs personalizada, será necessário fornecer uma maneira para que os endereços IP internos do pod sejam traduzidos antes de serem entregues à Internet. Para clusters particulares e não particulares, é possível usar o Cloud NAT. Consulte Interação do
GKE para mais detalhes.
Registros de tráfego descartado
Os registros de fluxo de VPC geram registros de tráfego descartado. Os registros de tráfego descartado são gerados separadamente dos registros padrão. Os descartes de pacotes são agregados por fluxo e motivo do descarte. Em um intervalo de agregação, os descartes de pacotes com o mesmo motivo são consolidados em um único registro. Registros separados são gerados para cada motivo de descarte.
As quedas de saída são informadas pela origem (SRC ou SRC_GATEWAY), e as quedas de entrada são informadas pelo destino (DEST ou DEST_GATEWAY). Quando os registros de fluxo de VPC estão ativados para a origem e o destino, o seguinte comportamento se aplica:
- Descartes de saída. Se ocorrer uma queda no lado da origem, um registro padrão e um registro que inclui o motivo da queda serão gerados para a origem. Nenhum registro é gerado para o destino porque o tráfego nunca foi entregue ao destino.
- Descartes de entrada. Se ocorrer uma queda no lado do destino, os registros de registro serão gerados para a origem e o destino. Para a origem, os registros de fluxo de VPC geram um registro padrão e, para o destino, geram apenas um registro que inclui o motivo da remoção.
Os registros de tráfego descartado incluem os campos disposition, drop_reason,
bytes_dropped, packets_dropped e throughput_inclusion.
Para uma lista de motivos de descarte de pacotes rastreados, consulte Motivos de descarte de pacotes.
Filtragem de registros
Ao ativar os registros de fluxo de VPC, é possível definir um filtro com base nos campos de base e de metadados que preservam apenas os registros que correspondem ao filtro. Todos os outros registros serão descartados antes de serem gravados no Logging.
É possível filtrar qualquer subconjunto de campos listados em Formato de registro, exceto os seguintes:
rtt_msecbytes_sentpackets_sentstart_timeend_timebytes_droppedpackets_droppedthroughput_inclusion
A filtragem de registros de fluxo de VPC usa CEL, uma linguagem de expressão incorporada para expressões lógicas baseadas em atributos. As expressões de filtro dos registros de fluxo de VPC têm um limite de 2.048 caracteres. Para mais informações, consulte Operadores lógicos de CEL compatíveis.
Para mais informações sobre a CEL, consulte a introdução da CEL e a definição da linguagem. O recurso de filtro de geração é compatível com um subconjunto limitado de sintaxe CEL.
Para criar uma configuração de registros de fluxo de VPC que use a filtragem de registros, consulte Ativar registros de fluxo de VPC. Para configurar a filtragem de registros de uma configuração atual dos registros de fluxo de VPC, consulte Atualizar a configuração dos registros de fluxo de VPC. Para ver exemplos de filtros de registro, consulte Exemplos de filtros de registro.
Operadores lógicos compatíveis com CEL
| Expressão | Tipos compatíveis | Descrição |
|---|---|---|
| verdadeiro, falso | booleano | Constantes booleanas |
x == y x != y |
booleano, int, string | Operadores de comparação Exemplo: connection.protocol == 6 |
x && y x || y |
booleano | Operadores lógicos booleanos Exemplo: connection.protocol == 6 && src_instance.vm_name == "vm_1" |
| !x | booleano | Negação |
| 1, 2.0, 0, ... | int | Literais numéricos constantes |
| x + y | string | Concatenação de strings |
| "foo", 'foo', ... | string | Literal de string constante |
| x.lower() | string | Retorna o valor em minúsculas da string |
| x.upper() | string | Retorna o valor em maiúsculas da string |
| x.contains(y) | string | Retorna verdadeiro se a string contiver a substring especificada |
| x.startsWith(y) | string | Retorna verdadeiro se a string começar com a substring especificada |
| x.endsWith(y) | string | Retorna verdadeiro se a string terminar com a substring especificada |
| inIpRange(X, Y) | string | Retorna verdadeiro se X for um IP e Y for um intervalo de IP que contenha X Exemplo: inIpRange("1.2.3.1", "1.2.3.0/24") |
| x.containsFieldValue(y) |
x: list y: map(string, string) |
Retorna verdadeiro se a lista contiver um objeto com campos que correspondem aos pares de chave-valor especificados Exemplo: dest_gke_details.service.containsFieldValue({'service_name': 'service1', 'service_namespace': 'namespace1'}) |
| has(x) | string | Retorna verdadeiro se o campo estiver presente. |
Rótulos do App Hub
Para recursos do Google Cloud registrados como cargas de trabalho ou serviços do App Hub, os registros contêm rótulos específicos do aplicativo. Os registros de fluxo de VPC incluem esses rótulos para o tráfego associado aos seguintes recursos:
- Grupos gerenciados de instâncias do Compute Engine
- Pods do GKE (os tipos de carga de trabalho
CRON_JOB,DAEMON_SET,DEPLOYMENTeSTATEFUL_SET) - Serviços e jobs do Cloud Run configurados com saída VPC direta
- Regras de encaminhamento
Os rótulos do App Hub são
anexados a, no máximo, um recurso de origem e um de destino por registro,
quando aplicável. Para regras de encaminhamento, os campos CLIENT e BACKEND
determinam se a regra de encaminhamento é o recurso de origem ou de
destino.
Os rótulos do App Hub são diferentes das anotações de metadados dos registros de fluxo de VPC. As configurações de filtragem de metadados e registros de fluxo de VPC não são aplicáveis a esses rótulos.