Como usar rotas

Esta página descreve como criar e gerenciar rotas para redes VPC do Google Cloud (Google Cloud). Nesta página, presumimos que você conhece os diferentes tipos de rotas do Google Cloud e as características delas, conforme descrito na Visão geral das rotas.

Cada nova rede tem dois tipos de rotas geradas pelo sistema: uma rota padrão, que pode ser removida ou substituída, e uma rota de sub-rede para cada uma das respectivas sub-redes. Não é possível remover uma rota de sub-rede, a menos que você exclua a sub-rede correspondente.

Além das rotas geradas pelo sistema, é possível criar outras rotas estáticas personalizadas.

Como inspecionar rotas

Como listar rotas para redes VPC

É possível visualizar rotas usando um destes métodos:

Console

Para listar rotas para todas as redes:

  1. Acesse a página "Rotas" no Console do Google Cloud.
    Acessar a página "Rotas"
  2. É possível usar a caixa de texto Filtrar rotas para limitar as rotas mostradas. Por exemplo, é possível digitar o nome de uma rede VPC e pressionar Enter para mostrar as rotas de uma rede específica.
  3. A guia Todos mostra todos os tipos de rotas. Para visualizar apenas rotas dinâmicas personalizadas, clique na guia Dinâmica.

gcloud

Para listar rotas padrão, rotas de sub-rede e rotas estáticas personalizadas, use o seguinte comando gcloud, substituindo NETWORK_NAME pelo nome da sua rede:

gcloud compute routes list --filter="network=NETWORK_NAME"

As rotas dinâmicas personalizadas não são exibidas por gcloud compute routes list. Para visualizar rotas dinâmicas, consulte o status do Cloud Router que aprendeu a rota. Use o comando a seguir como modelo, substituindo CLOUD_ROUTER_NAME pelo nome de um Cloud Router e REGION pela região:

gcloud compute routers get-status CLOUD_ROUTER_NAME \
    --region=REGION \
    --format="flattened(result.bestRoutes)"

API

Liste rotas padrão, rotas de sub-redes e rotas estáticas personalizadas na sua rede VPC.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes?filter=network="NETWORK_URL

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que sua rede VPC está localizada;
  • NETWORK_URL é o URL da rede VPC que contém as rotas a serem listadas.

Para mais informações, consulte o método routes.list.

As rotas dinâmicas personalizadas não são exibidas pela API de rotas da lista. Para visualizar rotas dinâmicas, consulte o status do Cloud Router que aprendeu a rota. Para mais informações, consulte a documentação do Cloud Router.

Como descrever rotas

Para visualizar detalhes de rotas estáticas geradas pelo sistema e personalizadas, incluindo destinos e próximos saltos:

Console

  1. Acesse a página "Rotas" no Console do Google Cloud.
    Acessar a página "Rotas"
  2. Clique no nome de uma rota.

gcloud

Para ver os detalhes das rotas estáticas personalizadas e geradas pelo sistema, use o comando gcloud a seguir, substituindo ROUTE_NAME pelo nome da rota a ser inspecionada:

gcloud compute routes describe ROUTE_NAME --format="flattened()"

API

Descreva uma rota estática gerada pelo sistema ou personalizada para visualizar os detalhes.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes/ROUTE_NAME

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que sua rota está localizada.
  • ROUTE_NAME é o nome do rota a ser descrita.

Para mais informações, consulte o método routes.get.

Rotas para VMs

É possível visualizar rotas aplicáveis e rotas efetivas da perspectiva de uma determinada interface de rede para uma instância de VM seguindo as instruções nesta seção. Rotas efetivas são um subconjunto de rotas aplicáveis que consideram a ordem de roteamento.

Rotas aplicáveis para uma interface de rede

É possível usar o Console do Cloud para ver rotas aplicáveis para a interface de rede de uma VM. Essa visualização restringe a lista de rotas que podem ser usadas para o tráfego de saída.

