Usar rotas com base em políticas

Rotas baseadas em políticas permitem selecionar um próximo salto com base em mais do que o endereço IP de destino de um pacote. Nesta página, descrevemos como criar, listar, descrever e excluir rotas com base em políticas.

Antes de começar

Funções exigidas

Para receber as permissões necessárias para usar rotas baseadas em políticas, peça ao administrador para conceder a você o papel do IAM de administrador da rede do Compute (roles/compute.networkAdmin) no seu projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Criar rotas com base em políticas

Ao criar uma rota com base em políticas, você especifica o seguinte:

  • Escopo da rota: os recursos a que a rota pode se aplicar.
  • Critérios de classificação: os intervalos de endereços IP de origem e de destino e os protocolos que determinam a quais pacotes a rota se aplica. A rota com base em políticas se aplica a pacotes que correspondem a todos os critérios de classificação especificados.
  • Próximo salto: um balanceador de carga de rede de passagem interna de próximo salto ou um próximo salto que ignora outras rotas com base em políticas.

Console

  1. No console do Google Cloud, acesse Rotas.

    Acessar a página Rotas

  2. Clique em Gerenciamento de rotas.

  3. Clique em Criar rota.

  4. Digite um Nome para a rota.

  5. Opcional: digite uma Descrição.

  6. Clique em Rede e selecione a rede à qual você quer adicionar a rota com base em políticas.

  7. Clique em Tipo de rota e selecione Rota com base em políticas.

  8. Na seção Escopo da rota, siga um destes procedimentos:

    • Para fazer com que a rota se aplique a todas as instâncias de máquina virtual (VM), aos anexos da VLAN do Cloud Interconnect e aos túneis do Cloud VPN na rede da nuvem privada virtual, selecione Esta rota se aplica a todas as instâncias de VM, anexos da VLAN e túneis VPN.

      O Google recomenda ter cuidado ao criar rotas desse tipo. A rota é aplicada a todos os pacotes de saída que correspondem aos critérios de classificação, o que pode incluir o tráfego de saída do back-end do balanceador de carga de rede de passagem interna.

    • Para que a rota se aplique apenas a determinadas instâncias de VM, selecione Esta rota só se aplica a instâncias de VM e insira as tags de rede das VMs a que essa rota precisa se aplicar. É possível incluir várias tags de rede em uma lista separada por vírgulas.

    • Para fazer com que a rota se aplique a todos os anexos da VLAN do Cloud Interconnect na rede VPC da rota, selecione Esta rota só se aplica a anexos da VLAN.

    • Para fazer com que a rota seja aplicada a anexos da VLAN do Cloud Interconnect em uma região específica, selecione Esta rota só se aplica a anexos da VLAN e selecione a região dos anexos da VLAN. Não é possível criar uma rota com base em políticas que se aplique a um anexo da VLAN específico.

  9. Na seção Critérios de classificação, faça o seguinte:

    1. Digite um Intervalo de IP de origem.
    2. Digite um Intervalo de IP de destino.
    3. Clique em Protocolo e selecione os protocolos a que essa rota se aplica.
  10. Digite uma Prioridade.

  11. Na seção Próximo salto, clique em Próximo salto e faça o seguinte:

    • Para especificar um balanceador de carga de rede de passagem interno de próximo salto, selecione Especificar uma regra de encaminhamento do balanceador de carga de rede de passagem interno e faça o seguinte:

      • Para selecionar uma regra de encaminhamento em uma lista de regras de encaminhamento atuais, faça o seguinte:
        1. Selecione Em uso pela regra de encaminhamento de um balanceador de carga interno no projeto atual.
        2. Clique em Endereço IP da regra de encaminhamento e, em seguida, selecione um endereço IP associado a um balanceador de carga interno no projeto selecionado.
      • Para inserir um endereço IP:

        1. Selecione Não utilizado.
        2. No campo Endereço IP da regra de encaminhamento, insira um endereço IP, sem tamanho de prefixo. O endereço IP precisa vir de uma das seguintes fontes:

          • Os intervalos de endereços IP da rede VPC em que você está criando essa rota com base nas políticas.
          • Os intervalos de endereços IP de uma rede VPC está conectado à rede VPC da rota usando peering de rede VPC (pré-lançamento).

        Especifique um endereço IP que já esteja associado à regra de encaminhamento de um balanceador de carga de rede de passagem interno ou especifique um endereço IP não utilizado e crie a regra de encaminhamento depois de criar essa rota com base em política.

    • Para criar uma rota com base em política que ignore outras, selecione Pular outras rotas com base em política.

  12. Clique em Criar.

