Usar rotas

Veja nesta página como criar e gerenciar rotas para redes de nuvem privada virtual (VPC) no Google Cloud. Nesta página, presumimos que você conhece os diferentes tipos de rotas do Google Cloud e as características delas, conforme descrito em 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.

Listar rotas para uma rede VPC

Use a Google Cloud CLI ou a API para listar e visualizar detalhes sobre os seguintes tipos de rotas:

Nem os comandos da CLI gcloud nem os métodos de API mostram os seguintes tipos de rotas:

Para ver a rota completa, use o console do Google Cloud. Para listar e descrever rotas com base em políticas, consulte Usar rotas com base em políticas.

Console

  1. No Console do Google Cloud, acesse a página Rotas.

    Acessar a página Rotas

  2. Na guia Rotas efetivas, faça o seguinte:

    • Escolha uma rede VPC.
    • Escolha uma região.
  3. Clique em Visualizar.

  4. É possível filtrar com base no tipo de rota, no intervalo de IP de destino, no tipo de próximo salto e muito mais.

gcloud

Use os seguintes comandos da CLI gcloud para listar e visualizar detalhes sobre as rotas listadas anteriormente:

gcloud compute routes list \
    --filter="network=NETWORK_NAME" \
    --project=PROJECT_ID
gcloud compute routes describe ROUTE_NAME \
    --format="flattened()" \
    --project=PROJECT_ID

Substitua:

  • NETWORK_NAME: o nome da rede VPC.
  • PROJECT_ID: o ID do projeto que contém sua rede VPC.
  • ROUTE_NAME: o nome da rota.

API

Use os métodos de API a seguir para listar e visualizar detalhes sobre as rotas listadas anteriormente:

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

Substitua:

  • PROJECT_ID: o ID do projeto que contém sua rede VPC.
  • NETWORK_URL: o URL da rede VPC.
  • ROUTE_NAME: o nome da rota.

Para mais informações, consulte os métodos routes.list e routes.get.

Listar rotas aplicáveis para uma interface de rede da VM

É possível usar o Console do Google 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 ver as rotas aplicáveis para uma interface de rede específica de uma VM, siga estas etapas.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Localize uma instância de VM na lista. No menu Mais ações no final da linha, selecione Ver detalhes da rede.

  3. Se uma instância tiver várias interfaces de rede, na seção Detalhes da interface de rede, selecione a interface de rede que você quer ver.

  4. Na seção Detalhes de firewall e rotas, clique na guia Rotas para ver todas as rotas que se aplicam à interface de rede, classificadas por nome de rota.

Adicionar e remover rotas estáticas

É possível adicionar ou remover rotas estáticas e com base em políticas locais para sua rede VPC. Nesta seção, descrevemos como adicionar e excluir rotas estáticas locais. Para mais informações sobre como adicionar e remover rotas com base em políticas, consulte Usar rotas com base em políticas.

As rotas de sub-rede são adicionadas e excluídas automaticamente quando você adiciona ou exclui uma sub-rede. Para mais informações sobre como adicionar e remover sub-redes, consulte Trabalhar com sub-redes.

Todas as rotas em uma rede VPC conectadas por peering de rede VPC precisam ser manipuladas na rede VPC que exporta essas rotas. Para mais informações, consulte Opções de troca de rota.

Antes de adicionar uma rota estática

Antes de adicionar uma rota estática, é necessário entender o seguinte:

  • Entenda os diferentes tipos de próximos saltos que as rotas estáticas podem usar. Para informações sobre os diferentes tipos de próximos saltos de rota estática, incluindo quais oferecem suporte a destinos IPv6, consulte Próximos saltos e recursos.
  • A menos que você use sub-redes híbridas, uma rota estática não pode ter um intervalo de destino que corresponda ou seja mais específico do que o intervalo de destino de uma sub-rede ou rota de sub-rede de peering. Para mais detalhes, consulte Interações com rotas estáticas personalizadas na visão geral de Rotas e Interações de sub-rede e rota estática na documentação do Peering de redes VPC.
  • 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.

Adicionar uma rota estática

Adicione uma rota estática a uma rede. Para mais informações sobre os diferentes tipos de próximos saltos de rota estática, incluindo quais oferecem suporte a destinos IPv6, consulte Próximos saltos e recursos.

