Usar o espelhamento de pacotes

É possível usar o Espelhamento de pacotes para espelhar o tráfego de e para instâncias de máquina virtual (VM) específicas. O tráfego coletado pode ajudar você a detectar ameaças à segurança e a monitorar o desempenho do aplicativo. Para ver detalhes sobre o Espelhamento de pacotes, consulte Espelhamento de pacotes.

O tráfego espelhado é enviado às VMs em que o software apropriado foi instalado. Para ver uma lista de fornecedores que fornecem software, consulte Provedores de parceiros de Espelhamento de pacotes.

Veja como criar e gerenciar políticas de espelhamento de pacotes nas seções a seguir.

Limitações

  • O Espelhamento de pacotes não pode espelhar pacotes para o tráfego de serviços publicados do Private Service Connect.

  • Por motivos de segurança, o Espelhamento de pacotes não espelha pacotes enviados ao intervalo de endereços IP link-local 169.254.0.0/16. Esse intervalo inclui solicitações de metadados de uma VM para o respectivo servidor de metadados.

  • Não é possível usar um serviço LoadBalancer do Google Kubernetes Engine (GKE) como um coletor de espelhamento de pacotes.

  • Além disso, se uma política de espelhamento de pacotes puder ser aplicada às instâncias do coletor, elas serão ignoradas pelo espelhamento de pacotes, que não espelhará o tráfego delas.

Antes de começar

Antes de criar uma política de espelhamento de pacotes, é necessário ter as permissões apropriadas. Também é necessário criar um balanceador de carga de rede de passagem interno para atuar como um destino de coletor. Esse balanceador de carga de rede de passagem interno requer um grupo de instâncias para que o serviço de back-end possa usar as VMs como destinos de coletor.

Permissões

Para criar e gerenciar políticas de espelhamento de pacotes, o Google Cloud oferece dois papéis relacionados ao espelhamento de pacotes:

  • O compute.packetMirroringUser concede aos usuários permissão para criar, atualizar e excluir políticas de espelhamento de pacotes. Para usarem o espelhamento de pacotes, é necessário que os usuários tenham esse papel nos projetos em que criam políticas de espelhamento de pacotes.

  • O compute.packetMirroringAdmin concede aos usuários permissão para espelhar recursos específicos. Mesmo que os usuários tenham permissão para criar uma política de espelhamento de pacotes, eles ainda precisam de permissão para espelhar origens relacionadas. Use esse papel em projetos em que o proprietário de uma política pode não ter outras permissões, como em situações de VPC compartilhada, por exemplo.

Para mais informações sobre o uso de papéis do IAM, consulte Gerenciar o acesso a projetos, pastas e organizações na documentação do IAM.

Criar instâncias de coletor

O espelhamento de pacotes exige um grupo de instâncias de coletor. Para detalhes sobre grupos de instâncias, consulte a seguinte documentação: Criar um novo modelo de instância e Criar um MIG em uma única zona.

Criar um balanceador de carga interno para o espelhamento de pacotes

Para ativar o espelhamento de pacotes, você precisa ter um balanceador de carga de rede de passagem interno que possa atuar como um coletor de espelhamento de pacotes. O balanceador de carga de rede de passagem interno precisa atender aos seguintes requisitos:

  • A regra de encaminhamento do balanceador de carga de rede de passagem interno precisa ter o espelhamento de pacotes ativado ao ser criada. Esse status não pode ser alterado depois que a regra é criada. É possível usar essa regra de encaminhamento para coletar o tráfego IPv4 e IPv6.
  • O balanceador de carga de rede de passagem interno está na mesma região que as instâncias que você está espelhando.
  • O serviço de back-end do balanceador de carga de rede de passagem interno precisa usar uma afinidade de sessão de NONE (hash de cinco tuplas).
  • O serviço de back-end do balanceador de carga de rede de passagem interno precisa ter a subconfiguração de back-end desativada.

Se as instâncias do coletor não estiverem configuradas para responder à verificação de integridade configurada com o serviço de back-end, a verificação poderá falhar. Os pacotes ainda podem ser espelhados nesse caso.

