- Início
- Redes
- Como fazer
- Como Gerenciar Rotas na Tabela de Roteamento da VPC
Como Gerenciar Rotas na Tabela de Roteamento da VPC
Regiões
Este recurso está disponível nas seguintes regiões: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.id | Quando usar |
|---|---|---|
port_id | ID da porta (VNIC) | Direcionar o tráfego para uma VM ou appliance dentro da própria VPC, como um firewall ou proxy. |
vpc_peering | ID do VPC Peering | Direcionar 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:
- Uma VPC existente com ao menos uma sub-rede configurada.
- 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 comonext_hop. - Para
targets.type=vpc_peering: uma conexão de VPC Peering já com statuscompleted.
- Para
- CLI MGC instalada e autenticada, ou o Provider Terraform para MGC configurado.
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âmetro | Obrigatório | Descrição |
|---|---|---|
--vpc-id | ✅ Sim | ID da VPC que recebe a rota, ou seja, a origem do tráfego. |
--cidr-destination | ✅ Sim | Bloco CIDR de destino do tráfego (ex: 172.20.0.0/16). |
--targets.type | ✅ Sim | Tipo do próximo salto: port_id ou vpc_peering. |
--targets.id | ✅ Sim | ID do recurso que atuará como próximo salto, conforme o tipo informado. |
--description | ❌ Não | Texto livre para identificar a finalidade da rota. |
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.
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"
}
- 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âmetro | Descrição |
|---|---|
--zone | Filtra rotas por zona de disponibilidade (ex: a, b). |
--sort | Ordena os resultados. Campos válidos: id, port_id, description, cidr_destination, type, status. Direção: asc ou desc. |
--page | Número da página (padrão: 1, mínimo: 1). |
--items-per-page | Quantidade 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]"
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.
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:
| Status | Descrição |
|---|---|
pending | A rota foi aceita e está aguardando processamento. |
processing | A rota está sendo provisionada na infraestrutura. |
created | A rota está ativa e o tráfego já está sendo roteado. |
error | Ocorreu uma falha durante o provisionamento. Verifique os parâmetros e tente novamente. |
deleting | A rota está em processo de exclusão. |
deleted | A 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]"
Sem a rota de retorno, os pacotes chegam ao destino mas não encontram caminho de volta. Sempre configure os dois lados.
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
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
- Consulte o guia de Gerenciamento de Rotas via Terraform para automatizar o provisionamento como código (IaC).
- Para configurar a interface de rede (VNIC) usada como próximo salto, veja Como Adicionar e Configurar uma Nova Interface de Rede.
- Para conectar duas VPCs por rede privada, consulte Como Conectar Duas VPCs com VPC Peering.