gcloud

Use o comando policy-based-routes create.

  • Para aplicar a rota a todas as instâncias de VM, aos anexos da VLAN do Cloud Interconnect e aos túneis do Cloud VPN na rede de nuvem privada virtual, use o comando a seguir.

    O Google recomenda ter cuidado ao criar rotas desse tipo. A rota é aplicada a todos os pacotes de saída que correspondem aos critérios de classificação, o que pode incluir o tráfego de saída do back-end do balanceador de carga de rede de passagem interna.

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
        --source-range=SOURCE_RANGE \
        --destination-range=DESTINATION_RANGE \
        --ip-protocol=PROTOCOL \
        --protocol-version=IP_VERSION \
        --network="projects/PROJECT_ID/global/networks/NETWORK" \
        --next-hop-ilb-ip=NEXT_HOP \
        --description=DESCRIPTION \
        --priority=PRIORITY
    

    Substitua:

    • ROUTE_NAME: o nome da rota com base em políticas
    • SOURCE_RANGE: o intervalo CIDR de IP de origem
    • DESTINATION_RANGE: o intervalo CIDR de IP de destino
    • PROTOCOL: o protocolo do tráfego para encaminhamento. As opções são ALL, TCP ou UDP. O padrão é ALL.
    • IP_VERSION: uma única versão do protocolo de Internet às quais essa rota se aplica. Especifique IPv4, IPv6 ou (Pré-lançamento). O padrão é IPv4. Para especificar IPv6, use a versão Beta da CLI do Google Cloud.
    • PROJECT_ID: o ID do projeto.
    • NETWORK: o nome da rede à qual aplicar a rota baseada em política.
    • NEXT_HOP: um único endereço IP, sem um tamanho de prefixo, para o balanceador de carga de rede de passagem interna do próximo salto da rota. Especifique um endereço IPv4 como próximo salto para o tráfego IPv4 ou um endereço IPv6 para Tráfego IPv6 (visualização). O balanceador de carga precisa estar na mesma rede VPC como a rota com base na política ou em uma rede VPC conectada à rede VPC da rota usando peering de rede VPC (pré-lançamento).

      Se a rota se aplicar ao tráfego IPv6 (visualização), você precisa Configurar o balanceador de carga com sub-redes de pilha dupla.

      Para especificar um endereço IPv6 ou um endereço IP de uma rede VPC de peering, use a versão Beta da CLI do Google Cloud.

    • DESCRIPTION: uma descrição opcional da rota.

    • PRIORITY: a prioridade da rota com base em políticas em comparação com outras rotas com base em políticas.

  • Para aplicar a rota apenas a determinadas instâncias de VM, use o seguinte comando:

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
        --source-range=SOURCE_RANGE \
        --destination-range=DESTINATION_RANGE \
        --ip-protocol=PROTOCOL \
        --protocol-version=IP_VERSION \
        --network="projects/PROJECT_ID/global/networks/NETWORK" \
        --next-hop-ilb-ip=NEXT_HOP \
        --description=DESCRIPTION \
        --priority=PRIORITY \
        --tags=NETWORK_TAGS
    

    Substitua NETWORK_TAGS por uma ou mais tags de rede das VMs para aplicar a rota. É possível incluir várias tags de rede em uma lista separada por vírgulas.

  • Para aplicar a rota somente a anexos da VLAN do Cloud Interconnect, use o comando a seguir. É possível aplicar a rota a anexos da VLAN do Cloud Interconnect em uma região específica ou a todos os anexos da VLAN do Cloud Interconnect em uma rede VPC.

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
        --source-range=SOURCE_RANGE \
        --destination-range=DESTINATION_RANGE \
        --ip-protocol=PROTOCOL \
        --protocol-version=IP_VERSION \
        --network="projects/PROJECT_ID/global/networks/NETWORK" \
        --next-hop-ilb-ip=NEXT_HOP \
        --description=DESCRIPTION \
        --priority=PRIORITY \
        --interconnect-attachment-region=INTERCONNECT_REGION
    

    Substitua INTERCONNECT_REGION pela região dos anexos da VLAN do Cloud Interconnect para aplicar essa rota. Para aplicar a rota com base em política a todos os anexos da VLAN do Cloud Interconnect na rede VPC da rota, use all.

  • Para especificar um próximo salto que pule outras rotas com base em política em VMs específicas identificadas por tags de rede, use o seguinte comando:

    gcloud network-connectivity policy-based-routes create ROUTE_NAME \
        --source-range=SOURCE_RANGE \
        --destination-range=DESTINATION_RANGE \
        --ip-protocol=PROTOCOL \
        --protocol-version=IP_VERSION \
        --network="projects/PROJECT_ID/global/networks/NETWORK" \
        --next-hop-other-routes=DEFAULT_ROUTING \
        --description=DESCRIPTION \
        --priority=PRIORITY \
        --tags=NETWORK_TAGS
    

