Skip to main content

mmpg-rout-pbr

Motor de Policy-Based Routing (PBR) para gateways Linux institucionais: decide automaticamente, por bloco CIDR de destino, se o tráfego sai pela rede institucional (ex.: PRODEMGE) ou pela internet geral — sem exigir troca manual de gateway nas estações clientes.

Contexto

Em ambientes onde as estações precisam alternar manualmente o gateway IPv4 entre uma rede institucional e a internet geral, dependendo do destino, este motor centraliza essa decisão em um servidor Linux configurado como gateway, usando os mecanismos nativos ip rule, ip route e nftables.

Premissas obrigatórias

  1. A regra principal do PBR é baseada em CIDR, nunca em FQDN.
  2. IPs institucionais externos e redes privadas institucionais ficam em listas separadas, adicionadas de forma explícita e validada — nunca se adiciona um bloco privado amplo sem confirmação formal.
  3. A rota padrão é sempre a rede de internet geral — nunca a institucional.
  4. Conexões já estabelecidas não mudam de rota durante a sessão (ct state established,related restaura a marca salva no conntrack).
  5. Toda implantação precisa de modo de validação (dry-run), backup e rollback.
  6. O monitoramento é uma evolução posterior ao núcleo funcional — fora de escopo deste pacote.

Os endereços de gateway e o bloco institucional são parâmetros de config.yaml, não constantes do projeto — cada implantação tem sua própria topologia de rede. Ver config/config.example.yaml para o formato completo.

Instalação

pip install mmpg-rout-pbr

Requer Linux com ip (iproute2) e nft (nftables) instalados. validate e plan não tocam no sistema e rodam em qualquer máquina; apply, rollback e uninstall exigem privilégio de root.

Uso

# copie config/config.example.yaml, ajuste para sua topologia real
mmpg-rout-pbr validate --config /etc/mmpg-rout/config.yaml
mmpg-rout-pbr plan     --config /etc/mmpg-rout/config.yaml

sudo mmpg-rout-pbr apply     --config /etc/mmpg-rout/config.yaml
sudo mmpg-rout-pbr rollback                     # desfaz o último apply
sudo mmpg-rout-pbr uninstall [--purge]          # remove o que foi aplicado

Para produção, scripts/install.sh orquestra a instalação completa (checagem de privilégios/ferramentas, encaminhamento IPv4, serviço systemd para reaplicar a política no boot).

Artefato principal

  • motor de PBR (motor/): validação de config e listas de rede, geração determinística de ip rule/ip route/regras nftables, diff idempotente contra o estado atual do sistema, backup e rollback automático.
  • instalador (scripts/install.sh + scripts/mmpg-rout-pbr.service): orquestra o motor num servidor Linux real, incluindo o serviço systemd que reaplica a política no boot.
  • listas de rede homologadas (config/*.txt): blocos institucionais, exceções e redes privadas validadas.

Limites de segurança

  • Não implantar diretamente em produção sem laboratório.
  • Não utilizar blocos privados amplos sem validação.
  • Não alterar a rota de gerenciamento sem mecanismo de rollback.
  • Não registrar credenciais, tokens ou conteúdo sensível em logs.
  • Não afirmar que failover garante acesso quando o destino exige origem institucional.

Autor

Valfrido Novais — mmpg.onlinenovaisufvjm@gmail.com

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mmpg_rout_pbr-0.1.0.tar.gz (29.6 kB view details)

Uploaded Source

File details

Details for the file mmpg_rout_pbr-0.1.0.tar.gz.

File metadata

  • Download URL: mmpg_rout_pbr-0.1.0.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for mmpg_rout_pbr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e4c450b650f52e76a30533c8c0de7fee32bd8df2a3d59bd8e320d6f97d28c54f
MD5 84ec5daef08d7d2fa0b8c861d6c9c35e
BLAKE2b-256 65bb130c76cd9d6a84ba13e6b56927400607a493aff6096bee61b3b51d418d0c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page