Use rotas baseadas em políticas

As rotas baseadas em políticas permitem-lhe selecionar um próximo salto com base em mais do que o endereço IP de destino de um pacote. Esta página descreve como criar, listar, descrever e eliminar rotas baseadas em políticas.

Antes de começar

Funções necessárias

Para receber as autorizações de que precisa para usar rotas baseadas em políticas, peça ao seu administrador que lhe conceda a função de administrador da rede de computação (roles/compute.networkAdmin) do IAM no seu projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Crie rotas baseadas em políticas

Quando cria uma rota baseada em políticas, especifica o seguinte:

  • Âmbito do trajeto: os recursos aos quais o trajeto pode ser aplicado.
  • Critérios de classificação: os intervalos de endereços IP de origem, os intervalos de endereços IP de destino e os protocolos que determinam a que pacotes se aplica a rota. A rota baseada em políticas aplica-se a pacotes que correspondem a todos os critérios de classificação especificados.
  • Salto seguinte: um balanceador de carga de rede de encaminhamento interno de salto seguinte ou um salto seguinte que ignora outras rotas baseadas em políticas.

Consola

  1. Na Google Cloud consola, aceda a Rotas.

    Aceda a Trajetos

  2. Clique em Gestão de rotas.

  3. Clique em Criar trajeto.

  4. Introduza um nome para o trajeto.

  5. Opcional: introduza uma descrição.

  6. Clique em Rede e, de seguida, selecione a rede onde quer adicionar a rota baseada em políticas.

  7. Clique em Tipo de trajeto e, de seguida, selecione Trajeto baseado em políticas.

  8. Selecione uma versão de IP.

  9. Na secção Âmbito da rota, efetue uma das seguintes ações:

    • Para aplicar o caminho a todas as instâncias de máquinas virtuais (VM), anexos de VLAN para o Cloud Interconnect e túneis de VPN do Google Cloud na rede de nuvem virtual privada, selecione Este caminho aplica-se a todas as instâncias de VM, anexos de VLAN e túneis de VPN.

      A Google recomenda precaução ao criar rotas deste tipo. A rota é aplicada a todos os pacotes de saída que correspondem aos critérios de classificação, que podem incluir tráfego de saída do back-end do Network Load Balancer de passagem interno.

    • Para aplicar a rota apenas a determinadas instâncias de VM, selecione Esta rota aplica-se apenas a instâncias de VM e, em seguida, introduza as etiquetas de rede das VMs às quais esta rota se deve aplicar. Pode introduzir várias etiquetas de rede numa lista separada por vírgulas.

    • Para aplicar a rota a todas as associações de VLAN para o Cloud Interconnect na rede VPC da rota, selecione Esta rota aplica-se apenas a associações de VLAN.

    • Para aplicar a rota a associações VLAN para o Cloud Interconnect numa região específica, selecione Esta rota aplica-se apenas a associações VLAN e, de seguida, selecione a região das associações VLAN. Não é possível criar uma rota baseada em políticas que se aplique a uma associação de VLAN específica.

  10. Na secção Critérios de classificação, faça o seguinte:

    1. Introduza um intervalo de IPs de origem.
    2. Introduza um intervalo de IPs de destino.
    3. Clique em Protocolo e, de seguida, selecione os protocolos aos quais esta rota se aplica.
  11. Introduza uma prioridade.

  12. Na secção Salto seguinte, clique em Salto seguinte e, de seguida, faça o seguinte:

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

      • Para selecionar uma regra de encaminhamento a partir de uma lista de regras de encaminhamento existentes:
        1. Selecione Em utilização pela regra de encaminhamento de um balanceador de carga interno no projeto atual.
        2. Clique em Endereço IP da regra de encaminhamento e, de seguida, selecione um endereço IP associado a um equilibrador de carga interno no projeto selecionado.
      • Para introduzir um endereço IP:

        1. Selecione Não usado.
        2. No campo Endereço IP da regra de encaminhamento, introduza um endereço IP sem um comprimento do prefixo. O endereço IP tem de ser proveniente de uma das seguintes origens:

          • Os intervalos de endereços IP da rede VPC onde está a criar este encaminhamento baseado em políticas.
          • Os intervalos de endereços IP de uma rede de VPC que está ligada à rede de VPC da rota através do intercâmbio das redes de VPC.

        Pode especificar um endereço IP que já esteja associado à regra de encaminhamento de um Network Load Balancer de passagem interno ou especificar um endereço IP não usado e criar a regra de encaminhamento depois de criar esta rota baseada em políticas.

    • Para criar um trajeto baseado em políticas que ignore outros trajetos baseados em políticas, selecione Ignorar outros trajetos baseados em políticas.

  13. Clique em Criar.

