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
- Para usar os exemplos de linhas de comando neste guia, instale ou atualize para a versão mais recente da CLI Google Cloud.
- Tem de ativar a API Network Connectivity no seu projeto.
- Precisa de um balanceador de carga de rede de encaminhamento interno. Recomendamos que ative o acesso global para que o Network Load Balancer de encaminhamento interno não elimine pacotes de regiões que não sejam aquela em que está definido.
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
Na Google Cloud consola, aceda a Rotas.
Clique em Gestão de rotas.
Clique em Criar trajeto.
Introduza um nome para o trajeto.
Opcional: introduza uma descrição.
Clique em Rede e, de seguida, selecione a rede onde quer adicionar a rota baseada em políticas.
Clique em Tipo de trajeto e, de seguida, selecione Trajeto baseado em políticas.
Selecione uma versão de IP.
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.
Na secção Critérios de classificação, faça o seguinte:
- Introduza um intervalo de IPs de origem.
- Introduza um intervalo de IPs de destino.
- Clique em Protocolo e, de seguida, selecione os protocolos aos quais esta rota se aplica.
Introduza uma prioridade.
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:
- Selecione Em utilização pela regra de encaminhamento de um balanceador de carga interno no projeto atual.
- 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:
- Selecione Não usado.
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 selecionar uma regra de encaminhamento a partir de uma lista de regras de encaminhamento existentes:
Para criar um trajeto baseado em políticas que ignore outros trajetos baseados em políticas, selecione Ignorar outros trajetos baseados em políticas.
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ãoALL
,TCP
ouUDP
. A predefinição éALL
.IP_VERSION
: uma única versão do protocolo de Internet à qual esta rota se aplica. EspecifiqueIPv4
ouIPv6
. 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, useall
.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ãoALL
,TCP
ouUDP
. A predefinição éALL
.IP_VERSION
: uma única versão do protocolo de Internet à qual a rota se aplica. EspecifiqueIPv4
ouIPv6
. 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, useall
.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
Na Google Cloud consola, aceda a Rotas.
Para ver todas as rotas baseadas em políticas numa rede VPC e numa região, faça o seguinte:
- Clique em Trajetos eficazes.
- Clique em Rede e, de seguida, selecione uma rede.
- Clique em Região e, de seguida, selecione uma região.
- Clique em Ver.
Para ver todas as rotas baseadas em políticas num projeto, faça o seguinte:
- 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
Na Google Cloud consola, aceda a Rotas.
Clique em Trajetos eficazes.
Clique em Rede e, de seguida, selecione uma rede.
Clique em Região e, de seguida, selecione uma região.
Clique em Ver.
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
Na Google Cloud consola, aceda a Rotas.
Clique em Trajetos eficazes.
Clique em Rede e, de seguida, selecione uma rede.
Clique em Região e, de seguida, selecione uma região.
Clique em Ver.
Clique no nome de uma rota baseada em políticas.
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:
- Não crie rotas baseadas em políticas cujos destinos incluam o nó do cluster ou os endereços IP do pod.
- Não crie rotas baseadas em políticas cujos destinos incluam pontos finais privados do plano de controlo do cluster.
- Alguns clusters públicos do Google Kubernetes Engine (GKE) têm pontos finais privados do plano de controlo do Private Service Connect. Para estes clusters, por predefinição, o GKE cria o ponto final privado do plano de controlo 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 ponto final privado do plano de controlo do Private Service Connect, consulte o artigo Crie um cluster e selecione o intervalo de IPs do plano de controlo.
- Quando cria um cluster GKE privado, especifica um intervalo de endereços IP para o ponto final privado do plano de controlo (
--master-ipv4-cidr
). Certifique-se de que não cria uma rota baseada em políticas cujo destino inclua este intervalo. Para mais informações, consulte o artigo Pontos finais em clusters privados.
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:
- Usar o acesso privado à Google para aceder a APIs e serviços Google
- Aceder a APIs e serviços Google a partir de VMs com endereços IP externos
- Usar pontos finais do Private Service Connect para APIs Google
- Usar back-ends do Private Service Connect para APIs Google
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)