Para mais informações sobre como criar um balanceador de carga de rede de passagem interno para o espelhamento de pacotes, consulte Como criar um balanceador de carga para o espelhamento de pacotes.

Configurar regras de firewall

Para preparar sua rede VPC para o tráfego do Espelhamento de pacotes, faça isto:

  • Verifique se as instâncias do coletor no grupo de instâncias do balanceador de carga podem receber tráfego de instâncias espelhadas ou dos intervalos de endereços IPv4 e IPv6 de instâncias espelhadas. Por exemplo, para permitir que as instâncias do coletor recebam tráfego IPv4 de qualquer VM, crie uma regra de firewall com um intervalo de endereços IPv4 de origem de 0.0.0.0/0. Para permitir que as instâncias do coletor recebam tráfego IPv6 de qualquer VM, crie uma regra de firewall com um intervalo de endereços IPv6 de origem de ::/0. Para impedir que o tráfego da Internet atinja as instâncias do coletor, atribua a elas apenas endereços IPv4 e IPv6 internos.

  • Certifique-se de que nenhuma outra regra de firewall substitua a regra de saída implícita para que o tráfego espelhado possa fluir das instâncias de origem para as de destino que fazem parte do balanceador de carga de rede de passagem interno.

  • Verifique se as instâncias do coletor podem receber o tráfego dos sistemas de verificação de integridade do Google Cloud. Por exemplo, para o tráfego IPv4, crie uma regra de firewall que permita o tráfego para as instâncias do coletor a partir dos intervalos de endereços IPv4 de 130.211.0.0/22 e 35.191.0.0/16. Para o tráfego IPv6, crie uma regra de firewall que permita o tráfego para as instâncias do coletor a partir do intervalo de endereços IPv6 de 2600:2d00:1:b029::/64.

  • Se você quiser testar o Espelhamento de pacotes enviando manualmente o tráfego de saída de uma ou mais instâncias espelhadas, crie uma regra de firewall que permita o tráfego SSH para essas instâncias. Por exemplo, para permitir conexões SSH com as instâncias espelhadas de todos os endereços IPv4 e IPv6, permita o tráfego de entrada TCP na porta 22 a partir de qualquer endereço IPv4 e IPv6 de origem. Se quiser permitir apenas conexões SSH iniciadas por um determinado intervalo de endereços IPv4 ou IPv6, especifique esse intervalo como o intervalo de origem da regra de firewall. Para mais informações sobre como testar o balanceador de carga de rede de passagem interno, consulte Como testar o balanceamento de carga.

Se você não tiver regras que permitam esse tráfego, consulte Usar regras de firewall de VPC para criá-las. Para mais informações sobre como criar regras de firewall para um balanceador de carga de rede de passagem interno, consulte Como configurar regras de firewall na documentação do Cloud Load Balancing.

Criar uma política de Espelhamento de pacotes

Para começar a espelhar o tráfego de e para instâncias específicas, crie uma política de espelhamento de pacotes. O Google Cloud espelha qualquer instância que corresponda a pelo menos uma das origens especificadas.

