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:

Os comandos da gcloud e os métodos da API não 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 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:

  • PROJECT_ID: o ID do projeto que contém sua rede VPC.
  • NETWORK_NAME: o nome da 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:

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

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 existente em que a rota será aplicada.

  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 para definir o destino da rota.

  9. Especifique uma prioridade para a rota. Uma prioridade só é usada para determinar a ordem de roteamento se as rotas tiverem destinos equivalentes. Para mais detalhes, consulte parâmetros de rota estática.

  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 considerando as seguintes opções:

    • O gateway de internet padrão cria uma rota para a Internet.
    • Especificar uma instância permite que você selecione uma instância pelo 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. Para rotas estáticas IPv6, a instância precisa ser dual-stack.
    • Especificar o endereço IP permite inserir um endereço IP de uma instância atual na rede VPC. Para ver restrições importantes para endereços IP do próximo salto válidos, consulte próximos saltos da rota estática.
    • 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. Para mais detalhes, consulte Opções de roteamento e seletores de tráfego.
    • Especificar um nome de regra de encaminhamento ou um endereço IP de um balanceador de carga de rede de passagem interna revela uma caixa de texto que permite especificar um balanceador de carga de rede de passagem interna 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.

  12. 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:

  • ROUTE_NAME é o nome da rota.
  • DESTINATION_RANGE representa os endereços IP de destino em que esta rota será aplicada. O destino mais amplo possível é 0.0.0.0/0 para intervalos IPv4 ou ::/0 para intervalos IPv6.
  • 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 mais informações sobre os diferentes tipos de próximos saltos, consulte Próximos saltos de rota estática.

    • --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. Para rotas estáticas IPv6, a instância de VM precisa ser dual-stack.
    • --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 um balanceador de carga de rede de passagem interna para distribuir o tráfego para o balanceador de carga, especificado pelo nome da regra de encaminhamento interno (ou endereço IP) e região. 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.

Para mais informações sobre a sintaxe 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
{
  "destRange": "DESTINATION_RANGE",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "priority": PRIORITY,
  "NEXT_HOP_SPECIFICATION": "VALUE"
}

Substitua:

  • 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 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      = "~> 7.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 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 atual em que a rota será aplicada.

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

  7. Especifique uma prioridade para a rota. Uma prioridade é usada apenas para determinar a ordem de roteamento se as rotas tiverem destinos equivalentes. Para mais detalhes, consulte parâmetros de rota estática.

  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 conterá 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 conterá 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 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 IPv6 estiver configurado na sub-rede, 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 em que a 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.

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