gcloud

Use o comando policy-based-routes create.

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

    A Google recomenda precaução ao criar rotas deste tipo. A rota é aplicada a todos os pacotes de saída que correspondem aos critérios de classificação, que podem incluir tráfego de saída do back-end do Network Load Balancer de passagem interno.

    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 o seguinte:

    • ROUTE_NAME: o nome da rota baseada em políticas.
    • SOURCE_RANGE: o intervalo CIDR do IP de origem.
    • DESTINATION_RANGE: o intervalo CIDR do IP de destino.
    • PROTOCOL: o protocolo de tráfego a encaminhar. As opções são ALL, TCP ou UDP. A predefinição é ALL.
    • IP_VERSION: uma única versão do protocolo de Internet à qual esta rota se aplica. Especifique IPv4 ou IPv6. A predefinição é IPv4.
    • PROJECT_ID: o ID do projeto.
    • NETWORK: o nome da rede à qual aplicar o trajeto baseado em políticas.
    • NEXT_HOP: um único endereço IP, sem um comprimento do prefixo, para o próximo salto do balanceador de carga de passagem interna da rota. Especifique um endereço IPv4 como um próximo salto para o tráfego IPv4 ou especifique um endereço IPv6 para o tráfego IPv6. O balanceador de carga tem de estar na mesma rede da VPC que o trajeto baseado em políticas ou numa rede da VPC que esteja ligada à rede da VPC do trajeto através do intercâmbio da rede da VPC.

      Se a rota se aplicar ao tráfego IPv6, tem de configurar o balanceador de carga com sub-redes que tenham intervalos de endereços IPv6.

    • DESCRIPTION: uma descrição opcional do percurso.

    • PRIORITY: a prioridade da rota baseada em políticas em comparação com outras rotas baseadas 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 etiquetas de rede das VMs às quais aplicar a rota. Pode incluir várias etiquetas de rede numa lista separada por vírgulas.

  • Para aplicar a rota apenas a associações de VLAN para o Cloud Interconnect, use o seguinte comando. Pode aplicar a rota a associações de VLAN para o Cloud Interconnect numa região específica ou a todas as associações de VLAN para o Cloud Interconnect numa 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 de VLAN para o Cloud Interconnect ao qual aplicar a rota. Para aplicar o encaminhamento baseado em políticas a todos os anexos de VLAN para o Cloud Interconnect na rede VPC do encaminhamento, use all.

  • Para especificar um próximo salto que ignore outras rotas baseadas em políticas para VMs específicas identificadas por etiquetas 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 um pedido 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, anexos de VLAN para o Cloud Interconnect e túneis do Cloud VPN na rede da nuvem virtual privada, inclua o seguinte corpo do pedido.

    A Google recomenda precaução ao criar rotas deste tipo. A rota é aplicada a todos os pacotes de saída que correspondem aos critérios de classificação, que podem incluir tráfego de saída do back-end do Network Load Balancer de passagem interno.

    {
      "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 o seguinte:

    • PROJECT_ID: o ID do projeto.
    • ROUTE_NAME: o nome da rota baseada em políticas.
    • SOURCE_RANGE: o intervalo CIDR do IP de origem.
    • DESTINATION_RANGE: o intervalo CIDR do IP de destino.
    • PROTOCOL: o protocolo de tráfego a encaminhar. As opções são ALL, TCP ou UDP. A predefinição é ALL.
    • IP_VERSION: uma única versão do protocolo de Internet à qual a rota se aplica. Especifique IPv4 ou IPv6. O valor predefinido é IPv4.
    • NETWORK: o nome da rede à qual aplicar o trajeto baseado em políticas. A rota aplica-se ao tráfego de saída de instâncias nesta rede que cumprem os outros critérios de classificação.
    • NEXT_HOP: um único endereço IP, sem um comprimento do prefixo, para o próximo salto do balanceador de carga de passagem interna da rota. Especifique um endereço IPv4 como um próximo salto para o tráfego IPv4 ou especifique um endereço IPv6 para o tráfego IPv6. O balanceador de carga tem de estar na mesma rede da VPC que o trajeto baseado em políticas ou numa rede da VPC que esteja ligada à rede da VPC do trajeto através do intercâmbio da rede da VPC.

      Se a rota se aplicar ao tráfego IPv6, tem de configurar o balanceador de carga com sub-redes que tenham intervalos de endereços IPv6.

    • DESCRIPTION: uma descrição opcional do percurso.

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

  • Para aplicar a rota apenas a determinadas instâncias de VM, inclua o seguinte corpo do pedido:

    {
      "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 etiquetas de rede. A rota baseada em políticas aplica-se ao tráfego de saída de instâncias que têm, pelo menos, uma destas etiquetas. Pode incluir várias etiquetas no seguinte formato: "tag1","tag2","tag3".

  • Para aplicar a rota apenas a associações de VLAN para o Cloud Interconnect, inclua o seguinte corpo do pedido. Não é possível criar uma rota baseada em políticas que se aplique a uma associação de VLAN específica.

    {
      "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 de VLAN para o Cloud Interconnect aos quais aplicar este trajeto. Para aplicar a rota baseada em políticas a todos os anexos de VLAN do Cloud Interconnect na rede VPC da rota, use all.

  • Para especificar um próximo salto que ignore outras rotas baseadas em políticas para VMs específicas identificadas por etiquetas 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"
        ]
      }
    }
    