Console

  1. No console do Google Cloud, acesse a página Espelhamento de pacotes.

    Acesse o Espelhamento de pacotes

  2. Clique em Criar política.

  3. Insira as seguintes informações sobre a política e clique em Continuar.

    1. Digite um nome para a política.
    2. Selecione a região que inclui as origens espelhadas e o destino do coletor. É necessário que a política de espelhamento de pacotes esteja na mesma região que a origem e o destino.
    3. Ignore o campo Prioridade. Ele não pode ser ajustado no momento.
    4. Selecione Ativado para ativar a política ao criá-la.
  4. Selecione as redes VPC em que a origem espelhada e o destino do coletor estão localizados e clique em Continuar.

    A origem e o destino podem estar na mesma rede VPC ou em redes VPC diferentes.

    • Se estiverem na mesma rede VPC, selecione Origens espelhadas e destino estão na mesma rede VPC e, em seguida, selecione a rede.
    • Se estiverem em redes diferentes, selecione Origem espelhada e o destino do coletor estão em redes VPC separadas com peering e, em seguida, selecione a rede de origem espelhada e a rede de destino do coletor.
  5. Selecione as origens espelhadas e clique em Continuar. É possível selecionar uma ou mais origens. O Google Cloud espelha qualquer instância que corresponda a pelo menos uma das origens selecionadas.

    • Sub-redes: selecione uma ou mais sub-redes. O Google Cloud espelha instâncias atuais e futuras em sub-redes selecionadas.
    • Tag de rede: especifique uma ou mais tags de rede. O Google Cloud espelha as instâncias que têm ao menos uma tag especificada.
    • Nome da instância: selecione instâncias específicas para espelhar.
  6. Selecione um balanceador de carga de rede de passagem interno que tenha sido configurado para o espelhamento de pacotes e clique em Continuar. O Google Cloud envia o tráfego espelhado para as instâncias que estão protegidas pelo balanceador de carga de rede de passagem interno.

    Para a VPC compartilhada, se o destino do coletor e as origens espelhadas estiverem na mesma rede VPC compartilhada, selecione o projeto em que o destino do coletor está localizado e, em seguida, um balanceador de carga.

  7. Para selecionar o tráfego a ser espelhado, faça isto:

    • Para espelhar todo o tráfego IPv4, selecione Espelhar todo o tráfego IPv4 (padrão).
    • Para espelhar todo o tráfego IPv4 e IPv6, selecione Espelhar tráfego filtrado e faça isto:
      • Selecione Permitir todos os protocolos.
      • Selecione Permitir todos os intervalos IPv4 (0.0.0.0/0).
      • Selecione Permitir todos os intervalos IPv6 (::/0).
      • Selecione Permitir tráfego de entrada e saída.
    • Para limitar o tráfego espelhado, selecione Espelhar tráfego filtrado e faça isto:

      • Para limitar o tráfego espelhado por protocolo, selecione Permitir protocolos específicos e, em seguida, selecione os protocolos. Se você não encontrar um protocolo para espelhar o tráfego, selecione Outros protocolos e insira o protocolo no campo Outros protocolos. Os valores válidos são tcp, udp, esp, ah, ipip, sctp ou um número do protocolo IANA. Para especificar o ICMP para IPv6, insira 58.

      • Para filtros de intervalo IPv4, faça isto:

        • Para espelhar todo o tráfego IPv4, selecione Permitir todos os intervalos IPv4 (0.0.0.0/0).
        • Para espelhar o tráfego de intervalos de endereços IPv4 específicos, selecione Permitir intervalos IPv4 específicos. No campo Intervalos IPv4, digite um único intervalo de endereços IPv4 e pressione Enter. É possível adicionar vários intervalos IPv4 pressionando Enter depois de cada intervalo digitado.
      • Para filtros de intervalo IPv6, faça isto:

        • Para filtrar todo o tráfego IPv6, selecione Nenhum.
        • Para espelhar todo o tráfego IPv6, selecione Permitir todos os intervalos IPv6 (::/0).
        • Para espelhar o tráfego de intervalos de endereços IPv6 específicos, selecione Permitir intervalos IPv6 específicos. No campo Intervalos IPv6, digite um único intervalo de endereços IPv6 e pressione Enter. É possível adicionar vários intervalos IPv6 pressionando Enter depois de cada intervalo digitado.
  8. Selecione a Direção do tráfego que você quer espelhar.

  9. Para criar a política de espelhamento de pacotes, clique em Enviar.

gcloud

Para criar uma política de espelhamento de pacotes, use o comando packet-mirrorings create.

gcloud compute packet-mirrorings create POLICY_NAME \
    --region=REGION \
    --network=NETWORK_NAME \
    --collector-ilb=FORWARDING_RULE_NAME \
    [--mirrored-subnets=SUBNET,[SUBNET,...]] \
    [--mirrored-tags=TAG,[TAG,...]] \
    [--mirrored-instances=INSTANCE,[INSTANCE,...]] \
    [--filter-cidr-ranges=CIDR_RANGE,[CIDR_RANGE,...]] \
    [--filter-protocols=PROTOCOL,[PROTOCOL,...]] \
    [--filter-direction=DIRECTION]