Console

  1. No Console do Google Cloud, acesse a página Rotas.

    Acessar a página Rotas

  2. Clique na guia Gerenciamento de rotas.

  3. Clique em Criar rota.

  4. Especifique um nome e uma descrição para a rota.

  5. Na lista Rede, selecione uma rede para a rota.

  6. Na lista Tipo de rota, selecione Rota estática.

  7. Na lista Versão do IP, selecione a versão do IP necessária:

    • Para criar uma rota estática IPv4, selecione IPv4.
    • Para criar uma rota IPv6 estática, selecione IPv6.
  8. Especifique um intervalo de IP de destino. O maior destino possível é 0.0.0.0/0 para IPv4 ou ::/0 para IPv6.

  9. Especifique uma prioridade para a rota. A prioridade pode ser de 0 (a prioridade mais alta) a 65535 (a menor prioridade).

  10. 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.

  11. Selecione um próximo salto para a rota:

    • Gateway de Internet padrão: entrega pacotes para a Internet e para APIs e serviços do Google.
    • Especificar uma instância: entrega pacotes para a interface de rede de uma instância de VM. Especifique a instância de VM por nome e zona. Se o destino da rota for um endereço IPv6, a instância da VM precisará ser pilha dupla.
    • Especificar o endereço IP de uma instância: especifique o endereço IPv4 interno principal de uma instância atual na rede VPC.
    • Especificar túnel VPN: entrega pacotes para um túnel VPN clássica usando roteamento estático.
    • Especifique um nome de regra de encaminhamento ou endereço IP de um balanceador de carga de rede de passagem interna: entrega pacotes para um balanceador de carga de rede de passagem interna que é especificado pelo nome da regra de encaminhamento interno (ou endereço IPv4) e pela região.
  12. Clique em Criar.

gcloud

Crie uma nova rota estática personalizada com o comando da CLI gcloud a seguir:

gcloud compute routes create ROUTE_NAME \
    --network=NETWORK \
    --destination-range=DESTINATION_RANGE \
    --priority=PRIORITY \
    NEXT_HOP_SPECIFICATION

Substitua:

  • ROUTE_NAME: o nome da rota
  • NETWORK: o nome da rede VPC que contém a rota
  • DESTINATION_RANGE: os endereços IPv4 ou IPv6 de destino a que essa rota se aplica. O maior destino possível é 0.0.0.0/0 para IPv4 ou ::/0 para IPv6.
  • PRIORITY: a prioridade da rota, que pode ser de 0 (a prioridade mais alta) a 65535 (a prioridade mais baixa).
  • NEXT_HOP_SPECIFICATION: o próximo salto da rota estática. Use um dos parâmetros ou uma combinação de parâmetros a seguir:

    • --next-hop-gateway=default-internet-gateway: entrega pacotes para a Internet e as APIs e os serviços do Google.
    • --next-hop-instance=INSTANCE_NAME e --next-hop-instance-zone=ZONE: entregam pacotes para a interface de rede de uma instância de VM. Especifique a instância de VM por nome e zona. Se o destino da rota for um endereço IPv6, a instância da VM precisará ser pilha dupla.
    • --next-hop-address=ADDRESS: especifique o endereço IPv4 principal de uma instância atual na rede VPC.
    • --next-hop-vpn-tunnel=VPN_TUNNEL_NAME e --next-hop-vpn-tunnel-region=REGION: enviam pacotes para um túnel da VPN clássica usando roteamento estático.
    • --next-hop-ilb=FORWARDING_RULE e --next-hop-ilb-region=REGION: entregam pacotes para um balanceador de carga de rede de passagem interna. Especifique a instância de VM pelo nome da regra de encaminhamento interna (ou endereço IPv4) e pela região.

    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.

Para mais informações sobre a sintaxe da CLI gcloud, consulte a documentação do SDK.

API

Crie uma nova rota estática personalizada.

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

Substitua:

  • PROJECT_ID: o ID do projeto em que sua rota é criada.
  • ROUTE_NAME: o nome da rota
  • NETWORK: o nome da rede VPC que contém a rota
  • DESTINATION_RANGE: o intervalo de endereços IPv4 ou IPv6 de destino a que esta rota se aplica. O maior destino possível é 0.0.0.0/0 para IPv4 ou ::/0 para IPv6.
  • PRIORITY: a prioridade da rota, que pode ser de 0 (a prioridade mais alta) a 65535 (a prioridade mais baixa).
  • NEXT_HOP_SPECIFICATION: o próximo salto da rota estática. Use um dos parâmetros a seguir ou uma combinação deles:
    • nextHopGateway: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/gateways/default-internet-gateway: entrega pacotes para a Internet e as APIs e os serviços do Google.
    • nextHopInstance: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME: envia pacotes para a interface de rede de uma instância de VM. Especifique a instância da VM por nome e zona. Se o destino da rota for um endereço IPv6, a instância da VM precisará ser pilha dupla.
    • nextHopIp: ADDRESS: especifique o endereço IPv4 principal de uma instância atual na rede VPC.
    • nextHopVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels/VPN_TUNNEL_NAME: envia pacotes a um túnel da VPN clássica usando roteamento estático.
    • nextHopIlb: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE: envia pacotes para um balanceador de carga de rede de passagem interna. Especifique a instância de VM pelo nome da regra de encaminhamento interna (ou endereço IPv4) e pela região.

