obsidian-vault/Infra-Network/SPEC_ARCH_B_BIG_PRIVATE_NETWORK.md

5.6 KiB

SPEC — Architecture B: Rede Privada Proxmox BIG (vmbr0/vmbr1/vmbr2)

Data: 2026-07-08
Responsável: Roger / iTecnologys
Host: Dell R630 BIG — big-itecnologys-wardrobe
Status: Implementado (fase 1)


1. Objetivo

Proteger infraestrutura de servidores no BIG sem alterar o Sagemcom (.254):

  • Rede casa (192.168.1.0/24) — gestão e uplink
  • Rede privada (10.10.10.0/24) — VMs, Traefik, Tunnel, Wazuh, mail
  • pfSense VM 100 — firewall entre zonas
  • Cloudflare Tunnel — acesso externo sem expor IP (fase 2)

Não objetivo: firewall de toda a casa (TV, telemóveis, PCs no Sagemcom).


2. Topologia física

Internet
    │
Sagemcom (.254)  ← inalterado (DHCP, firewall ISP)
    ├── Smart TV, PCs, IoT
    └── R8000 (.115) → R7000 DD-WRT (.1) → eno3 (1 cabo)
                                              │
                                         Dell R630 BIG
Regra física Detalhe
1 cabo eno3 → porta LAN R7000
eno4 DOWN Evitar loop L2 (STP off no DD-WRT)
Sem VLAN no R8000 Stock não faz trunk — isolamento é virtual no Proxmox

3. Switches virtuais (Proxmox bridges)

Bridge Rede Porta física Função
vmbr0 192.168.1.0/24 eno3 Casa — host .137, uplink internet
vmbr1 10.10.10.0/24 nenhuma Privada — VMs serviços
vmbr2 10.0.0.0/30 nenhuma Link interno host ↔ pfSense WAN

Host BIG

Campo Valor
IP gestão (vmbr0) 192.168.1.137/24
Gateway 192.168.1.254
IP privado (vmbr1) 10.10.10.1/24
pfSense WAN (vmbr2) 10.0.0.1/30 → pfSense 10.0.0.2
Tailscale 100.90.196.58
SSH remoto tailscale ssh root@big-itecnologys-wardrobe
Proxmox GUI https://192.168.1.137:8006

4. pfSense VM 100 (pfsense-firewall)

NIC Bridge Função
net0 vmbr1 LAN privada 10.10.10.0/24
net1 vmbr2 WAN interna 10.0.0.0/30
net2 vmbr0 Interface casa (opcional/gestão)

Configuração pfSense (GUI)

Interface IP Notas
LAN (vmbr1) 10.10.10.1/24 DHCP 10.10.10.100-200
WAN (vmbr2) 10.0.0.2/30 Gateway 10.0.0.1
DNS 192.168.1.254 ou 1.1.1.1 Via NAT host

Regras firewall essenciais

Regra Ação
LAN → Internet ALLOW
LAN → 192.168.1.0/24 BLOCK (isolamento)
Casa → LAN ALLOW só portas gestão necessárias
Inbound WAN casa → VMs BLOCK (usar Cloudflare Tunnel)

5. VMs e serviços por bridge

VMID Nome Bridge IP típico
100 pfsense-firewall vmbr1+vmbr2+vmbr0 10.10.10.1
120 (LXC) web-traefik vmbr1 10.10.10.120
101-108, 500, 600, 700 serviços vmbr1 10.10.10.x

Regra: VMs sensíveis (Traefik, Tunnel, Wazuh, mail) só em vmbr1.


6. Isolamento host (iptables)

Já aplicado em /etc/network/interfaces (vmbr1 post-up):

FORWARD: DROP 10.10.10.0/24 → !10.10.10.0/24
FORWARD: ACCEPT 10.10.10.0/24 → UDP/53 (DNS)

Persistência: /etc/network/interfaces.d/99-arch-b-private


7. Nginx reverse proxy (host BIG)

Domínios *.myvexx.com no host nginx (:80 / 192.168.1.137:443):

server.myvexx.com → proxy_pass http://10.10.10.120:80 (Traefik CT120)
Ficheiro Função
myvexx-proxy HTTP :80 → Traefik
myvexx-landing-https HTTPS server/mycloud → Traefik
myvexx-proxmox proxmox.myvexx.com → :8006

8. Cloudflare Tunnel (fase 2)

Item Valor
Objetivo Acesso externo sem port forward
Instalar em LXC/VM só em vmbr1
DNS Cloudflare zone myvexx.com
Token Configurar em CT120 ou VM dedicada

9. Equipamentos LAN

Device IP Doc
Sagemcom .254 Gateway casa
R8000 .115 SPEC_R8000_CREDENTIALS.md
R7000 DD-WRT .1 SPEC_R7000_DDWRT_CREDENTIALS.md
BIG .137 Este documento

10. Validação

# No BIG (via Tailscale)
ip addr show vmbr1 | grep 10.10.10.1
ip link show eno4 | grep DOWN
ping -c2 10.10.10.120
ping -c2 8.8.8.8
qm list | grep pfsense
iptables -L FORWARD -n | grep 10.10.10

# Teste local nginx
curl -sI -H 'Host: server.myvexx.com' http://127.0.0.1/

11. Fases de implementação

Fase Estado Conteúdo
1 Feito vmbr1 10.10.10.1, eno4 down, iptables, persistência
2 Pendente pfSense GUI — DHCP LAN, regras finais
3 Pendente Cloudflare Tunnel (substituir port forward)
4 Opcional Proxmox :8006 só via Tailscale/vmbr1
5 Opcional VLAN física se R8000 DD-WRT no futuro

12. Troubleshooting

Sintoma Causa provável Ação
Rede cai ao ligar 2º cabo Loop L2 eno3+eno4 eno4 DOWN, 1 cabo
SSH LAN falha Tailscale SSH ativo tailscale set --ssh=false
server.myvexx.com fora DNS → IP casa + port forward Ver secção DNS abaixo
VMs sem internet pfSense WAN/LAN Verificar VM100

13. DNS server.myvexx.com

Campo Valor
DNS público server.myvexx.com51.171.219.218 (IP casa)
myvexx.com 95.216.14.146 (Hetzner)
Backend local nginx → 10.10.10.120 (OK internamente)
Acesso externo Requer port forward Sagemcom :80/:443 → .137

Documento gerado automaticamente — Architecture B BIG Proxmox