Problema

Muchos entusiastas de homelab quieren consolidar funciones de router, firewall, DNS filtering y reverse proxy en un único nodo. La idea es ejecutar Proxmox como hipervisor, crear una VM de OPNsense para el enrutamiento y firewall, lanzar un contenedor LXC con AdGuard Home para bloqueo de anuncios y un segundo LXC con Caddy para exponer servicios internos (por ejemplo Jellyfin).

El reto principal es encontrar hardware que cumpla con los requisitos típicos de este stack sin superar un presupuesto de ≈ $300‑$400:

  • Soporte de VT‑d/IOMMU para pasar la interfaz WAN directamente a la VM de OPNsense.
  • Al menos 4 × puertos 2.5 GbE (o una combinación de 1 GbE + 2.5 GbE con tarjetas de expansión).
  • 16 GB de RAM como mínimo, para que Proxmox, la VM y los LXC tengan margen.
  • Almacenamiento NVMe ≥ 128 GB para arranque rápido y espacio suficiente para contenedores.
  • Operación fanless o muy silenciosa, ya que el nodo suele quedar en la oficina o el salón.

La pregunta recurrente es si es realista armar este entorno dentro del rango de precio indicado o si hay que elevar el presupuesto y, en caso afirmativo, qué componentes sacrifican menos funcionalidad.

Causa

Los bloqueos habituales aparecen por tres motivos:

  1. Mini‑PCs sin VT‑d – Muchos dispositivos de bajo coste (por ejemplo algunos modelos de Intel NUC, Raspberry Pi o placas ARM) carecen de IOMMU o lo tienen desactivado en BIOS, lo que impide la asignación directa de la NIC de WAN a OPNsense. Sin passthrough, el firewall pierde rendimiento y aislamiento.

  2. Escasez de puertos 2.5 GbE – Las placas base de bajo coste suelen ofrecer solo una o dos interfaces de 1 GbE. Añadir tarjetas PCIe × 1/2 para 2.5 GbE incrementa el consumo de energía y, en chasis fanless, el espacio disponible es limitado.

  3. Memoria y refrigeración insuficientes – Un nodo con 8 GB de RAM puede arrancar Proxmox, pero la VM de OPNsense y los LXC quedarán con menos de 2 GB cada uno, provocando cuellos de botella bajo carga. Además, los sistemas sin ventilación activa pueden sobrecalentarse cuando la CPU está bajo carga constante (por ejemplo al procesar tráfico VPN o filtrado DNS).

Solución

1. Definir prioridades de hardware

Prioridad Por qué importa
VT‑d/IOMMU Necesario para pasar la NIC WAN a OPNsense sin emulación.
2.5 GbE (≥4) Evita cuellos de ancho de banda en redes gigabit y permite separar tráfico interno/externo.
16 GB RAM Garantiza espacio para Proxmox, la VM y dos LXC simultáneos.
NVMe ≥ 128 GB Arranque rápido y suficiente espacio para logs y bases de datos de AdGuard.
Fanless Operación silenciosa 24/7.

2. Plataformas recomendadas dentro del rango

a) Intel NUC 11 Performance (i5‑1135G7) + expansión PCIe

  • CPU: i5‑1135G7 (4 c/8 h, soporte VT‑d).
  • RAM: 16 GB DDR4 (soldadura en algunos modelos, elige variante con slots).
  • Almacenamiento: M.2 2280 NVMe 256 GB.
  • Red: 2 × 2.5 GbE integrados (Intel AX201 + Ethernet).
  • Expansión: Ranura PCIe × 4 (adaptador M.2 → PCIe) para una tarjeta de 2.5 GbE con 2 puertos adicionales.
  • Ventilación: Diseño de ventilador interno, pero el nivel de ruido es bajo; se puede colocar en una caja con disipador pasivo si se tolera una ligera temperatura.

Coste estimado: $350 – $380 (incluye 16 GB RAM y SSD). La única pieza extra es la tarjeta de red 2.5 GbE (~$30).

b) Mini‑PC AMD Ryzen 5 5600G en placa Mini‑ITX fanless

  • CPU: Ryzen 5 5600G (6 c/12 h, IOMMU habilitado).
  • Placa: Mini‑ITX con chipset B550, 2 × M.2 NVMe, 1 × PCIe × 4.
  • RAM: 16 GB DDR4 (2 × 8 GB).
  • Red: 1 × 2.5 GbE integrado (p.ej. Realtek RTL8125) + 2 × PCIe × 1 tarjetas 2.5 GbE de bajo coste.
  • Chasis: Caja fanless de aluminio (ej. Streacom DB1) con disipador pasivo.

Coste estimado: $320 – $350 (CPU + placa + RAM). Las tarjetas de red adicionales suman $20‑$30 cada una.

c) Workstation usada (ej. Dell PowerEdge T30)

  • CPU: Xeon E3‑1240 v5 (VT‑d).
  • RAM: 16 GB DDR4 (ECC opcional).
  • Almacenamiento: 2 × SSD 250 GB (RAID1 opcional).
  • Red: 1 × 1 GbE integrado + 2 × tarjetas PCIe × 1 2.5 GbE.
  • Ventilación: Sistema de refrigeración activo, pero el ruido es aceptable en una oficina.

Coste estimado: $250 – $300 (equipo usado). Requiere una caja con buen flujo de aire, pero sigue siendo viable.

3. Configuración de Proxmox y passtrough

  1. Activar IOMMU en BIOS (Intel VT‑d o AMD IOMMU).
  2. Añadir la línea intel_iommu=on o amd_iommu=on al arranque de GRUB.
  3. Verificar dispositivos con lspci -nnk | grep -i iommu.
  4. Crear la VM de OPNsense y asignar la NIC de WAN mediante hostpci0: 00:1f.6,pcie=1.
  5. Instanciar los contenedores LXC para AdGuard Home y Caddy, usando almacenamiento en el NVMe para minimizar latencia.

4. Optimizar el uso de puertos

  • WAN: NIC dedicada pasada a OPNsense (passthrough).
  • LAN: Conmutador 2.5 GbE externo (ej. TL‑SG108) conectado a la segunda NIC 2.5 GbE del nodo.
  • DMZ / Servicios internos: Caddy escucha en una IP virtual en la misma LAN, evitando la necesidad de puertos adicionales en el hardware.

Cuándo aplicar esta solución

  • Home lab o pequeña oficina con ancho de banda superior a 1 Gbps y necesidad de filtrado DNS y firewall avanzado.
  • Entornos donde la gestión programática es clave (API de OPNsense, Proxmox y AdGuard).
  • Escenarios que requieren aislamiento de hardware (passthrough de NIC) para rendimiento y seguridad.

No es la mejor opción cuando:

  • Se necesita alta disponibilidad multi‑node; un solo nodo representa un punto único de falla.
  • El presupuesto supera ampliamente los $400 y se busca redundancia de discos o CPUs de mayor potencia.
  • Se requiere una solución “plug‑and‑play” sin ajustes de BIOS o configuración de IOMMU.

Código

# Habilitar IOMMU en GRUB (Debian/Proxmox)
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on /' /etc/default/grub
update-grub
reboot

# Verificar que los dispositivos están en el IOMMU group correcto
for d in /sys/kernel/iommu_groups/*/devices/*; do
    echo "Group $(basename $(dirname $d)): $(lspci -nns ${d##*/})"
done

# Crear VM de OPNsense con passthrough de la NIC de WAN
qm create 101 --name opnsense --memory