Valide a conetividade de uma rota baseada em políticas

Os testes de conetividade são uma ferramenta de diagnóstico que lhe permite verificar a conetividade entre pontos finais na sua rede. Analisa a sua configuração e, em alguns casos, realiza a validação em tempo de execução. Os testes de conetividade suportam rotas baseadas em políticas. Para executar testes de conetividade com as suas rotas baseadas em políticas, consulte o artigo Crie e execute testes de conetividade.

Liste rotas baseadas em políticas

Pode listar as rotas baseadas em políticas para ver todas as rotas baseadas em políticas num projeto ou numa rede e região.

Consola

  1. Na Google Cloud consola, aceda a Rotas.

    Aceda a Trajetos

    • Para ver todas as rotas baseadas em políticas numa rede VPC e numa região, faça o seguinte:

      1. Clique em Trajetos eficazes.
      2. Clique em Rede e, de seguida, selecione uma rede.
      3. Clique em Região e, de seguida, selecione uma região.
      4. Clique em Ver.
    • Para ver todas as rotas baseadas em políticas num projeto, faça o seguinte:

      1. Clique em Gestão de rotas.

gcloud

Use o comando policy-based-routes list.

gcloud network-connectivity policy-based-routes list

API

Envie um pedido 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 as rotas baseadas em políticas.

Descreva rotas baseadas em políticas

Pode descrever um trajeto baseado em políticas para ver detalhes sobre o trajeto.

Consola

  1. Na Google Cloud consola, aceda a Rotas.

    Aceda a Trajetos

  2. Clique em Trajetos eficazes.

  3. Clique em Rede e, de seguida, selecione uma rede.

  4. Clique em Região e, de seguida, selecione uma região.

  5. Clique em Ver.

  6. Clique no nome de uma rota baseada em políticas para ver os respetivos detalhes.

gcloud

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

