Skip to main content

Como Gerenciar Rotas na Tabela de Roteamento da VPC

Regiões

Este recurso está disponível nas seguintes regiões:
br-se1
br-ne1
Disponibilidade limitada

O gerenciamento de Tabelas de Roteamento está disponível a partir da CLI e do Terraform. O suporte no Console está previsto para uma próxima versão.

A Tabela de Roteamento de uma VPC permite definir caminhos específicos para o tráfego de rede, determinando para onde os pacotes devem ser encaminhados com base no CIDR de destino. Com ela, você tem controle centralizado sobre o fluxo de comunicação entre sub-redes, serviços gerenciados e recursos externos, sem depender de configurações manuais em cada instância.

Cada rota define dois elementos principais:

  • Destino (cidr_destination): O bloco de endereços IP de destino do tráfego (ex: 172.20.0.0/16).
  • Próximo salto (targets): Para onde o tráfego deve ser encaminhado. O próximo salto pode ser de dois tipos:
Tipo (targets.type)targets.idQuando usar
port_idID da porta (VNIC)Direcionar o tráfego para uma VM ou appliance dentro da própria VPC, como um firewall ou proxy.
vpc_peeringID do VPC PeeringDirecionar o tráfego para outra VPC conectada por VPC Peering.

Casos de Uso

A criação de rotas customizadas é indicada para arquiteturas que exigem controle granular do tráfego, como:

  • Arquiteturas Multi-tenant com VPN Site-to-Site: Direcionar o tráfego de cada tenant para a VM de firewall responsável pela VPN correspondente, sem depender de configuração manual em cada instância.
  • Acesso externo para Serviços Gerenciados (DBaaS): Como serviços gerenciados não permitem acesso ao sistema operacional, a rota na VPC é o único mecanismo para direcionar o tráfego desses serviços por um gateway ou firewall.
  • Segmentação de Tráfego por Camada: Separar o fluxo de produção, staging e desenvolvimento, garantindo que cada ambiente siga seu próprio caminho de rede.
  • Appliances Virtuais (Firewalls e Proxies): Forçar que todo tráfego de uma sub-rede passe por uma VM intermediária para inspeção ou filtragem antes de sair para a internet.
  • Comunicação entre Sub-redes na Mesma VPC: Habilitar o roteamento direto entre sub-redes de uma mesma VPC ou zonas de disponibilidade distintas.
  • Comunicação entre VPCs distintas: Direcionar o tráfego destinado a outra VPC do mesmo tenant para uma conexão de VPC Peering, mantendo o tráfego na rede privada da Magalu Cloud.

Pré-requisitos

Antes de criar uma rota, certifique-se de que os seguintes recursos estejam provisionados:

  1. Uma VPC existente com ao menos uma sub-rede configurada.
  2. O próximo salto já provisionado, conforme o tipo de rota que você vai criar:
    • Para targets.type=port_id: uma Porta (VNIC) criada na VPC. O IP privado da porta será resolvido automaticamente como next_hop.
    • Para targets.type=vpc_peering: uma conexão de VPC Peering já com status completed.
  3. CLI MGC instalada e autenticada, ou o Provider Terraform para MGC configurado.
Obtendo o ID do próximo salto

Para listar as portas disponíveis na sua VPC:

mgc network vpcs ports list --vpc-id="[ID_DA_SUA_VPC]"

Para listar os peerings de que a VPC participa:

mgc network vpcs peerings list --vpc-id="[ID_DA_SUA_VPC]"

Operações Disponíveis

Criando uma Rota

Use os comandos abaixo para adicionar uma nova rota à tabela de roteamento da VPC. Substitua os valores entre colchetes pelos identificadores do seu ambiente.

Rota apontando para uma Porta (VNIC):

mgc network vpcs route-table routes create \
--vpc-id="[ID_DA_SUA_VPC]" \
--cidr-destination="172.20.0.0/16" \
--targets.type="port_id" \
--targets.id="[ID_DA_PORTA_NEXT_HOP]" \
--description="Rota para rede interna do tenant A"

Rota apontando para um VPC Peering:

mgc network vpcs route-table routes create \
--vpc-id="[ID_DA_SUA_VPC]" \
--cidr-destination="172.17.0.0/24" \
--targets.type="vpc_peering" \
--targets.id="[ID_DO_PEERING]" \
--description="Acesso a VPC de banco de dados"

Parâmetros do comando:

ParâmetroObrigatórioDescrição
--vpc-id✅ SimID da VPC que recebe a rota, ou seja, a origem do tráfego.
--cidr-destination✅ SimBloco CIDR de destino do tráfego (ex: 172.20.0.0/16).
--targets.type✅ SimTipo do próximo salto: port_id ou vpc_peering.
--targets.id✅ SimID do recurso que atuará como próximo salto, conforme o tipo informado.
--description❌ NãoTexto livre para identificar a finalidade da rota.
Sintaxe alterada na CLI

O parâmetro --port-id foi substituído pelo par --targets.type e --targets.id. Comandos e scripts que ainda usam --port-id falham com Error: unknown flag: --port-id. Atualize-os para a nova sintaxe.

Resultado Esperado

O comando retornará o id da rota criada e seu status inicial (geralmente processing). A rota estará ativa quando o status mudar para created.

{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "pending"
}
Atenção ao CIDR de Destino
  • O CIDR deve ser um bloco de rede válido no formato x.x.x.x/x.
  • Evite sobreposição com rotas já existentes na mesma VPC para prevenir conflitos de roteamento.
  • Cada rota é única por combinação de vpc_id + cidr_destination.

Listando Rotas da VPC

Para visualizar todas as rotas configuradas em uma VPC, utilize o comando abaixo:

mgc network vpcs route-table routes list --vpc-id="[ID_DA_SUA_VPC]"

Filtrando e ordenando os resultados:

# Filtrar por zona de disponibilidade
mgc network vpcs route-table routes list \
--vpc-id="[ID_DA_SUA_VPC]" \
--zone="a"

# Ordenar por CIDR de destino (crescente)
mgc network vpcs route-table routes list \
--vpc-id="[ID_DA_SUA_VPC]" \
--sort="cidr_destination:asc"

# Paginação: exibir a segunda página com 20 itens por página
mgc network vpcs route-table routes list \
--vpc-id="[ID_DA_SUA_VPC]" \
--page=2 \
--items-per-page=20

Parâmetros opcionais:

ParâmetroDescrição
--zoneFiltra rotas por zona de disponibilidade (ex: a, b).
--sortOrdena os resultados. Campos válidos: id, port_id, description, cidr_destination, type, status. Direção: asc ou desc.
--pageNúmero da página (padrão: 1, mínimo: 1).
--items-per-pageQuantidade de itens por página (padrão: 10, máximo: 100).

Consultando uma Rota Específica

Para inspecionar os detalhes completos de uma rota, incluindo seu next_hop resolvido e status atual:

mgc network vpcs route-table routes get \
--vpc-id="[ID_DA_SUA_VPC]" \
--route-id="[ID_DA_ROTA]"

Exemplo de resposta:

{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"vpc_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"port_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"cidr_destination": "172.20.0.0/16",
"description": "Rota para rede interna do tenant A",
"next_hop": "10.10.20.53",
"type": "default",
"status": "created"
}

O campo next_hop contém o endereço IP privado resolvido automaticamente a partir da porta informada no momento da criação.

Exemplo de resposta para uma rota de VPC Peering:

{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"vpc_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"cidr_destination": "172.17.0.0/24",
"description": "Acesso a VPC de banco de dados",
"next_hop": null,
"port_id": null,
"type": "peering",
"status": "created",
"vpc_peering_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Em rotas de peering, next_hop e port_id vêm nulos, o campo type retorna peering e o vpc_peering_id identifica a conexão usada como próximo salto.

Excluindo uma Rota

Para remover uma rota da tabela de roteamento:

mgc network vpcs route-table routes delete \
--vpc-id="[ID_DA_SUA_VPC]" \
--route-id="[ID_DA_ROTA]"
Atenção antes de excluir

A exclusão de uma rota pode impactar imediatamente o tráfego de rede que depende dela. Antes de remover:

  • Confirme que nenhuma instância ou serviço gerenciado depende desta rota para comunicação.
  • Em ambientes de produção, planeje uma janela de manutenção.

A operação não pode ser desfeita.

Status de Exclusão

A rota passará pelo status deleting antes de ser removida permanentemente. A deleção é confirmada quando a rota deixar de aparecer na listagem da VPC.


Ciclo de Vida de uma Rota

As rotas possuem os seguintes estados possíveis durante seu ciclo de vida:

StatusDescrição
pendingA rota foi aceita e está aguardando processamento.
processingA rota está sendo provisionada na infraestrutura.
createdA rota está ativa e o tráfego já está sendo roteado.
errorOcorreu uma falha durante o provisionamento. Verifique os parâmetros e tente novamente.
deletingA rota está em processo de exclusão.
deletedA rota foi removida com sucesso.

Exemplo Completo: Arquitetura com Firewall Virtual

O exemplo a seguir demonstra como configurar uma rota para direcionar o tráfego de uma rede interna através de uma VM que atua como firewall.

Cenário: Direcionar todo o tráfego destinado à rede 10.100.0.0/24 (ambiente on-premise acessível via VPN) para a porta de rede da VM de firewall.

# 1. Obtenha o ID da VPC
mgc network vpcs list

# 2. Identifique a porta da VM de firewall
mgc network vpcs ports list --vpc-id="[ID_DA_SUA_VPC]"

# 3. Crie a rota apontando para a porta do firewall
mgc network vpcs route-table routes create \
--vpc-id="[ID_DA_SUA_VPC]" \
--cidr-destination="10.100.0.0/24" \
--targets.type="port_id" \
--targets.id="[ID_DA_PORTA_DO_FIREWALL]" \
--description="Tráfego on-premise via firewall virtual"

# 4. Confirme que a rota está ativa
mgc network vpcs route-table routes list --vpc-id="[ID_DA_SUA_VPC]"

Exemplo Completo: Comunicação entre Duas VPCs

Para conectar duas VPCs, as rotas são criadas em ambos os lados, com os destinos cruzados. Cada VPC recebe uma rota apontando para o CIDR da sub-rede da outra.

Cenário: A VPC de aplicação (172.16.0.0/24) precisa alcançar a VPC de banco de dados (172.17.0.0/24) por uma conexão de VPC Peering já existente e com status completed.

# 1. Localize o peering entre as duas VPCs
mgc network vpcs peerings list --vpc-id="[ID_DA_VPC_APLICACAO]"

# 2. Rota na VPC de aplicação, destino: sub-rede da VPC de banco
mgc network vpcs route-table routes create \
--vpc-id="[ID_DA_VPC_APLICACAO]" \
--cidr-destination="172.17.0.0/24" \
--targets.type="vpc_peering" \
--targets.id="[ID_DO_PEERING]" \
--description="Acesso a VPC de banco de dados"

# 3. Rota na VPC de banco, destino: sub-rede da VPC de aplicação
mgc network vpcs route-table routes create \
--vpc-id="[ID_DA_VPC_BANCO]" \
--cidr-destination="172.16.0.0/24" \
--targets.type="vpc_peering" \
--targets.id="[ID_DO_PEERING]" \
--description="Retorno para a VPC de aplicacao"

# 4. Confirme que as rotas estão ativas nos dois lados
mgc network vpcs route-table routes list --vpc-id="[ID_DA_VPC_APLICACAO]"
mgc network vpcs route-table routes list --vpc-id="[ID_DA_VPC_BANCO]"
Uma rota em apenas um lado não estabelece a comunicação

Sem a rota de retorno, os pacotes chegam ao destino mas não encontram caminho de volta. Sempre configure os dois lados.

Tempo de propagação da rota

A rota chega ao status created em poucos segundos, mas a comunicação passa a funcionar depois que a configuração é propagada pela rede, o que leva alguns minutos. É esperado que um teste feito logo após a criação da rota ainda não responda. Aguarde a propagação e repita o teste antes de investigar a configuração.


Console

Funcionalidade Indisponível no Console

O gerenciamento de rotas na Tabela de Roteamento está disponível apenas via CLI e Terraform neste momento.

O suporte via Console da Magalu Cloud está previsto para uma próxima versão. Utilize as abas de CLI ou consulte o guia de Gerenciamento via Terraform para realizar esta configuração.


Próximos Passos