Pular para o conteúdo

Diagrama de rede de homelab: VLANs, firewall, proxy reverso e serviços self-hosted

Uma rede de homelab que você consegue recuperar: plano de VLANs, regras de firewall entre VLANs, proxy reverso com certificados reais, acesso remoto, DNS e backups.

· Fundador e desenvolvedor

Publicado em

Diagrama de rede. A internet chega a um firewall OPNsense ou pfSense que só aceita WireGuard em UDP 51820. Um switch gerenciável leva as VLANs 10 a 50 em trunk. A VLAN 30 contém um proxy reverso, um host Proxmox e um NAS. Um ponto de acesso associa SSIDs às VLANs Trusted, IoT e Guest.

A maioria dos homelabs começa plana: um Raspberry Pi com Pi-hole, um NAS, um mini PC com Proxmox e uma dúzia de containers, tudo na rede 192.168.1.0/24 que o roteador da operadora entregou. A smart TV e uma câmera que não recebe mais atualizações de firmware dividem a rede com a página de administração do seu NAS, e o redirecionamento de porta do Jellyfin de dois anos atrás continua aberto.

Este post projeta uma rede de homelab que isola IoT e convidados, expõe serviços com segurança e é fácil de recuperar, e depois a desenha.

O que a rede precisa fazer

  • Isolamento. TVs, câmeras e celulares de convidados chegam à internet, não ao seu NAS nem ao hypervisor.
  • Exposição segura. Uma única entrada autenticada e criptografada, não uma porta por serviço.
  • Recuperabilidade. Quando um disco morre, você reconstrói a partir de backups e de um diagrama, não da memória.

O hardware: um modem da operadora em modo bridge, para não haver NAT duplo; um firewall OPNsense ou pfSense CE, ambos open source, que roteia entre VLANs e executa DHCP, DNS e VPNs; um switch gerenciável com suporte a VLAN 802.1Q; um ponto de acesso que associa SSIDs a VLANs; um host Proxmox VE para VMs e containers LXC; e um NAS.

O plano de VLANs

Escolha um /16 entre as faixas privadas da RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) e dê um /24 a cada VLAN. Evite 192.168.0.0/24 e 192.168.1.0/24, comuns nas redes de onde você vai se conectar à sua casa, além de 172.17.0.0/16 (a bridge padrão usual do Docker) e 100.64.0.0/10 (os endereços do Tailscale). Este exemplo usa 10.23.0.0/16 com o ID da VLAN como terceiro octeto.

VLAN Nome Sub-rede O que fica lá Saída permitida
10 Management 10.23.10.0/24 Interfaces de administração de firewall, switch, AP e Proxmox Só atualizações
20 Trusted 10.23.20.0/24 Seus notebooks e celulares Internet, proxy, management a partir de dispositivos de admin
30 Servers 10.23.30.0/24 VMs, containers, NAS, proxy, Pi-hole Internet para atualizações
40 IoT 10.23.40.0/24 TV, caixas de som, câmeras, tomadas Só internet
50 Guest 10.23.50.0/24 Visitantes Só internet

Do firewall ao switch, do switch ao ponto de acesso e do switch ao Proxmox, os links são trunks com tags; a documentação do OPNsense avisa para não misturar VLANs sem tag no trunk do firewall. Os demais dispositivos recebem portas de acesso sem tag.

No Proxmox, deixe a bridge ciente de VLANs e coloque o endereço de gerenciamento do host na VLAN 10, como na documentação de rede do Proxmox VE. Cada VM recebe então a sua própria tag de VLAN:

auto vmbr0
iface vmbr0 inet manual
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

auto vmbr0.10
iface vmbr0.10 inet static
    address 10.23.10.5/24
    gateway 10.23.10.1

Crie um SSID por VLAN sem fio: Trusted, IoT e Guest. A Cisco Meraki recomenda no máximo três por ponto de acesso, porque cada SSID envia o próprio beacon a cada 100 ms na menor taxa de dados.

Regras de firewall entre VLANs

