Skip to content

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

CampoValor
Bloco alocado186.217.182.240/27
IPs disponíveis.240, .241, .242, .243
Gateway186.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.192 e eth1.197 (sem bridge)
VLANSubnetGateway (VyOS)Função
192192.168.0.0/23192.168.0.5Nodes Proxmox (management) + VMs de infra
193192.168.4.0/23Apenas ippri-11 tem IP (192.168.4.11), sem gateway
194Configurada nos nodes mas sem IPs atribuídos
197192.168.10.0/23192.168.10.5Má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

NodeVLAN 192VLAN 197VLAN 19310G
pve-ippri-11192.168.0.11192.168.10.11192.168.4.1110.10.10.11
pve-ippri-12192.168.0.1210.10.10.12
pve-ippri-31192.168.0.3110.10.10.31
pve-ippri-32192.168.0.32192.168.10.32
pve-ippri-33192.168.0.33192.168.10.3310.10.100.33
pve-ippri-34192.168.0.34192.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

RegraPorta externaDestino internoProtocolo
SSH VyOS65401192.168.0.5:65401TCP
SSH traefik-sp65402192.168.0.5:22TCP
HTTP Traefik80192.168.0.5:80TCP
HTTPS Traefik443192.168.0.5:443TCP
SSH k3s-sp65403192.168.0.51:22TCP

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

RegraAçãoDescrição
10acceptSSH porta 65401
20acceptEstablished/related
30acceptLoopback (127.0.0.0/8)
40acceptLAN (192.168.0.0/23)
41acceptLAB (192.168.10.0/23)

Forward (tráfego passando pelo VyOS)

Default: drop

RegraAçãoDescrição
10acceptLAN → WAN (outbound)
11acceptLAB → WAN (outbound)
20acceptEstablished/related
30acceptDNAT — 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):

HostIP
traefik-sp192.168.0.5
k3s-sp192.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

ArquivoDescrição
config/vyos/playbook-sp.yamlPlaybook Ansible (fonte autoritativa)
config/vyos/config-sp.shScript vbash (referência/emergência)
infra/proxmox-sp/config.pyDefinição da VM (Pulumi)
scripts/build-vyos-iso.shBuild 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

Terminal window
./scripts/build-vyos-iso.sh # versao: 1.4-YYYYMMDD
./scripts/build-vyos-iso.sh 1.4.1 # versao customizada

Pré-requisitos

  • Docker instalado e funcional
  • ~10 GB de disco livre
  • Acesso à internet (download de pacotes Debian)

O que o script faz

  1. Clona (ou atualiza) o repo vyos/vyos-build branch sagitta em /tmp/vyos-build
  2. Pull da imagem Docker vyos/vyos-build:sagitta
  3. Executa o build dentro do container (--privileged necessário para squashfs/chroot)
  4. Gera a ISO em /tmp/vyos-build/vyos-<versao>-amd64.iso

Build leva ~15-45 min dependendo do hardware e rede.

Upload para Proxmox

Terminal window
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:

  1. Acessar console Proxmox de pve-ippri-11
  2. qm start 5001 (ligar pfSense)
  3. qm stop 6001 (desligar VyOS)
  4. 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