Substitua:

  • POLICY_NAME: o nome da política de espelhamento de pacotes.
  • REGION: é a região em que as origens espelhadas e o destino do coletor estão localizados.
  • NETWORK_NAME: é a rede em que as fontes espelhadas estão localizadas.
  • FORWARDING_RULE_NAME: o nome da regra de encaminhamento configurada como um coletor de espelhamento. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga de rede de passagem interno associado.
  • SUBNET: o nome de uma ou mais sub-redes a serem espelhadas. É possível fornecer várias sub-redes usando uma lista separada por vírgulas. O Google Cloud espelha instâncias atuais e futuras na sub-rede.
  • TAG: uma ou mais tags de rede. O Google Cloud espelha as instâncias que têm a tag de rede. É possível fornecer várias tags usando uma lista separada por vírgulas.
  • INSTANCE: o ID totalmente qualificado de uma ou mais instâncias a serem espelhadas. É possível fornecer várias instâncias usando uma lista separada por vírgulas.
  • CIDR_RANGE: um ou mais intervalos CIDR IPv4 ou IPv6 a serem espelhados. Se nenhum intervalo CIDR for especificado, todo o tráfego IPv4 que corresponder aos protocolos especificados será espelhado. Se nenhum intervalo CIDR ou protocolo for especificado, todo o tráfego IPv4 será espelhado. Para espelhar todo o tráfego IPv4 e IPv6, use 0.0.0.0/0,::/0. É possível incluir intervalos CIDR IPv4 e IPv6. É possível fornecer vários intervalos usando uma lista separada por vírgulas.
  • PROTOCOL: um ou mais protocolos a serem espelhados. Os valores válidos são tcp, udp, icmp, esp, ah, ipip, sctp ou um número do protocolo IANA. Se nenhum protocolo for especificado, todo o tráfego que corresponder aos intervalos CIDR especificados será espelhado. Se nenhum protocolo ou intervalo CIDR for especificado, todo o tráfego IPv4 será espelhado. Para especificar o ICMP para IPv6, use 58. É possível fornecer vários protocolos usando uma lista separada por vírgulas.
  • DIRECTION: a direção do tráfego a ser espelhada em relação à VM. Por padrão, isso é definido como both, o que significa que o tráfego de entrada e de saída é espelhado. Você pode restringir quais pacotes são capturados especificando ingress para capturar apenas pacotes de entrada ou egress para capturar apenas pacotes de saída.

Terraform

É possível usar um recurso do Terraform para criar uma política de espelhamento de pacotes.