O OPNsense e o pfSense avaliam as regras na interface por onde o tráfego entra, de cima para baixo: vale a primeira que casar, e o que não casar com nenhuma cai no bloqueio padrão. Os dois são stateful, então permitir que Trusted acesse o proxy na 443 também deixa as respostas voltarem.

Para cada VLAN, permita o que ela precisa, bloqueie todas as faixas privadas com um alias chamado RFC1918 e só então libere a internet. Na interface IoT:

# Ação Origem Destino Porta Por quê
1 Pass IoT net Pi-hole, 10.23.30.53 53 DNS filtrado
2 Block IoT net Os próprios endereços do firewall any Sem páginas de admin
3 Block IoT net Alias RFC1918 any Sem outras VLANs
4 Pass IoT net any any Internet

A regra 2 cobre o endereço WAN público do firewall, que o alias não inclui; o pfSense chama esse destino de This firewall (self). As exceções pontuais vão acima dos bloqueios: Trusted para o proxy na 443, seu notebook de admin para a interface web do Proxmox na 8006, Home Assistant para IoT. O alias é só IPv4, então, se suas VLANs recebem prefixos IPv6, bloqueie esses também.

O casting é a surpresa de sempre. AirPlay e Google Cast descobrem dispositivos com DNS multicast em 224.0.0.251, que, segundo a Apple, normalmente não é roteado entre sub-redes. Execute um repetidor de mDNS entre Trusted e IoT, como o plugin os-mdns-repeater do OPNsense, e permita que Trusted acesse a TV.

Serviços atrás de um proxy reverso

Um único proxy reverso, como Caddy, Traefik ou Nginx Proxy Manager, na VLAN Servers termina o TLS e roteia pelo nome do host, então o firewall libera a 443 para um só endereço.

Use nomes sob um domínio que você possui, como jellyfin.home.example.com. Evite .local, que a RFC 6762 reserva para o DNS multicast; nomes sob .internal ou home.arpa funcionam localmente, mas nenhuma CA pública emite certificados para eles.

Obtenha certificados do Let's Encrypt com o desafio DNS-01: seu cliente ACME cria um registro TXT em _acme-challenge.<name> pela API do seu provedor de DNS, então nada precisa estar acessível pela internet. É também o único tipo de desafio que emite wildcards, e você quer um. O Let's Encrypt envia todo certificado a logs públicos de Certificate Transparency, então *.home.example.com publica um só nome em vez da sua lista de serviços. Desde o Caddy 2.10, os outros sites reaproveitam um certificado wildcard correspondente:

*.home.example.com {
	tls {
		dns cloudflare {env.CF_API_TOKEN}
	}
	abort
}

jellyfin.home.example.com {
	reverse_proxy 10.23.30.21:8096
}

Isso exige um build do Caddy com o módulo caddy-dns/cloudflare e um token limitado a Zone.Zone:Read e Zone.DNS:Edit. Hoje os certificados duram 90 dias e, até fevereiro de 2028, durarão 45, então automatize a renovação.

Opções de acesso remoto

Opção O que a internet vê Esforço Trade-offs
Redirecionar a 443 para o proxy Seu IP e a página de login de cada app Baixo O login de cada app é a única barreira; não funciona atrás de CGNAT
WireGuard no firewall Uma porta UDP que ignora pacotes não autenticados Médio Exige um IP público alcançável e um par de chaves por dispositivo
Tailscale Nada de entrada Baixo Depende do serviço de coordenação do Tailscale ou do Headscale self-hosted; plano Personal gratuito no momento da escrita (novembro de 2026)
Cloudflare Tunnel Nada de entrada Baixo a médio A Cloudflare termina o TLS e vê seu tráfego; seu domínio precisa estar na Cloudflare

O WireGuard é um bom padrão para você mesmo: segundo o artigo do WireGuard, ele nunca responde a pacotes não autenticados, então scanners não o enxergam. Ainda assim ele precisa de uma porta de entrada, o que o NAT de nível de operadora (CGNAT) impede; um endereço WAN em 100.64.0.0/10, a faixa compartilhada da RFC 6598, é um sinal claro disso.