gcloud network-connectivity policy-based-routes describe NAME

Substitua NAME pelo nome do trajeto a descrever.

API

Envie um pedido GET para o método policyBasedRoutes.get.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto.
  • ROUTE_NAME: o nome da rota baseada em políticas a descrever.

Elimine rotas baseadas em políticas

Pode eliminar uma rota baseada em políticas para a remover de uma rede de VPC.

Consola

  1. Na Google Cloud consola, aceda a Rotas.

    Aceda a Trajetos

  2. Clique em Trajetos eficazes.

  3. Clique em Rede e, de seguida, selecione uma rede.

  4. Clique em Região e, de seguida, selecione uma região.

  5. Clique em Ver.

  6. Clique no nome de uma rota baseada em políticas.

  7. Clique em Eliminar e, de seguida, clique novamente em Eliminar para confirmar.

gcloud

Para eliminar uma rota baseada em políticas, use o comando policy-based-routes delete.

gcloud network-connectivity policy-based-routes delete NAME

Substitua NAME pelo nome do trajeto a eliminar.

API

Envie um pedido DELETE para o método policyBasedRoutes.delete.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto.
  • ROUTE_NAME: o nome da rota baseada em políticas a eliminar.

Compatibilidade

É necessária uma configuração especial para usar rotas baseadas em políticas das seguintes formas.

Use rotas baseadas em políticas com o GKE

Se criar rotas baseadas em políticas em redes VPC que tenham clusters do Google Kubernetes Engine (GKE), tenha em atenção o seguinte:

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

As rotas baseadas em políticas não podem encaminhar tráfego para pontos finais do Private Service Connect para serviços publicados nem backends do Private Service Connect para serviços publicados. Quando usar rotas baseadas em políticas e o Private Service Connect para serviços publicados:

  • Use etiquetas de rede para que as rotas baseadas em políticas se apliquem 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 precisar de criar um trajeto baseado em políticas com um intervalo de destino que inclua o endereço IP de um ponto final ou um back-end do Private Service Connect, crie um trajeto baseado em políticas de prioridade mais elevada que ignore outros trajetos baseados em políticas. Configure o destino da rota baseada em políticas de prioridade mais elevada com um intervalo de endereços IP mais específico que inclua o endereço IP do ponto final ou do back-end do Private Service Connect.

Rotas baseadas em políticas e acesso a APIs e serviços Google

Google Cloud não suporta o encaminhamento de tráfego para APIs e serviços Google através de outras instâncias de VM ou saltos seguintes personalizados, incluindo back-ends de VM de equilibradores de carga de passagem interna de salto seguinte em rotas baseadas em políticas.

Se usar qualquer uma das seguintes formas para aceder às APIs e aos serviços Google, consulte as práticas recomendadas indicadas na secção seguinte:

Práticas recomendadas

Recomendamos as seguintes práticas recomendadas para as formas anteriores de aceder às APIs e aos serviços Google:

  • Use etiquetas de rede para que as rotas baseadas em políticas se apliquem a VMs específicas.
  • Evite criar rotas baseadas em políticas com intervalos de origem ou destino de 0.0.0.0/0.
  • Se criar rotas baseadas em políticas que incluam intervalos de destino usados pelas APIs e pelos serviços Google, pontos finais do Private Service Connect para APIs Google ou back-ends do Private Service Connect para APIs, crie rotas baseadas em políticas de prioridade mais elevada que ignorem outras rotas baseadas em políticas. Defina os destinos destas rotas baseadas em políticas de prioridade mais elevada para corresponderem aos endereços IP das APIs e dos serviços Google, pontos finais do Private Service Connect ou backends do Private Service Connect que usa. Os intervalos de endereços IP usados pelas APIs e pelos serviços Google incluem o seguinte:
    • Os endereços IP dos domínios predefinidos usados pelas APIs e serviços Google
    • As moradas IP virtuais (VIPs) do acesso privado Google:
      • private.googleapis.com (199.36.153.8/30)
      • restricted.googleapis.com (199.36.153.4/30)