API

Envie uma solicitação POST para o método policyBasedRoutes.create:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME
  • Para aplicar a rota a todas as instâncias de VM, aos anexos da VLAN do Cloud Interconnect e aos túneis do Cloud VPN na rede de nuvem privada virtual, inclua o corpo da solicitação a seguir.

    O Google recomenda ter cuidado ao criar rotas desse tipo. A rota é aplicada a todos os pacotes de saída que correspondem aos critérios de classificação, o que pode incluir o tráfego de saída do back-end do balanceador de carga de rede de passagem interna.

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IP_VERSION"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopIlbIp": "NEXT_HOP",
      "description": "DESCRIPTION",
      "priority": "PRIORITY"
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto.
    • ROUTE_NAME: o nome da rota com base em políticas
    • SOURCE_RANGE: o intervalo CIDR de IP de origem
    • DESTINATION_RANGE: o intervalo CIDR de IP de destino
    • PROTOCOL: o protocolo do tráfego para encaminhamento. As opções são ALL, TCP ou UDP. O padrão é ALL.
    • IP_VERSION: uma única versão do protocolo de Internet às quais a rota se aplica. Especifique IPv4, IPv6 ou (Pré-lançamento). O padrão é IPv4. Para especificar um endereço IPv6, use a API v1beta.
    • NETWORK: o nome da rede à qual aplicar a rota baseada em política. A rota se aplica ao tráfego de saída de instâncias nessa rede que atendem aos outros critérios correspondentes.
    • NEXT_HOP: um único endereço IP, sem um tamanho de prefixo, para o balanceador de carga de rede de passagem interna do próximo salto da rota. Especifique um endereço IPv4 como próximo salto para o tráfego IPv4 ou um endereço IPv6 para Tráfego IPv6 (visualização). O balanceador de carga precisa estar na mesma rede VPC como a rota com base na política ou em uma rede VPC conectada à rede VPC da rota usando peering de rede VPC (pré-lançamento).

      Se a rota se aplicar ao tráfego IPv6 (visualização), você precisa Configurar o balanceador de carga com sub-redes de pilha dupla.

      Para especificar um endereço IPv6 ou um endereço IP de uma rede VPC de peering, use a API v1beta.

    • DESCRIPTION: uma descrição opcional da rota.

    • PRIORITY: a prioridade da rota com base em políticas em comparação com outras rotas com base em políticas.

  • Para aplicar a rota apenas a determinadas instâncias de VM, inclua o seguinte corpo da solicitação:

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IP_VERSION"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopIlbIp": "NEXT_HOP",
      "description": "DESCRIPTION",
      "priority": "PRIORITY",
      "virtualMachine": {
        "tags": [
          "NETWORK_TAGS"
        ]
      }
    }
    

    Substitua NETWORK_TAGS por uma ou mais tags de rede. A rota com base em políticas se aplica ao tráfego de saída de instâncias que têm pelo menos uma dessas tags. É possível incluir várias tags no seguinte formato: "tag1","tag2","tag3".

  • Para aplicar a rota somente a anexos da VLAN do Cloud Interconnect, inclua o corpo da solicitação a seguir. Não é possível criar uma rota com base em políticas que se aplique a um anexo da VLAN específico.

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IP_VERSION"
      },
      "interconnectAttachment": {
        "region": "INTERCONNECT_REGION"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopIlbIp": "NEXT_HOP",
      "description": "DESCRIPTION",
      "priority": "PRIORITY"
    }
    

    Substitua INTERCONNECT_REGION pela região dos anexos da VLAN do Cloud Interconnect para aplicar essa rota. Para aplicar a rota com base em política a todos os anexos da VLAN do Cloud Interconnect na rede VPC da rota, use all.

  • Para especificar um próximo salto que pule outras rotas com base em política em VMs específicas identificadas por tags de rede, use o seguinte comando:

    {
      "filter": {
        "srcRange": "SOURCE_RANGE",
        "destRange": "DESTINATION_RANGE",
        "ipProtocol": "PROTOCOL",
        "protocolVersion": "IP_VERSION"
      },
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "nextHopOtherRoutes": "DEFAULT_ROUTING",
      "description": "DESCRIPTION",
      "priority": "PRIORITY",
      "virtualMachine": {
        "tags": [
          "NETWORK_TAGS"
        ]
      }
    }
    