O Tailscale e o Cloudflare Tunnel conectam para fora. Os relays DERP do Tailscale só encaminham pacotes que continuam criptografados com WireGuard, e um subnet router alcança a VLAN Servers sem um cliente em cada VM. Um túnel serve para serviços compartilhados com quem não vai instalar uma VPN; o Cloudflare Access pode adicionar um login. O diagrama de arquitetura zero trust explica por que a identidade vale mais que a localização na rede.

DNS e DHCP por VLAN

O firewall atende o DHCP em cada VLAN, com reservas para os servidores. O OPNsense ativa por padrão o Unbound, um resolvedor recursivo com validação. Execute Pi-hole ou AdGuard Home na VLAN Servers para Trusted e IoT: os dois filtram anúncios e rastreadores, guardam os registros locais que apontam *.home.example.com para o proxy e encaminham as demais consultas ao Unbound (como o DNS funciona acompanha uma consulta de ponta a ponta). Os convidados usam o firewall diretamente. Execute uma segunda instância de filtragem em outra máquina: se a única existente parar, essas VLANs perdem a resolução de nomes.

Backups e energia

Siga o 3-2-1: três cópias, dois tipos de armazenamento, uma externa. Suas VMs são a primeira cópia, backups noturnos no NAS ou em um Proxmox Backup Server são a segunda, e uma cópia criptografada em um bucket na nuvem é a terceira. O Proxmox Backup Server faz backups incrementais, deduplicados e criptografados que a Proxmox considera seguros até em destinos em que você não confia totalmente. RAID e snapshots não são backups. Exporte a configuração do firewall (um arquivo XML no OPNsense e no pfSense), guarde-a junto com este diagrama e teste as restaurações; o diagrama de arquitetura de disaster recovery trata de RPO e RTO.

Coloque o firewall, o switch, o host Proxmox e o NAS em um nobreak (UPS). Com o Network UPS Tools (NUT), a máquina ligada ao nobreak avisa as outras pela rede para desligar, então o switch também precisa estar no nobreak. Dimensione-o pelo consumo medido na tomada e pelo gráfico de autonomia da folha de dados: você precisa de minutos, não de horas.

O diagrama de rede de homelab

Diagrama de rede. A internet chega a um firewall OPNsense ou pfSense que só aceita WireGuard em UDP 51820. Um switch gerenciável leva as VLANs 10 a 50 em trunk. A VLAN 30 contém um proxy reverso, um host Proxmox e um NAS. Um ponto de acesso associa SSIDs às VLANs Trusted, IoT e Guest.

22 componentes · 11 conexões

Abrir no Archboard
Conteúdo do diagrama
  • Internet
  • OPNsense or pfSense
  • Managed switch
  • Access point
  • VLAN 20 · Trusted
  • Laptops and phones
  • VLAN 40 · IoT
  • TV, cameras, plugs
  • VLAN 50 · Guest
  • VLAN 30 · Servers
  • Reverse proxy (Caddy)
  • Proxmox VE host
  • NAS (backups)
  • Links
  • deny inbound
  • WireGuard UDP 51820
  • trunk: 10–50
  • trunk: 10, 20, 40, 50
  • trunk: 10, 30
  • HTTPS 443 from Trusted and VPN
  • HTTP to apps
  • nightly backups
  • SSID home
  • SSID iot
  • SSID guest
Um homelab atrás de um firewall OPNsense ou pfSense. Um switch gerenciável leva cinco VLANs em trunk, o ponto de acesso associa três SSIDs a VLANs, e um proxy reverso na VLAN Servers é o único caminho até os apps. O resto entre VLANs é bloqueado.

Como ler:

  • Linha superior: internet, firewall, switch. A WAN bloqueia todo o tráfego de entrada, exceto WireGuard em UDP 51820 (tracejado).
  • Os trunks levam VLANs com tag: de 10 a 50 até o switch, 10, 20, 40 e 50 até o ponto de acesso por PoE, 10 e 30 até o Proxmox.
  • Os quadros são VLANs com ID, nome e CIDR. Management, a VLAN 10, é o rótulo sob o switch.
  • As arestas verde-azuladas são fluxos permitidos: HTTPS 443 de Trusted e dos clientes VPN até o proxy, depois HTTP até os apps. O cinza tracejado é o backup noturno.
  • O ponto de acesso associa os SSIDs home, iot e guest às VLANs 20, 40 e 50.
  • O bloco Markdown contém o plano de VLANs e as configurações; a legenda explica as cores dos links.