Para visualizar rotas aplicáveis para uma interface de rede específica de uma VM:

  1. Acesse a página "Instâncias de VM" no Console do Google Cloud.
    Acessar a página "Instâncias de VM"
  2. Localize uma instância de VM na lista. No menu mais ações (), selecione Ver detalhes da rede.
  3. Se uma instância tiver várias interfaces de rede, selecione na seção Detalhes da interface de rede aquela que você quer exibir.
  4. Clique na guia Rotas para ver todas as rotas que se aplicam à interface de rede, classificadas por nome de rota.

Análise de rotas e rotas efetivas

A análise de rotas ajuda a determinar as rotas efetivas, considerando as rotas aplicáveis e a ordem de roteamento. As rotas são listadas por intervalo de IP de destino, para que você possa identificar qual rota aplicável será usada para enviar tráfego para um determinado intervalo de destino.

Por exemplo, uma interface de rede pode usar mais de uma rota aplicável. Consulte a ordem de roteamento na Visão geral de rotas para saber mais informações.

Para visualizar as rotas com base na aplicabilidade e na ordem de roteamento, use a análise de rotas:

  1. Acesse a página de instâncias de VMs no Console do Google Cloud e encontre a instância a ser visualizada.
    Acessar a página "Instâncias de VM"
  2. No menu mais ações () da instância, selecione Ver detalhes da rede.
  3. Se uma instância tiver várias interfaces de rede, selecione na seção Detalhes da interface de rede aquela que você quer exibir.
  4. Na seção Análise de rede, selecione a guia Análise de rota.
  5. Visualize a tabela, classificada do intervalo de endereços IP mais específico para o menos específico, para saber qual rota se aplica a um determinado intervalo de destino.

Um exemplo de saída da guia de análise de rotas é:

Rotas efetivas para uma instância de VM (clique para ampliar)
Rotas efetivas para uma instância de VM (clique para ampliar)

Como adicionar e remover rotas

Como adicionar uma rota estática

Siga estas etapas para criar uma nova rota estática. Antes de fazer isso, verifique se você tem familiaridade com o seguinte:

  • Rotas estáticas personalizadas não podem ter intervalos de destino que correspondam ou sejam mais específicos do que os intervalos de destino usados por qualquer rota de sub-rede na sua rede VPC.

    • Ao usar Peering de rede VPC para conectar duas redes VPC, rotas estáticas personalizadas em uma rede não podem ter destinos correspondentes ou mais específicos do que rotas de sub-rede em ambas as redes. O Google Cloud rejeita as rotas estáticas personalizadas que entrariam em conflito com as rotas das sub-redes.
  • Para evitar conflitos ao usar uma rede de modo automático, não crie rotas estáticas com destinos que caibam dentro de 10.128.0.0/9. Revise os intervalos de IP reservados para redes de modo automático para saber detalhes.

  • Destinos para rotas estáticas personalizadas não podem se sobrepor a nenhum intervalo interno alocado.

  • Verifique se você tem familiaridade com instâncias como próximos saltos antes de criar uma rota estática personalizada que use uma VM como seu próximo salto. O Google Cloud só confirma que uma VM existe quando você cria a rota, se você escolher uma instância de próximo salto.

  • Se você criar uma rota usando uma tag de rede, somente as VMs com essa tag receberão essa rota. No entanto, as VMs com tags ainda recebem todas as rotas sem tag de rede.

Console

  1. Acesse a página "Rotas" no Console do Google Cloud.
    Acessar a página "Rotas"
  2. Clique em Criar rota.
  3. Especifique um Nome e uma Descrição para a rota.
  4. Selecione uma Rede atual em que a rota será aplicada.
  5. Especifique um Intervalo de IP de destino para definir o destino da rota.
  6. Especifique uma Prioridade para a rota. Uma prioridade só é usada para determinar a ordem de roteamento se as rotas tiverem destinos equivalentes. Consulte os parâmetros de rota estática para saber mais informações.
  7. Para tornar a rota aplicável somente para selecionar instâncias com tags de rede correspondentes, especifique-as no campo Tags da instância. Deixe o campo em branco para tornar a rota aplicável a todas as instâncias na rede ou se você selecionar um balanceador de carga TCP/UDP interno como o próximo salto da rota. As tags de rede não se aplicam a rotas que têm um balanceador de carga TCP/UDP interno como um próximo salto.
  8. Selecione um próximo salto para a rota:

    • O gateway de internet padrão cria uma rota para a Internet.
    • Especificar uma instância permite selecionar uma instância por nome. O tráfego será roteado para essa instância (ou qualquer instância de substituição com o mesmo nome na mesma zona), mesmo que o endereço IP seja alterado.
    • Especificar o endereço IP permite inserir um endereço IP de uma instância atual na rede VPC. Consulte os próximos saltos de rota estática para restrições importantes sobre endereços IP válidos do próximo salto.
    • Especificar o túnel da VPN permite que você selecione um túnel do Cloud VPN como próximo salto. É preciso que o túnel seja uma VPN baseada em rota ou use um roteamento baseado em política.
    • Especificar uma regra de encaminhamento do balanceador de carga TCP/UDP interno revela uma caixa de texto que permite especificar um balanceador de carga TCP/UDP existente como próximo salto.

    Para saber mais informações sobre os diferentes tipos de próximos saltos, consulte Próximos saltos de rota estática na Visão geral de rotas.

  9. Clique em Criar.