Para fazer com que a rota estática personalizada se aplique somente às VMs selecionadas por tag de rede, adicione o campo 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.

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

Terraform

É possível criar uma rota estática usando um módulo Terraform.

Essa rota estática cria uma rota padrão para a Internet.

module "google_compute_route" {
  source       = "terraform-google-modules/network/google//modules/routes"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "default"

  routes = [
    {
      name              = "egress-internet"
      description       = "route through IGW to access internet"
      destination_range = "0.0.0.0/0"
      tags              = "egress-inet"
      next_hop_internet = "true"
    }
  ]
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Adicionar uma rota padrão do IPv4

A rota estática padrão IPv4 (0.0.0.0/0) com o next-hop-gateway definido como default-internet-gateway é configurada automaticamente para cada rede VPC. Use estas etapas para recriar essa rota, se necessário.

Console

  1. No Console do Google Cloud, acesse a página Rotas.

    Acessar a página Rotas

  2. Clique na guia Gerenciamento de rotas.

  3. Clique em Criar rota.

  4. Especifique um nome e uma descrição para a rota.

  5. Selecione uma rede para a rota.

  6. Em Intervalo de IP de destino, insira 0.0.0.0/0.

  7. Especifique uma prioridade para a rota. A prioridade pode ser de 0 (a prioridade mais alta) a 65535 (a menor prioridade).

  8. Em Próximo salto, selecione Gateway de Internet padrão.

  9. Clique em Criar.

gcloud

Recrie a rota padrão do IPv4 para uma rede.

gcloud compute routes create ROUTE_NAME \
    --destination-range=0.0.0.0/0 \
    --network=NETWORK \
    --next-hop-gateway=default-internet-gateway

Substitua:

  • ROUTE_NAME: um nome para a rota
  • NETWORK: o nome da rede VPC que contém a rota

API

Recrie a rota padrão do IPv4 para uma rede.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "0.0.0.0/0",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "nextHopGateway": "projects/PROJECT_ID/global/gateways/default-internet-gateway"
}

Substitua:

  • PROJECT_ID: o ID do projeto em que sua rota é criada.
  • ROUTE_NAME: um nome para a rota
  • NETWORK_NAME: o nome da rede VPC que contém a rota

Adicionar uma rota padrão do IPv6

A rota estática padrão do IPv6 (::/0) com o next-hop-gateway definido como default-internet-gateway é automaticamente configurada para a rede VPC quando você cria uma sub-rede de pilha dupla com o elemento externo Tipo de acesso IP. É possível excluir a rota para bloquear todo o tráfego IPv6 de VMs para a Internet. É possível recriar a rota se necessário.

Console

  1. No Console do Google Cloud, acesse a página Rotas.

    Acessar a página Rotas

  2. Clique na guia Gerenciamento de rotas.

  3. Clique em Criar rota.

  4. Especifique um nome e uma descrição para a rota.

  5. Selecione uma rede para a rota.

  6. Em Intervalo de IP de destino, insira ::/0.

  7. Especifique uma prioridade para a rota. A prioridade pode ser de 0 (a prioridade mais alta) a 65535 (a menor prioridade).

  8. Em Próximo salto, selecione Gateway de Internet padrão.

  9. Clique em Criar.

gcloud

Recrie a rota padrão do IPv6 para uma rede.

gcloud compute routes create ROUTE_NAME \
    --destination-range=::/0 \
    --network=NETWORK \
    --next-hop-gateway=default-internet-gateway

Substitua:

  • ROUTE_NAME: um nome para a rota.
  • NETWORK: o nome da rede VPC que contém a rota

API

Recrie a rota padrão do IPv6 para uma rede.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "::/0",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "nextHopGateway": "projects/PROJECT_ID/global/gateways/default-internet-gateway"
}

Substitua:

  • PROJECT_ID: o ID do projeto em que sua rota é criada.
  • ROUTE_NAME: um nome para a rota
  • NETWORK_NAME: o nome da rede VPC que contém a rota

Modificar uma rota estática