Como desenhar com clareza diagramas de rede de homelab

  • Rotule cada VLAN com ID, nome e CIDR no próprio quadro.
  • Marque os trunks com as VLANs que eles levam. Uma VLAN ausente em um trunk é o bug clássico.
  • Desenhe o firewall como o único caminho entre VLANs, com os fluxos permitidos rotulados por porta.
  • Mostre a entrada vinda de fora, mesmo que seja uma única porta UDP.
  • Deixe de fora containers, endereços MAC e números de porta do switch. Eles pertencem a um diagrama físico, como explica o guia do diagrama de topologia de rede.
  • Guarde-o junto com os backups de configuração e atualize-o quando uma regra mudar.

Monte no Archboard

  1. Entre com Google ou GitHub e crie um diagrama.
  2. No pack Rede, adicione Internet, um Firewall rotulado OPNsense ou pfSense e um Comutador em uma linha, e um nó Sem fio para o ponto de acesso, abaixo e à direita.
  3. Adicione quatro quadros Sub-rede para as VLANs 20, 30, 40 e 50, cada um com seu nome e CIDR.
  4. Em Servers, adicione um Balanceador de carga como proxy reverso (o pack não tem um tipo proxy), um Servidor para o Proxmox e um Dispositivo com Tipo definido como NAS. Adicione um Dispositivo de notebook em Trusted e um Dispositivo IoT em IoT.
  5. Conecte tudo, defina o tipo de conexão de cada link como WAN, Ethernet, PoE ou Wi-Fi e rotule-o com suas VLANs ou o SSID. Desenhe os fluxos permitidos em verde-azulado, e o WireGuard e os backups tracejados.
  6. Adicione uma Legenda de rede do pack Rede, um bloco Markdown do pack Básico com o plano de VLANs e rótulos de Texto do pack Básico para a regra de cada VLAN.

Se seus apps estão em um compose.yaml, a ferramenta Docker Compose para diagrama monta um rascunho da parte de serviços, e a página de diagramas de rede mostra o pack inteiro. O exemplo usa 15 nós de diagrama e fica dentro do plano Free, que é também o limite do Free por diagrama.

Perguntas frequentes

Quais VLANs um homelab deve ter? Normalmente cinco: management, trusted, servers, IoT e guest. Só adicione mais quando dispositivos precisarem de regras diferentes; cada VLAN soma regras e, muitas vezes, um SSID.

Preciso de um switch gerenciável para usar VLANs? Sim, um switch gerenciável ou smart com suporte a 802.1Q, além de um ponto de acesso que associe SSIDs a VLANs. Switches não gerenciáveis não conseguem colocar portas em VLANs.

Devo executar o OPNsense ou o pfSense como VM no Proxmox? Isso poupa um equipamento, mas cada reinicialização do host deixa a casa inteira sem rede. Um pequeno firewall dedicado é mais fácil de recuperar. Se for virtualizar, dê à WAN uma NIC própria e mantenha uma exportação da configuração fora do host.

É seguro abrir uma porta para um serviço self-hosted? Isso coloca a página de login do app na internet, então as atualizações de segurança dele passam a ser a sua defesa. Prefira uma VPN; se precisar redirecionar, envie só a 443 ao proxy reverso e adicione autenticação na frente.

Posso usar o Let's Encrypt para serviços somente internos? Sim, com DNS-01: um registro TXT prova que você controla o domínio, então o serviço nunca precisa estar acessível pela internet. Um wildcard mantém os nomes dos serviços fora dos logs de Certificate Transparency.

Comece grátis — um assento, sem cartão de crédito.

Artigos relacionados

← Voltar ao blog

Abra um canvas em um minuto

Entre com Google ou GitHub. Grátis para um assento. Faça upgrade quando a equipe entrar.