resource "google_compute_packet_mirroring" "default" {
  region      = "europe-west1"
  name        = "my-mirroring"
  description = "My packet mirror"
  network {
    url = google_compute_network.ilb_network.id
  }
  collector_ilb {
    url = google_compute_forwarding_rule.default.id
  }
  mirrored_resources {
    tags = ["foo"]
    instances {
      url = google_compute_instance.vm_test.id
    }
  }
  filter {
    ip_protocols = ["tcp"]
    cidr_ranges  = ["0.0.0.0/0"]
    direction    = "BOTH"
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

API

Para criar uma política de espelhamento de pacotes, faça uma solicitação POST para o método packetMirrorings.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings
{
  "name": "POLICY_NAME",
  "enable": "ENABLED",
  "network": {
    "url": "NETWORK_URL"
  },
  "priority": PRIORITY,
  "mirroredResources": {
    "subnetworks": [
      {
        "url": "SUBNET_URL"
      }
    ],
    "tags": [
      "TAG"
    ],
    "instances": [
      {
        "url": "INSTANCE"
      }
    ]
  },
  "collectorIlb": {
    "url": "FORWARDING_RULE_URL"
  },
  "filter": {
    "IPProtocols": [
      "PROTOCOL"
    ],
    "cidrRanges": [
      "CIDR_RANGE"
    ],
    "direction": "DIRECTION"
  }
}

Substitua:

  • PROJECT_ID: ID do projeto em que a política será criada.
  • REGION: é a região em que as origens espelhadas e o destino do coletor estão localizados.
  • POLICY_NAME: o nome da política de espelhamento de pacotes.
  • ENABLED: se a política entrará ou não em vigor. As opções são TRUE e FALSE. O padrão é TRUE.
  • NETWORK_URL: é o URL da rede em que as fontes espelhadas estão localizadas.
  • PRIORITY: a prioridade da regra de encaminhamento, que é usada para romper vínculos quando há mais de uma regra correspondente. O intervalo válido é de 0 a 65.535, e o padrão é 1.000.
  • SUBNET_URL: o URL de uma sub-rede a ser espelhada. O Google Cloud espelha instâncias atuais e futuras na sub-rede. É possível fornecer várias sub-redes usando uma lista separada por vírgulas.
  • TAG: uma tag de rede. O Google Cloud espelha as instâncias que têm a tag de rede. É possível fornecer várias tags usando uma lista separada por vírgulas.
  • INSTANCE: é o ID totalmente qualificado de uma instância a ser espelhada. É possível fornecer várias instâncias usando uma lista separada por vírgulas.
  • FORWARDING_RULE_URL: é o URL de uma regra de encaminhamento configurada como um coletor de espelhamento. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga de rede de passagem interno associado.
  • PROTOCOL: um ou mais protocolos. As opções são tcp, udp, icmp, esp, ah, ipip, sctp ou um número do protocolo IANA. Se nenhum protocolo for especificado, todo o tráfego que corresponder aos intervalos CIDR especificados será espelhado. Se nenhum intervalo CIDR ou protocolo for especificado, todo o tráfego IPv4 será espelhado. Para especificar o ICMP para IPv6, insira 58. É possível fornecer vários protocolos usando o seguinte formato: "icmp", "udp".
  • CIDR_RANGE: um ou mais intervalos CIDR IPv4 ou IPv6 a serem espelhados. Se nenhum intervalo CIDR for especificado, todo o tráfego IPv4 que corresponder aos protocolos especificados será espelhado. Se nenhum intervalo CIDR ou protocolo for especificado, todo o tráfego IPv4 será espelhado. Para espelhar todo o tráfego IPv4 e IPv6, use "0.0.0.0/0", "::/0". É possível incluir intervalos CIDR IPv4 e IPv6. É possível fornecer vários intervalos CIDR usando o seguinte formato: "192.0.2.0/24", "2001:0DB8::/32".
  • PROTOCOL: um ou mais protocolos a serem espelhados.
  • DIRECTION: a direção do tráfego a ser espelhado. As opções são INGRESS, EGRESS ou BOTH. O padrão é BOTH.

Verificar o espelhamento de pacotes

Para verificar se as instâncias do coletor estão recebendo tráfego espelhado corretamente, use tcpdump.

  1. Conecte-se a uma instância do coletor.

  2. Se o comando tcpdump não estiver disponível, instale-o.

  3. Identifique sua interface de rede:

    ip address
    

    Na lista de interfaces de rede, encontre o nome associado ao endereço IPv4 interno principal da sua instância do coletor, por exemplo, ens4.

  4. Comece a analisar os pacotes:

    sudo tcpdump -i INTERFACE_NAME -f "host IP_ADDRESS"
    

    Substitua:

    • INTERFACE_NAME: o nome da interface que você identificou na etapa 3.
    • IP_ADDRESS: o endereço IPv4 de uma VM de origem espelhada.
  5. Para executar o teste, envie tráfego da VM de origem espelhada, por exemplo, enviando um ping ICMP. Na saída de tcpdump, verifique se é possível ver o tráfego esperado.

Modificar uma política de espelhamento de pacotes

É possível atualizar uma política que já existe para alterar detalhes como origens espelhadas ou destinos do coletor.

Console

  1. No console do Google Cloud, acesse a página Espelhamento de pacotes.

    Acesse o Espelhamento de pacotes

  2. Na lista de políticas de espelhamento de pacotes, clique na que você quer editar.

  3. Na página de detalhes da política, clique em Editar.

  4. Edite os campos que você quer atualizar. O console segue o mesmo fluxo das etapas de criação de uma política. Para ver informações sobre cada campo, consulte Criar uma política de Espelhamento de pacotes

gcloud

Para atualizar uma política de espelhamento de pacotes que já existe, use o comando packet-mirrorings update.

gcloud compute packet-mirrorings update POLICY_NAME [--async] \
  [--collector-ilb=FORWARDING_RULE_NAME] [--description=DESCRIPTION] [--enable] \
  [--filter-direction=DIRECTION] [--region=REGION] \
  [--add-filter-cidr-ranges=[CIDR_RANGE,...] | --clear-filter-cidr-ranges \
    | --remove-filter-cidr-ranges=[CIDR_RANGE,...] \
    | --set-filter-cidr-ranges=[CIDR_RANGE,...]] \
  [--add-filter-protocols=[PROTOCOL,...] | --clear-filter-protocols \
    | --remove-filter-protocols=[PROTOCOL,...] \
    | --set-filter-protocols=[PROTOCOL,...]] \
  [--add-mirrored-instances=[INSTANCE,...] | --clear-mirrored-instances \
    | --remove-mirrored-instances=[INSTANCE,...] \
    | --set-mirrored-instances=[INSTANCE,...]] \
  [--add-mirrored-subnets=[SUBNET,...] | --clear-mirrored-subnets \
    | --remove-mirrored-subnets=[SUBNET,...] \
    | --set-mirrored-subnets=[SUBNET,...]] \
  [--add-mirrored-tags=[TAG,...] | --clear-mirrored-tags \
    | --remove-mirrored-tags=[TAG,...] | --set-mirrored-tags=[TAG,...]]

Substitua:

  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser modificada.
  • FORWARDING_RULE_NAME: o nome da regra de encaminhamento configurada como um coletor. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga de rede de passagem interno associado.
  • DESCRIPTION: uma descrição da política de espelhamento de pacotes.
  • DIRECTION: a direção do tráfego à qual aplicar a política de espelhamento de pacotes. As opções são egress, ingress ou both.
  • REGION: a região onde a política está localizada.
  • CIDR_RANGE: um ou mais intervalos CIDR IPv4 ou IPv6 a serem espelhados. Se nenhum intervalo CIDR for especificado, todo o tráfego IPv4 que corresponder aos protocolos especificados será espelhado. Se nenhum intervalo CIDR ou protocolo for especificado, todo o tráfego IPv4 será espelhado. Para espelhar todo o tráfego IPv4 e IPv6, use 0.0.0.0/0,::/0. É possível incluir intervalos CIDR IPv4 e IPv6. É possível fornecer vários intervalos usando uma lista separada por vírgulas.
  • PROTOCOL: um ou mais protocolos a serem espelhados. Os valores válidos são tcp, udp, icmp, esp, ah, ipip, sctp ou um número do protocolo IANA. Se nenhum protocolo for especificado, o tráfego que corresponder aos intervalos CIDR especificados será espelhado. Se nenhum protocolo ou intervalo CIDR for especificado, todo o tráfego IPv4 será espelhado. Para especificar o ICMP para IPv6, use 58. É possível fornecer vários protocolos usando uma lista separada por vírgulas.
  • INSTANCE: o ID totalmente qualificado de uma ou mais instâncias de VM a serem espelhadas. É possível fornecer várias instâncias usando uma lista separada por vírgulas.
  • SUBNET: uma ou mais sub-redes. É possível fornecer várias sub-redes usando uma lista separada por vírgulas. O Google Cloud espelha instâncias atuais e futuras na sub-rede.
  • TAG: uma ou mais tags de rede. É possível fornecer várias tags usando uma lista separada por vírgulas.

API

Para atualizar uma política de espelhamento de pacotes, faça uma solicitação POST para o método packetMirrorings.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
{
  "name": "POLICY_NAME",
  "description": "DESCRIPTION",
  "priority": "PRIORITY",
  "collectorIlb": {
    "url": "FORWARDING_RULE_URL"
  },
  "mirroredResources": {
    "subnetworks": [
      {
        "url": "SUBNET_URL"
      }
    ],
    "instances": [
      {
        "url": "INSTANCE_URL"
      }
    ],
    "tags": [
      "NETWORK_TAGS"
    ]
  },
  "filter": {
    "cidrRanges": [
      "CIDR_RANGE"
    ],
    "IPProtocols": [
      "PROTOCOL"
    ],
    "direction": "DIRECTION"
  },
  "enable": "ENABLED"
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política está localizada.
  • REGION: a região da política de espelhamento de pacotes.
  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser modificada.
  • DESCRIPTION: uma descrição opcional da política.
  • PRIORITY: a prioridade da política, que é usada para romper vínculos quando há várias políticas correspondentes. O valor padrão é 1.000. O intervalo válido é de 0 a 65.535.
  • FORWARDING_RULE_URL: o URL de uma regra de encaminhamento com o espelhamento de pacotes ativado. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga de rede de passagem interno associado.
  • SUBNET_URL: o URL de uma sub-rede. O Google Cloud espelha instâncias atuais e futuras na sub-rede. É possível fornecer várias sub-redes usando uma lista separada por vírgulas.
  • INSTANCE_URL: o URL de uma instância de VM a ser espelhada. É possível fornecer várias instâncias usando uma lista separada por vírgulas.
  • NETWORK_TAGS: uma tag de rede. O Google Cloud espelha as instâncias com uma ou mais tags de rede. É possível fornecer várias tags usando uma lista separada por vírgulas.
  • CIDR_RANGE: um ou mais intervalos CIDR IPv4 ou IPv6 a serem espelhados. Se nenhum intervalo CIDR for especificado, todo o tráfego IPv4 que corresponder aos protocolos especificados será espelhado. Se nenhum intervalo CIDR ou protocolo for especificado, todo o tráfego IPv4 será espelhado. Para espelhar todo o tráfego IPv4 e IPv6, use "0.0.0.0/0", "::/0". É possível incluir intervalos CIDR IPv4 e IPv6. É possível fornecer vários intervalos CIDR usando o seguinte formato: "192.0.2.0/24", "2001:DB8::/32".
  • IP_PROTOCOL: um ou mais protocolos. As opções são tcp, udp, icmp, esp, ah, ipip, sctp ou um número do protocolo IANA. Se nenhum protocolo for especificado, todo o tráfego que corresponder aos intervalos CIDR especificados será espelhado. Se nenhum intervalo CIDR ou protocolo for especificado, todo o tráfego IPv4 será espelhado. Para especificar o ICMP para IPv6, use 58. É possível fornecer vários protocolos usando o seguinte formato: "icmp", "udp".
  • DIRECTION: a direção do tráfego a ser espelhado. As opções são INGRESS, EGRESS ou BOTH. O padrão é BOTH.
  • ENABLED: indica se a política está ou não ativada. As opções são TRUE ou FALSE.

Listar políticas de espelhamento de pacotes

É possível listar políticas de espelhamento de pacotes para ver as políticas que já existem.

Console

  • No console do Google Cloud, acesse a página Espelhamento de pacotes.

    Acesse o Espelhamento de pacotes

    O console do Google Cloud lista todas as políticas no seu projeto.

gcloud

Para listar as políticas de espelhamento de pacotes no seu projeto ou para uma região específica, use o comando packet-mirrorings list.

gcloud compute packet-mirrorings list \
  [--filter="region:(REGION...)"]

Substitua REGION pelo nome da região que contém as políticas a serem listadas.

API

Para listar as políticas de espelhamento de pacotes existentes no seu projeto, faça uma solicitação GET para o método packetMirrorings.list.

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

Substitua PROJECT_ID pelo ID do seu projeto.

Para listar as políticas de espelhamento de pacotes existentes em uma determinada região, faça uma solicitação GET para o método packetMirrorings.list.

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

Substitua:

  • PROJECT_ID: o ID do projeto que contém as políticas a serem listadas.
  • REGION: é a região que contém as políticas a serem listadas.

Descrever uma política de espelhamento de pacotes

É possível descrever uma política de espelhamento de pacotes para exibir detalhes, como os filtros da política.

Console

  1. No console do Google Cloud, acesse a página Espelhamento de pacotes.

    Acesse o Espelhamento de pacotes

  2. Na lista de políticas de espelhamento de pacotes, selecione aquela que você quer visualizar. O console do Google Cloud mostra os detalhes da política que você selecionou.

gcloud

Para criar uma política de espelhamento de pacotes, use o comando packet-mirrorings describe.

gcloud compute packet-mirrorings describe POLICY_NAME \
  --region=REGION \

Substitua:

  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser descrita.
  • REGION: a região onde a política está localizada.

API

Para descrever uma política de espelhamento de pacotes, faça uma solicitação GET para o método packetMirrorings.get.

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

Substitua:

  • PROJECT_ID: o ID do projeto em que a política está localizada.
  • REGION: a região onde a política está localizada.
  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser descrita.

Desativar ou ativar uma política de espelhamento de pacotes

Desative ou ative uma política de espelhamento de pacotes para interromper ou começar a coletar o tráfego espelhado.

Console

  1. No console do Google Cloud, acesse a página Espelhamento de pacotes.

    Acesse o Espelhamento de pacotes

  2. Na lista de políticas de espelhamento de pacotes, selecione a que quer desativar ou ativar.

  3. Clique em Desativar ou Ativar.

  4. Confirme clicando em Desativar ou Ativar

gcloud

Para desativar uma política de espelhamento de pacotes, use o comando packet-mirrorings update.

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  --no-enable

Substitua:

  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser desativada ou ativada.
  • REGION: a região onde a política está localizada.

Para ativar uma política de espelhamento de pacotes, use o comando packet-mirrorings update.

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  --enable

Substitua:

  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser desativada ou ativada.
  • REGION: a região onde a política está localizada.

API

Para desativar ou ativar uma política de espelhamento de pacotes existente, faça uma solicitação PATCH para o método packetMirrorings.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
{
  "enable": "FALSE|TRUE"
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política está localizada.
  • REGION: a região onde a política está localizada.
  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser desativada.

Excluir uma política de espelhamento de pacotes

É possível excluir uma política de espelhamento de pacotes para removê-la do projeto. Depois que você exclui uma política, o Google Cloud para de espelhar todo o tráfego relacionado ela.

Console

  1. No console do Google Cloud, acesse a página Espelhamento de pacotes.

    Acesse o Espelhamento de pacotes

  2. Na lista de políticas de espelhamento de pacotes, selecione aquela que você quer excluir.

  3. Clique em Excluir.

  4. Confirme clicando em Excluir.

gcloud

Para excluir uma política de espelhamento de pacotes, use o comando packet-mirrorings delete.

gcloud compute packet-mirrorings delete POLICY_NAME \
  --region=REGION \

Substitua:

  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser excluída.
  • REGION: a região onde a política está localizada.

API

Para excluir uma política de espelhamento de pacotes, faça uma solicitação DELETE para o método packetMirrorings.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME

Substitua:

  • PROJECT_ID: o ID do projeto em que a política está localizada.
  • POLICY_NAME: o nome da política de espelhamento de pacotes a ser excluída.
  • REGION: a região onde a política está localizada.

Solução de problemas

Se a política de espelhamento de pacotes não estiver coletando o tráfego espelhado pretendido, verifique as seguintes configurações:

  • Verifique se há regras de firewall que permitem o tráfego de instâncias espelhadas para as instâncias do coletor.

  • Verifique se as origens espelhadas incluem ou excluem as instâncias a serem espelhadas. Por exemplo, se você especificar uma sub-rede como uma origem espelhada, todas as instâncias existentes e futuras na sub-rede serão espelhadas. Se você especificar tags, apenas as instâncias que tiverem tags correspondentes serão espelhadas.

  • Verifique se os filtros de espelhamento de pacote não são muito abrangentes ou muito restritos. Você pode ter configurado, involuntariamente, filtros para incluir ou excluir determinado tráfego.

  • Se você configurou uma política de espelhamento de pacotes para coletar tráfego IPv6, verifique se as origens do tráfego espelhado são VMs de pilha dupla conectadas a sub-redes de pilha dupla.