VyOS SP
VyOS SP — Rede e Roteador
Documentação da rede SP e do VyOS que substitui os pfSense (VMID 5001, 5002).
Topologia
INTERNET (UNESP/ANSP) | | 186.217.182.240/27 (gateway .254) | vmbr0 ← bridge WAN | [VyOS-SP] (VMID 6001, pve-ippri-11) | eth0 = vmbr0 (WAN, IP estático) | eth1 = vmbr1 (trunk VLAN-aware) | ├── eth1.192 (VLAN 192 — Proxmox nodes) → 192.168.0.5/23 | └── eth1.197 (VLAN 197 — lab machines) → 192.168.10.5/23 | ├── pve-ippri-11 (192.168.0.11) [VLAN 192] ├── pve-ippri-12 (192.168.0.12) [VLAN 192] ├── pve-ippri-31 (192.168.0.31) [VLAN 192] ├── pve-ippri-32 (192.168.0.32) [VLAN 192] ├── pve-ippri-33 (192.168.0.33) [VLAN 192] ├── pve-ippri-34 (192.168.0.34) [VLAN 192] ├── traefik-sp (192.168.0.5) [VLAN 192] ├── k3s-sp (192.168.0.51) [VLAN 192] └── lab machines (192.168.1.x) [VLAN 197]Bloco de IPs públicos
| Campo | Valor |
|---|---|
| Bloco alocado | 186.217.182.240/27 |
| IPs disponíveis | .240, .241, .242, .243 |
| Gateway | 186.217.182.254 |
| VyOS (produção) | 186.217.182.242 |
Nota: o bloco /27 tem 30 IPs utilizáveis (.225-.254), mas apenas .240-.243 estão alocados para nosso uso atualmente.
Redes
WAN (vmbr0)
- Bridge Proxmox:
vmbr0 - Bloco: 186.217.182.240/27
- Gateway: 186.217.182.254
- Pontos físicos de saída WAN:
- Porta 15 do switch do 1º andar → pve-ippri-11
- Porta 10 do switch do 3º andar → pve-ippri-32
LAN (vmbr1) — VLANs com subnets distintas
- Bridge Proxmox:
vmbr1(VLAN-aware) - VyOS: sub-interfaces diretas
eth1.192eeth1.197(sem bridge)
| VLAN | Subnet | Gateway (VyOS) | Função |
|---|---|---|---|
| 192 | 192.168.0.0/23 | 192.168.0.5 | Nodes Proxmox (management) + VMs de infra |
| 193 | 192.168.4.0/23 | — | Apenas ippri-11 tem IP (192.168.4.11), sem gateway |
| 194 | — | — | Configurada nos nodes mas sem IPs atribuídos |
| 197 | 192.168.10.0/23 | 192.168.10.5 | Máquinas do laboratório (DHCP) |
Cada VLAN tem seu próprio subnet. O VyOS tem um IP em cada sub-interface:
eth1.192 = 192.168.0.5/23 e eth1.197 = 192.168.10.5/23.
IPs dos nodes por VLAN
| Node | VLAN 192 | VLAN 197 | VLAN 193 | 10G |
|---|---|---|---|---|
| pve-ippri-11 | 192.168.0.11 | 192.168.10.11 | 192.168.4.11 | 10.10.10.11 |
| pve-ippri-12 | 192.168.0.12 | — | — | 10.10.10.12 |
| pve-ippri-31 | 192.168.0.31 | — | — | 10.10.10.31 |
| pve-ippri-32 | 192.168.0.32 | 192.168.10.32 | — | — |
| pve-ippri-33 | 192.168.0.33 | 192.168.10.33 | — | 10.10.100.33 |
| pve-ippri-34 | 192.168.0.34 | 192.168.10.34 | — | — |
Rede 10G (10.10.10.0/24)
- Uso: storage LINSTOR (DRBD replication)
- Ponto-a-ponto entre nodes com NVMe
- VyOS não participa desta rede atualmente
NAT / Port Forwarding
| Regra | Porta externa | Destino interno | Protocolo |
|---|---|---|---|
| SSH VyOS | 65401 | 192.168.0.5:65401 | TCP |
| SSH traefik-sp | 65402 | 192.168.0.5:22 | TCP |
| HTTP Traefik | 80 | 192.168.0.5:80 | TCP |
| HTTPS Traefik | 443 | 192.168.0.5:443 | TCP |
| SSH k3s-sp | 65403 | 192.168.0.51:22 | TCP |
NAT source:
- Rule 100: masquerade 192.168.0.0/23 (LAN) via eth0
- Rule 110: masquerade 192.168.10.0/23 (LAB) via eth0
Firewall
Input (proteção do VyOS)
Default: drop
| Regra | Ação | Descrição |
|---|---|---|
| 10 | accept | SSH porta 65401 |
| 20 | accept | Established/related |
| 30 | accept | Loopback (127.0.0.0/8) |
| 40 | accept | LAN (192.168.0.0/23) |
| 41 | accept | LAB (192.168.10.0/23) |
Forward (tráfego passando pelo VyOS)
Default: drop
| Regra | Ação | Descrição |
|---|---|---|
| 10 | accept | LAN → WAN (outbound) |
| 11 | accept | LAB → WAN (outbound) |
| 20 | accept | Established/related |
| 30 | accept | DNAT — WAN → serviços LAN |
DHCP
LAN (VLAN 192) — 192.168.0.0/23
- Authoritative: sim (NAK clientes com leases de outro servidor)
- Range dinâmico: 192.168.1.200 — 192.168.1.209
- Lease: 86400s (24h)
- DNS: 192.168.0.5
- Gateway: 192.168.0.5
Static mappings (preencher MACs após deploy):
| Host | IP |
|---|---|
| traefik-sp | 192.168.0.5 |
| k3s-sp | 192.168.0.51 |
LAB (VLAN 197) — 192.168.10.0/23
- Authoritative: sim (NAK clientes com leases de outro servidor)
- Range dinâmico: 192.168.11.100 — 192.168.11.200
- Lease: 86400s (24h)
- DNS: 192.168.10.5
- Gateway: 192.168.10.5
Arquivos de configuração
| Arquivo | Descrição |
|---|---|
config/vyos/playbook-sp.yaml | Playbook Ansible (fonte autoritativa) |
config/vyos/config-sp.sh | Script vbash (referência/emergência) |
infra/proxmox-sp/config.py | Definição da VM (Pulumi) |
scripts/build-vyos-iso.sh | Build da ISO VyOS LTS a partir do source |
Build da ISO VyOS
A ISO VyOS 1.4 LTS (Sagitta) é compilada a partir do source (GPL) usando
o repositório oficial vyos/vyos-build e um container Docker.
Uso rápido
./scripts/build-vyos-iso.sh # versao: 1.4-YYYYMMDD./scripts/build-vyos-iso.sh 1.4.1 # versao customizadaPré-requisitos
- Docker instalado e funcional
- ~10 GB de disco livre
- Acesso à internet (download de pacotes Debian)
O que o script faz
- Clona (ou atualiza) o repo
vyos/vyos-buildbranchsagittaem/tmp/vyos-build - Pull da imagem Docker
vyos/vyos-build:sagitta - Executa o build dentro do container (
--privilegednecessário para squashfs/chroot) - Gera a ISO em
/tmp/vyos-build/vyos-<versao>-amd64.iso
Build leva ~15-45 min dependendo do hardware e rede.
Upload para Proxmox
scp /tmp/vyos-build/vyos-*.iso root@192.168.0.11:/var/lib/vz/template/iso/Rebuild (atualizar)
Para gerar uma ISO atualizada com patches mais recentes do branch sagitta,
basta rodar o script novamente — ele faz git fetch + reset automaticamente.
Procedimento de rollback
Se o VyOS falhar após a migração:
- Acessar console Proxmox de pve-ippri-11
qm start 5001(ligar pfSense)qm stop 6001(desligar VyOS)- Aguardar ~30s para DHCP renovar nos nodes
O pfSense deve ser mantido desligado (não deletado) por 1-2 semanas após a migração para facilitar rollback.
Decisões adiadas
Decisões que foram identificadas durante o planejamento mas adiadas intencionalmente. Cada uma inclui o contexto necessário para retomá-la.
HA com dois VyOS (VRRP)
Status: Adiada — focar no VyOS primário primeiro.
Contexto: Existem dois pontos de saída WAN no campus SP:
- Porta 15 do switch do 1º andar → pve-ippri-11
- Porta 10 do switch do 3º andar → pve-ippri-32
Isso permite criar dois VyOS (um em cada node) com VRRP para failover automático. O VyOS primário ficaria em ippri-11 e o secundário em ippri-32.
Pré-requisitos para implementar:
- VyOS primário estável e validado em produção
- Segundo ponto WAN (ippri-32) testado e funcional
- Configurar VRRP group com virtual IP 192.168.0.1 e 186.217.182.242
- Sincronização de config entre os dois VyOS
Interface na rede 10G (10.10.10.0/24)
Status: Adiada — avaliar necessidade.
Contexto: A rede 10.10.10.0/24 é usada exclusivamente para replicação LINSTOR (DRBD) entre os nodes com NVMe. É ponto-a-ponto via switches 10G (USW Pro Aggregation + US-16-XG).
Quando considerar:
- Se precisar de monitoramento centralizado do tráfego LINSTOR
- Se precisar de gerência dos switches 10G via VyOS
- Se houver necessidade de roteamento entre a rede 10G e a LAN
Risco: Adicionar o VyOS à rede 10G pode introduzir latência no path de replicação se configurado incorretamente.
Redundância WAN (mais portas de switch)
Status: Futuro — solicitar à UNESP.
Contexto: Atualmente apenas duas portas de switch têm passagem WAN:
- Porta 15 (1º andar) → ippri-11
- Porta 10 (3º andar) → ippri-32
Para implementar HA completo ou balanceamento de carga, seria necessário solicitar liberação de WAN em portas adicionais.
Ação: Abrir chamado solicitando liberação de WAN em mais portas de switch para os nodes que ainda não têm acesso direto à WAN.
VLANs 193-196
Status: Verificar antes da migração.
Contexto: As VLANs 192 e 197 são usadas ativamente. VLANs 193-196 existem no range mas seu uso atual é desconhecido.
Ação antes da migração:
- Verificar no switch se há tráfego nas VLANs 193-196
- Se houver tráfego ativo, adicionar as VLANs correspondentes como sub-interfaces no VyOS (eth1.xxx) com IPs e DHCP apropriados
- Se não houver, documentar como “reservadas” e ignorar
Comando para verificar (no VyOS após ativar trunk):
show interfaces ethernet eth1 vif