Lab progressivo - arquitetura de backbone — OSPF básico até MPLS L3VPN, peering eBGP, segurança com FortiGate e observabilidade.virtualizado no KVM. Usa VyOS para roteamento de backbone e FortiGate VM para segurança/firewall/VPN.
| Fase | Nome | Tecnologias | Status |
|---|---|---|---|
| 01 | Fundação | OSPF, iBGP, KVM | 🔄 Em andamento |
| 02 | Resiliência | Loopbacks, failover | ⏳ Pendente |
| 03 | MPLS Core | LDP, label switching | ⏳ Pendente |
| 04 | L3VPN | MP-BGP, VPNv4, VRF | ⏳ Pendente |
| 05 | Peering Externo | eBGP, políticas + FortiGate edge | ⏳ Pendente |
| 06 | Segurança | FortiGate firewall, CoPP, uRPF | ⏳ Pendente |
| 07 | Observabilidade | SNMP, Grafana, NetFlow | ⏳ Pendente |
| 08 | Integração AWS | FortiGate VPN concentrator, IPsec | ⏳ Pendente |
| 09 | IaC | Terraform + Ansible — infra e config como código | ⏳ Pendente |
[core-dc1] -------- [core-dc2]
/ | \ / | \
[edge-a] [edge-b] [edge-c]
LAN-A LAN-B LAN-C
- Core:
core-dc1ecore-dc2— iBGP AS 65000 - Edges:
edge-a,edge-b,edge-c— OSPF Area 0 - Redundância: cada edge conecta aos dois cores
| Tipo | Faixa |
|---|---|
| Links backbone P2P | 10.255.0.0/16 (sub-redes /30) |
| Loopbacks (fase 02) | 10.0.0.0/24 |
| LANs clientes | 10.10.1.0/24, 10.10.2.0/24, 10.10.3.0/24 |
Detalhe: docs/architecture/addressing-plan.md
- Ubuntu 24.04 LTS
- KVM + virt-manager (
sudo apt install qemu-kvm libvirt-daemon-system virt-manager) - VyOS ISO (rolling ou 1.4 LTS) — backbone e roteamento
- FortiGate-VM64-KVM image (a partir da fase 05) — firewall e VPN
- Conta gratuita em forticloud.com para licença trial permanente
- ~5GB RAM livre (512MB × 5 VyOS + 2GB × 1 FortiGate)
- Virtualização habilitada na BIOS (VT-x / AMD-V)
# 1. Verificar KVM
kvm-ok
# 2. Configurar ambiente (copie e edite)
cp .env.example .env
# edite .env com os caminhos da ISO VyOS e imagem FortiGate
# 3. Criar redes virtuais
sudo bash scripts/create-networks.sh
# 4. Criar VMs
bash scripts/deploy-vms.sh
# 5. Instalar VyOS em cada VM (via console)
sudo virsh console core-dc1
# login: vyos / vyos → install image → poweroff → remover CDROM → start
# 6. Aplicar configs da fase atual
# Copie o conteúdo de configs/fase-01/*.vyos no modo configure de cada VM
# 7. (Opcional) Via IaC — deploy completo automatizado:
# make deploy-fase01backbone.net/
├── .env.example # Variáveis de ambiente (copie para .env)
├── .github/
│ └── workflows/
│ └── ci.yml # CI: yamllint, terraform validate, shellcheck
├── configs/
│ ├── fase-01/ # Configs OSPF + iBGP básico
│ ├── fase-02/ # + Loopbacks + BGP resiliente
│ ├── fase-03/ # + MPLS LDP
│ ├── fase-04/ # + L3VPN (VRF + MP-BGP)
│ ├── fase-05/ # + eBGP + ISP upstream
│ ├── fase-06/ # + Firewall + Segurança
│ ├── fase-07/ # + SNMP + Monitoramento
│ └── fase-08/ # + AWS Site-to-Site VPN
├── terraform/ # IaC — Infraestrutura (Fase 09)
│ ├── modules/ # Módulos reutilizáveis (kvm-network, kvm-vyos, etc)
│ └── environments/ # Lab (KVM) e AWS
├── ansible/ # IaC — Configuração (Fase 09)
│ ├── inventory/ # Hosts e variáveis
│ ├── roles/ # Roles por função (vyos-ospf, fortigate-base, etc)
│ ├── playbooks/ # Playbook por fase + validação + failover
│ └── templates/ # Jinja2 templates para configs
├── scripts/
│ ├── create-networks.sh # Cria redes virtuais no KVM
│ ├── deploy-vms.sh # Cria as VMs com virt-install
│ ├── lab-control.sh # Start/stop/snapshot do lab
│ └── simulate-wan.sh # Simula latência/jitter com tc netem
├── docs/
│ ├── roadmap/ROADMAP.md
│ ├── architecture/
│ ├── operations/
│ └── executive/
├── diagrams/
└── Makefile # Orquestração: make deploy-fase01, make test-failover
| Doc | Descrição |
|---|---|
| Arquitetura | Decisões de design |
| Endereçamento | Plano IP completo |
| Runbook | Comandos operacionais |
| Plano de testes | Validações por fase |
# Status do lab
bash scripts/lab-control.sh status
# Iniciar todas as VMs
bash scripts/lab-control.sh start
# Parar todas as VMs
bash scripts/lab-control.sh stop
# Criar snapshot (antes de mudanças)
bash scripts/lab-control.sh snapshot "fase-01-ok"
# Restaurar snapshot
bash scripts/lab-control.sh restore "fase-01-ok"
# Simular WAN (latência 50ms, jitter 10ms, 0.5% perda)
sudo bash scripts/simulate-wan.sh br-dc1-ea 50ms 10ms 0.5%
# Validar backbone (com asserts programáticos)
make validate
# Teste de failover automatizado (desabilita/reabilita link inter-core)
make test-failoverRodrigo Machado Cloud & Infrastructure Engineer Foco: Cloud Networking · Backbone Architecture · Hybrid Infrastructure
MIT — veja LICENSE