Verificar a conectividade de uma rota baseada em política

Os testes de conectividade são uma ferramenta de diagnóstico que permite verificar a conectividade entre os endpoints na sua rede. Ele analisa sua configuração e, em alguns casos, executa a verificação de ambiente de execução. O Connectivity Tests oferece suporte com rotas baseadas em políticas. Para executar testes de conectividade com as rotas baseadas em políticas, consulte Criar e executar testes de conectividade.

Listar rotas com base em políticas

É possível listar rotas com base em políticas para visualizar todas as rotas com base em políticas em um projeto ou rede e região.

Console

  1. No console do Google Cloud, acesse Rotas.

    Acessar a página Rotas

    • Para visualizar todas as rotas com base em políticas em uma rede e região VPC, faça o seguinte:

      1. Clique em Rotas efetivas.
      2. Clique em Rede e selecione uma rede.
      3. Clique em Região e selecione uma opção.
      4. Clique em Visualizar.
    • Para visualizar todas as rotas com base em políticas em um projeto, faça o seguinte:

      1. Clique em Gerenciamento de rotas.

gcloud

Use o comando policy-based-routes list.

gcloud network-connectivity policy-based-routes list

API

Envie uma solicitação GET para o método policyBasedRoutes.list.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes

Substitua PROJECT_ID pelo ID do projeto para listar rotas baseadas em políticas.

Descrever rotas com base em políticas

É possível descrever uma rota com base em políticas Para mais detalhes sobre ela.

Console

  1. No console do Google Cloud, acesse Rotas.

    Acessar a página Rotas

  2. Clique em Rotas efetivas.

  3. Clique em Rede e selecione uma rede.

  4. Clique em Região e selecione uma opção.

  5. Clique em Visualizar.

  6. Clique no Nome de uma rota com base em políticas para ver os detalhes.

gcloud

Para descrever uma rota com base em políticas, use o comando policy-based-routes describe.

gcloud network-connectivity policy-based-routes describe NAME

Substitua NAME pelo nome da rota que será descrita.

API

Envie uma solicitação GET para o método policyBasedRoutes.get.

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME

Substitua:

  • PROJECT_ID: o ID do projeto.
  • ROUTE_NAME: o nome da rota com base em políticas a ser descrita.

Excluir rotas com base em políticas

É possível excluir uma rota com base em políticas para removê-la de uma rede VPC.

Console

  1. No console do Google Cloud, acesse Rotas.

    Acessar a página Rotas

  2. Clique em Rotas efetivas.

  3. Clique em Rede e selecione uma rede.

  4. Clique em Região e selecione uma opção.

  5. Clique em Visualizar.

  6. Clique no Nome de uma rota com base em políticas.

  7. Clique em Excluir, depois em Excluir novamente para confirmar.

gcloud

Para excluir uma rota com base em políticas, use o comando policy-based-routes delete.

gcloud network-connectivity policy-based-routes delete NAME

Substitua NAME pelo nome da rota a ser excluída.

API

Envie uma solicitação DELETE para o método policyBasedRoutes.delete.

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME

Substitua:

  • PROJECT_ID: o ID do projeto.
  • ROUTE_NAME: o nome da rota com base em políticas a ser excluída.

Compatibilidade

Uma configuração especial é necessária para usar rotas baseadas em políticas das seguintes maneiras.

Usar rotas baseadas em políticas com o GKE

Ao criar rotas com base em políticas em redes VPC que têm clusters do Google Kubernetes Engine (GKE), lembre-se do seguinte:

Rotas com base em políticas e Private Service Connect para serviços publicados

Rotas com base em políticas não podem ser usadas para rotear o tráfego de VMs para endpoints do Private Service Connect para serviços publicados ou back-ends do Private Service Connect para serviços publicados. Ao usar rotas com base em políticas e o Private Service Connect para serviços publicados:

  • Use tags de rede para que as rotas com base em políticas sejam aplicadas a VMs específicas.
  • Evite criar rotas baseadas em políticas com intervalos de endereços IP de origem ou destino de 0.0.0.0/0.
  • Se você precisar criar uma rota com base em políticas com um intervalo de destino que inclua o endereço IP de um endpoint ou back-end do Private Service Connect, crie uma rota com base em políticas de prioridade mais alta que pule outras rotas com base em políticas. Configure o destino da rota com base em políticas de prioridade mais alta com um intervalo de endereços IP mais específico que inclua o endereço IP do endpoint ou back-end do Private Service Connect.

Rotas com base em políticas e acesso a APIs e serviços do Google

O Google Cloud não oferece suporte ao tráfego de roteamento para APIs e serviços do Google por meio de outras instâncias de VM ou próximos saltos personalizados, incluindo back-ends de VM de balanceadores de carga de rede de passagem interna de próximo salto em rotas com base em políticas.

Se você usar uma das seguintes maneiras para acessar as APIs e os serviços do Google, consulte as práticas recomendadas listadas na seção a seguir:

Práticas recomendadas

Recomendamos as seguintes práticas para as formas anteriores de acessar APIs e serviços do Google:

  • Use tags de rede para que as rotas com base em políticas sejam aplicadas a VMs específicas.
  • Evite criar rotas baseadas em políticas com intervalos de origem ou destino de 0.0.0.0/0.
  • Se você criar rotas baseadas em políticas que incluam intervalos de destino usados por APIs e serviços do Google, endpoints do Private Service Connect para APIs do Google ou back-ends do Private Service Connect para APIs, crie rotas com base em políticas de prioridade mais alta que ignoram outras rotas com base em políticas. Defina os destinos dessas rotas com base em políticas de prioridade mais alta para que correspondam aos endereços IP das APIs e dos serviços do Google, aos endpoints do Private Service Connect ou os aos back-ends do Private Service Connect que você usar. Os intervalos de endereços IP usados pelas APIs e serviços do Google incluem o seguinte:
    • Os endereços IP dos domínios padrão usados pelas APIs e serviços do Google
    • Os endereços IP virtuais (VIPs) do Acesso privado do Google:
      • private.googleapis.com (199.36.153.8/30)
      • restricted.googleapis.com (199.36.153.4/30)