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
- Para usar os exemplos de linha de comando neste guia, instale ou atualize para a versão mais recente da Google Cloud CLI.
- É necessário ativar a API Network Connectivity no projeto.
- Você precisa de um balanceador de carga de rede de passagem interna. Recomendamos ativar o acesso global para que o balanceador de carga de rede de passagem interno não solte pacotes de regiões diferentes do que está definido.
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 a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de 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
No console do Google Cloud, acesse Rotas.
Clique em Gerenciamento de rotas.
Clique em Criar rota.
Digite um Nome para a rota.
Opcional: digite uma Descrição.
Clique em Rede e selecione a rede à qual você quer adicionar a rota com base em políticas.
Clique em Tipo de rota e selecione Rota com base em políticas.
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.
Na seção Critérios de classificação, faça o seguinte:
- Digite um Intervalo de IP de origem.
- Digite um Intervalo de IP de destino.
- Clique em Protocolo e selecione os protocolos a que essa rota se aplica.
Digite uma Prioridade.
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:
- Selecione Em uso pela regra de encaminhamento de um balanceador de carga interno no projeto atual.
- 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:
- Selecione Não utilizado.
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 selecionar uma regra de encaminhamento em uma lista de regras de encaminhamento atuais,
faça o seguinte:
Para criar uma rota com base em política que ignore outras, selecione Pular outras rotas com base em política.
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íticasSOURCE_RANGE
: o intervalo CIDR de IP de origemDESTINATION_RANGE
: o intervalo CIDR de IP de destinoPROTOCOL
: o protocolo do tráfego para encaminhamento. As opções sãoALL
,TCP
ouUDP
. O padrão éALL
.IP_VERSION
: uma única versão do protocolo de Internet às quais essa rota se aplica. EspecifiqueIPv4
,IPv6
ou (Pré-lançamento). O padrão éIPv4
. Para especificarIPv6
, 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, useall
.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íticasSOURCE_RANGE
: o intervalo CIDR de IP de origemDESTINATION_RANGE
: o intervalo CIDR de IP de destinoPROTOCOL
: o protocolo do tráfego para encaminhamento. As opções sãoALL
,TCP
ouUDP
. O padrão éALL
.IP_VERSION
: uma única versão do protocolo de Internet às quais a rota se aplica. EspecifiqueIPv4
,IPv6
ou (Pré-lançamento). O padrão éIPv4
. Para especificar um endereçoIPv6
, 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, useall
.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
No console do Google Cloud, acesse Rotas.
Para visualizar todas as rotas com base em políticas em uma rede e região VPC, faça o seguinte:
- Clique em Rotas efetivas.
- Clique em Rede e selecione uma rede.
- Clique em Região e selecione uma opção.
- Clique em Visualizar.
Para visualizar todas as rotas com base em políticas em um projeto, faça o seguinte:
- 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
No console do Google Cloud, acesse Rotas.
Clique em Rotas efetivas.
Clique em Rede e selecione uma rede.
Clique em Região e selecione uma opção.
Clique em Visualizar.
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
No console do Google Cloud, acesse Rotas.
Clique em Rotas efetivas.
Clique em Rede e selecione uma rede.
Clique em Região e selecione uma opção.
Clique em Visualizar.
Clique no Nome de uma rota com base em políticas.
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:
- Não crie rotas com base em políticas que tenham destinos que incluam endereços IP de nó ou pod.
- Não crie rotas com base em políticas cujos destinos incluam endpoints particulares de plano de controle de cluster.
- Alguns clusters públicos do Google Kubernetes Engine (GKE) têm endpoints particulares do plano de controle do Private Service Connect. Para esses clusters, por padrão, o GKE cria o endpoint particular do plano de controle do Private Service Connect no intervalo de endereços IPv4 principal da sub-rede do cluster. Para escolher um intervalo de sub-rede personalizado (de uma sub-rede na mesma região) para o endpoint particular do plano de controle do Private Service Connect, consulte Criar um cluster e selecionar o intervalo IP do plano de controle.
- Ao criar um cluster particular do GKE, você
especifica um intervalo de endereços IP para o endpoint particular do plano de controle
(
--master-ipv4-cidr
). Não crie uma rota com base em políticas que tenha esse intervalo no destino. Para mais informações, consulte Endpoints em clusters particulares.
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:
- Usar o Acesso privado do Google para acessar APIs e serviços do Google
- Como acessar APIs e serviços do Google a partir de VMs com endereços IP externos
- Usar endpoints do Private Service Connect para APIs do Google
- Usar Back-ends do Private Service Connect para APIs do Google
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)