gcloud

Crie uma nova rota estática personalizada com o seguinte comando gcloud:

gcloud compute routes create ROUTE_NAME \
    --destination-range=DEST_RANGE \
    --network=NETWORK \
    NEXT_HOP_SPECIFICATION

Substitua os marcadores por valores válidos:

  • ROUTE_NAME é o nome da rota.
  • DESTINATION_RANGE representa os endereços IP de destino em que esta rota será aplicada. O maior destino possível é 0.0.0.0/0.
  • NETWORK é o nome da rede VPC que conterá a rota.
  • NEXT_HOP_SPECIFICATION representa o próximo salto para a rota estática personalizada. Especifique apenas um dos seguintes como um próximo salto. Para saber mais informações sobre os diferentes tipos de próximos saltos, consulte Próximos saltos de rota estática na Visão geral de rotas.
    • --next-hop-gateway=default-internet-gateway: use este próximo salto para enviar tráfego para fora da rede VPC, inclusive para a Internet ou para os endereços IP de Acesso privado do Google.
    • --next-hop-instance=INSTANCE_NAME e --next-hop-instance-zone=ZONE: use este próximo salto para direcionar o tráfego para uma instância de VM existente por nome e zona. O tráfego é enviado para o endereço IP interno principal da interface de rede da VM, localizada na mesma rede da rota.
    • --next-hop-address=ADDRESS: use este próximo salto para direcionar o tráfego para o endereço IP de uma instância de VM existente.
    • --next-hop-ilb=FORWARDING_RULE_NAME e --next-hop-ilb-region=REGION: use este próximo salto com o balanceamento de carga TCP interno para distribuir o tráfego para o balanceador de carga, especificado pelo nome e região da regra de encaminhamento interno. O balanceador de carga distribui o tráfego entre back-ends íntegros em que o balanceador de carga é transparente para os clientes em um modo bump-in-the-wire.
    • --next-hop-vpn-tunnel=VPN_TUNNEL_NAME e --next-hop-vpn-tunnel-region=REGION: use este próximo salto para direcionar o tráfego para um túnel do Cloud VPN que usa roteamento estático.

Para saber mais informações sobre os diferentes tipos de próximos saltos, consulte Próximos saltos de rota estática na Visão geral de rotas.

Para fazer com que a rota estática personalizada se aplique somente a seleções de VMs por tag de rede, adicione a sinalização --tags e especifique uma ou mais tags de rede. Para saber mais informações sobre como as tags de rede e as rotas estáticas personalizadas funcionam juntas, consulte Rotas aplicáveis na visão geral de rotas. É possível usar tags com qualquer rota estática personalizada, exceto aquelas com uma especificação de próximo salto de --next-hop-ilb.

Consulte a documentação do SDK para mais informações sobre a sintaxe gcloud.

API