Não é possível editar ou atualizar uma rota estática depois de criá-la. Para modificar uma rota estática personalizada, é preciso excluí-la e criar uma substituição.

Excluir uma rota estática

Para excluir uma rota, faça o seguinte.

Console

  1. No Console do Google Cloud, acesse a página Rotas.

    Acessar a página Rotas

  2. Clique na guia Gerenciamento de rotas.

  3. Marque a caixa de seleção ao lado da regra que você quer excluir.

  4. Clique em Excluir.

  5. Clique em Excluir novamente para confirmar.

gcloud

Exclua uma rota estática personalizada usando o seguinte comando da CLI gcloud:

gcloud compute routes delete ROUTE_NAME

Substitua ROUTE_NAME pelo nome da rota que você quer excluir.

API

Exclua uma rota estática personalizada para removê-la da rede VPC usando o método routes.delete:

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

Substitua:

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

Propagação de alterações de rota

Quando você adiciona ou exclui uma rota estática, ela é propagada para todas as regiões e instâncias de VM na sua rede VPC. Um status de operação de rota de PENDING ou RUNNING indica que a alteração de rota está na fila.

Depois de enfileirar, o status da operação de rota muda para DONE. Pode levar mais 30 segundos para que todas as instâncias de VM na sua rede VPC e em redes de peering de rede VPC usem uma nova rota ou parem de usar uma antiga.

Se você adicionar ou remover várias rotas estáticas simultaneamente, as alterações poderão ser aplicadas em qualquer ordem. Não há garantia de que a ordem em que você envia as alterações de rota será a ordem em que elas serão processadas. Instâncias diferentes podem se tornar conscientes das mudanças em momentos distintos.

Se você precisar fazer alterações de rota que dependam umas das outras, será necessário fazer essas alterações em sequência realizando alterações subsequentes somente após o status da alteração anterior ser DONE e depois de mais 30 segundos.

Ativar o encaminhamento de IP para instâncias

Por padrão, o encaminhamento de IP fica desativado, e o Google Cloud realiza uma verificação rigorosa de endereço de origem. Sujeita à configuração efetiva do firewall de saída, uma VM pode emitir pacotes com as seguintes origens:

  • O endereço IPv4 interno principal da interface de rede (NIC) de uma instância.
  • Qualquer intervalo de IP de alias configurado na NIC de uma instância.
  • Se um intervalo de endereços IPv6 estiver configurado na sub-rede e a instância for de pilha dupla, qualquer um dos endereços IPv6 atribuídos à NIC.
  • Um endereço IP interno ou externo associado a uma regra de encaminhamento, para balanceamento de carga de passagem ou encaminhamento de protocolo, se a instância for um back-end de um balanceador de carga de rede de passagem interna, um balanceador de carga de rede de passagem externa ou é referenciado por uma instância de destino.

Para usar uma VM como próximo salto de uma rota, a VM precisa encaminhar pacotes com origens que não correspondam a um dos endereços ou intervalos de IP na lista anterior. Para encaminhar pacotes com endereços de origem arbitrários, é preciso ativar o encaminhamento de IP:

  • Ao criar ou atualizar uma VM, ative o encaminhamento de IP seguindo as instruções nesta seção. A ativação do encaminhamento de IP se aplica a todas as NICs na VM.
  • Além das etapas nesta seção, ative o encaminhamento de IP no sistema operacional convidado da VM. Para fazer isso no Linux, defina o valor de um ou dos dois parâmetros de kernel a seguir como 1: net.ipv4.ip_forward (para IPv4) ou net.ipv6.conf.all.forwarding (para IPv6).

Para ativar o encaminhamento de IP ao criar uma VM, conclua as etapas a seguir.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique em Criar instância.

  3. Na seção Opções avançadas, expanda Rede, discos, segurança, gerenciamento, locatário único.

  4. Expanda a seção Rede.

  5. Na seção Encaminhamento de IP, marque a caixa de seleção Ativar.

gcloud

Ao criar uma instância, 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:

  • PROJECT_ID: o ID do projeto que contém a instância.
  • ZONE: a zona do Google Cloud que contém a instância.

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

Terraform

Use o recurso Terraform para criar uma instância de VM com o encaminhamento de IP ativado.

Neste exemplo, os argumentos do Terraform receberam valores que você pode alterar.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "instance-next-hop"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  can_ip_forward = true
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Depois de ativar o encaminhamento de IP, prossiga com o processo de criação da VM.

Para ativar o encaminhamento de IP em uma VM atual, atualize a propriedade da instância canIpForward.

A seguir