Crie uma nova rota estática personalizada.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "DESTINATION_RANGE",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "priority": PRIORITY,
  "NEXT_HOP_SPECIFICATION": VALUE
}

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que sua rota está criada.
  • DESTINATION_RANGE representa os endereços IP de destino em que esta rota será aplicada. O maior destino possível é 0.0.0.0/0.
  • ROUTE_NAME é um nome para a rota.
  • NETWORK_NAME é o nome da rede VPC que conterá a rota.
  • O VALUE do NEXT_HOP_SPECIFICATION representa o próximo salto da rota estática personalizada. Para NEXT_HOP_SPECIFICATION, especifique apenas um dos seguintes campos do próximo salto: nextHopIp, nextHopGateway, nextHopInstance, nextHopIlb ou nextHopVpnTunnel. Para saber mais informações sobre os diferentes tipos de próximos saltos, consulte Próximos saltos de rota estática na Visão geral de rotas.

Para mais informações, consulte o método routes.insert.

Como excluir rotas

É possível excluir uma rota padrão gerada pelo sistema ou qualquer rota estática personalizada. Para outros tipos de rotas:

  • Não é possível excluir uma rota de sub-rede, a menos que você exclua a sub-rede correspondente.

  • Para excluir uma rota dinâmica aprendida por um Cloud Router, configure o respectivo terminal do BGP para parar de anunciar a rota.

Console

  1. Acesse a página "Rotas" no Console do Google Cloud.
    Acessar a página "Rotas"
  2. Marque a caixa de seleção ao lado da regra a excluir.
  3. Clique em Excluir.
  4. Clique em Excluir novamente para confirmar.

gcloud

Exclua uma rota estática personalizada usando o seguinte comando gcloud, substituindo ROUTE_NAME pelo nome da rota a ser removida:

gcloud compute routes delete ROUTE_NAME

API

Exclua uma rota estática personalizada para removê-la da rede VPC.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes/ROUTE_NAME

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que sua rota está localizada.
  • ROUTE_NAME é o nome da rota a ser excluída.

Para mais informações, consulte o método routes.delete.

Ordem de operações

Quando você faz uma solicitação para adicionar ou excluir uma rota, suas alterações são testadas e, em seguida, propagadas para instâncias na rede usando um design de consistência posterior. As solicitações de mudança com status PENDING ou RUNNING indicam que a solicitação ainda não foi processada. Após o processamento, o status da solicitação de mudança é DONE.

Se você fizer uma sequência de solicitações de mudança, as alterações poderão ser aplicadas em qualquer ordem. Não há garantia de que a ordem na qual você envia solicitações de alteração será a ordem em que elas são processadas. Além disso, instâncias diferentes podem se tornar conscientes das mudanças em momentos distintos.

Como ativar o encaminhamento de IP para instâncias

Por padrão, o Google Cloud realiza verificações rigorosas de origem e destino para pacotes de modo que:

  • as instâncias de VM só podem enviar pacotes em que as origens estão definidas para corresponder a um endereço IP interno da interface na rede;
  • os pacotes só são entregues a uma instância se os destinos corresponderem ao endereço IP da interface da instância na rede.

Portanto, por padrão, uma VM não pode encaminhar um pacote originado por outra VM.

Para usar uma VM como próximo salto em uma rota, é necessário que a VM receba pacotes com destinos que não ela mesma. Como ela encaminha esses pacotes, suas origens serão diferentes de seu próprio IP interno. Para fazer isso, é necessário ativar o encaminhamento de IP para a VM. Quando o encaminhamento de IP está ativado, o Google Cloud não impõe a verificação de origem e destino de pacotes.

Console

  1. Acesse a página "Instâncias de VM".
    Acessar a página "Instâncias de VM"
  2. Clique em Criar instância.
  3. Clique em Gerenciamento, discos, redes, chaves SSH.
  4. Clique em Rede.
  5. Selecione uma interface de rede clicando no botão de edição.
  6. Para a interface de rede, escolha Ativa no menu de Encaminhamento de IP.
  7. Especifique qualquer outro parâmetro da instância.
  8. Clique em Criar.

gcloud

Ao criar uma instância usando gcloud, adicione a sinalização --can-ip-forward ao seu comando:

gcloud compute instances create ... --can-ip-forward

API

Ao criar uma instância, use o campo canIpForward para ativar o encaminhamento de IP.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "canIpForward": true,
  ...other fields
}

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que sua instância será criada.
  • ZONE é a zona do Google Cloud em que a instância será criada.

Para mais informações, consulte o método instances.insert.

A seguir