Segmentación VLAN Homelab
Cómo dividir una red doméstica en VLANs aisladas para que los dispositivos IoT, invitados y tus PCs principales no puedan comunicarse entre sí. La mejora de seguridad más impactante para una red doméstica.
Todas las reglas de firewall mostradas aquí añaden aislamiento entre segmentos — no eliminan protecciones existentes. Aplica los cambios en una ventana de mantenimiento y verifica la conectividad entre segmentos después de cada paso antes de continuar.
Cuándo Usar
- Configurar VLANs en una red doméstica por primera vez
- Aislar dispositivos IoT (bombillas inteligentes, cámaras, TVs) de dispositivos confiados
- Crear una red Wi-Fi para invitados que no pueda acceder a dispositivos domésticos
- Explicar cómo funcionan las VLANs a alguien no familiarizado con el concepto
- Configurar puertos trunk, puertos de acceso y mapeo SSID a VLAN
- Solucionar problemas de enrutamiento entre VLANs o reglas de firewall en pfSense/OPNsense/UniFi
Cómo Funciona
Sin VLANs — red plana:
Todos los dispositivos en 192.168.1.0/24
Smart TV (posible malware) → puede acceder a tu NAS, PCs, todo
Con VLANs:
VLAN 10 — Confiado 192.168.10.0/24 (PCs, teléfonos, laptops)
VLAN 20 — IoT 192.168.20.0/24 (Smart TV, bombillas, cámaras)
VLAN 30 — Servidores 192.168.30.0/24 (NAS, Pi, VMs)
VLAN 40 — Invitados 192.168.40.0/24 (Wi-Fi visitantes)
VLAN 99 — Gestión 192.168.99.0/24 (interfaces web switch/AP)
Smart TV → bloqueado para acceder a 192.168.10.0/24 y 192.168.30.0/24
Invitados → solo internet, no pueden ver ningún dispositivo doméstico
Plantilla de Diseño VLAN
VLAN Nombre Subred Puerta de enlace Propósito
10 confiado 192.168.10.0/24 192.168.10.1 PCs, teléfonos, laptops
20 iot 192.168.20.0/24 192.168.20.1 Dispositivos domésticos inteligentes
30 servidores 192.168.30.0/24 192.168.30.1 NAS, Pi, auto-alojado
40 invitados 192.168.40.0/24 192.168.40.1 Wi-Fi visitantes
99 gestión 192.168.99.0/24 192.168.99.1 Interfaces web del equipo de red
Ejemplos
Homelab típico con AP UniFi y switch gestionado:
Escenario: Casa de 3 habitaciones, UniFi Dream Machine + switch UniFi 8 puertos + 2 APs
VLAN 10 — Confiado 192.168.10.0/24 MacBook, iPhones, iPad
VLAN 20 — IoT 192.168.20.0/24 Termostato Nest, Philips Hue, timbre Ring, Smart TVs
VLAN 30 — Servidores 192.168.30.0/24 Synology NAS (192.168.30.10), Pi-hole (192.168.30.2)
VLAN 40 — Invitados 192.168.40.0/24 Wi-Fi visitantes — solo internet
Mapeo SSID → VLAN:
"Home" → VLAN 10 (WPA2, contraseña fuerte, solo dispositivos confiados)
"IoT" → VLAN 20 (WPA2, contraseña separada, impresa en el router para configuración)
"Guest" → VLAN 40 (WPA2, contraseña simple que puedes compartir libremente)
Comportamiento de puertos del switch:
Puerto 1 → trunk al router (VLANs etiquetadas 10,20,30,40,99)
Puerto 2 → trunk a APs (VLANs etiquetadas 10,20,40; el AP maneja el etiquetado por SSID)
Puerto 3 → acceso VLAN 30 (NAS — sin etiquetar, no necesita conocer VLANs)
Puerto 4 → acceso VLAN 30 (Pi-hole — sin etiquetar)
Puerto 5–8 → acceso VLAN 10 (estaciones de trabajo cableadas)
Reglas de firewall aplicadas (todas añaden aislamiento, ninguna elimina protecciones existentes):
IoT → Confiado: BLOQUEAR
IoT → Servidores: BLOQUEAR excepto 192.168.30.2:53 (DNS Pi-hole permitido)
IoT → Internet: PERMITIR
Invitados → Redes locales: BLOQUEAR
Invitados → Internet: PERMITIR
Confiado → todos lados: PERMITIR
Configuración UniFi
Crear Redes en el Controlador UniFi
Configuración → Redes → Crear Nueva Red
Para cada VLAN:
Nombre: IoT
Propósito: Corporativa (proporciona DHCP + enrutamiento)
ID VLAN: 20
Red: 192.168.20.0/24
IP de puerta de enlace: 192.168.20.1
DHCP: Habilitar
Rango DHCP: 192.168.20.100 – 192.168.20.254
Mapear SSIDs a VLANs (UniFi)
Configuración → WiFi → Crear Nuevo WiFi
Nombre: IoT-Network
Contraseña: <contraseña separada>
Red: IoT ← selecciona tu VLAN aquí
# Todos los dispositivos que se conecten a este SSID caen en VLAN 20
Nombre: Invitados
Contraseña: <contraseña de invitado>
Red: Invitados
Política de invitados: Habilitar ← también aísla a los invitados entre sí
Reglas de Firewall UniFi (Reglas de Tráfico)
Configuración → Tráfico y Seguridad → Reglas de Tráfico
# Bloquear IoT de llegar a VLAN Confiado
Acción: Bloquear
Categoría: Red Local
Origen: IoT (192.168.20.0/24)
Destino: Confiado (192.168.10.0/24)
# Permitir que IoT llegue solo a internet
Acción: Permitir
Origen: IoT
Destino: Internet
# Bloquear Invitados de todas las redes locales
Acción: Bloquear
Origen: Invitados
Destino: Redes Locales
Configuración pfSense / OPNsense
Crear VLANs
Interfaces → Asignaciones → VLANs → Agregar
Interfaz padre: em1 (tu NIC LAN)
Etiqueta VLAN: 20
Descripción: IoT
# Repite para cada VLAN, luego asigna cada VLAN a una interfaz:
Interfaces → Asignaciones → Agregar
Selecciona la VLAN que creaste → haz clic en Agregar
Habilita la interfaz, configura IP como dirección de puerta de enlace (192.168.20.1/24)
DHCP para Cada VLAN
Servicios → Servidor DHCP → Selecciona tu interfaz VLAN
Habilitar DHCP
Rango: 192.168.20.100 a 192.168.20.254
Servidores DNS: 192.168.30.2 ← IP de Pi-hole si tienes uno
Reglas de Firewall (pfSense/OPNsense)
# Las reglas se procesan de arriba a abajo, la primera coincidencia gana.
# En la interfaz IoT (VLAN 20):
Regla 1: Permitir IoT → DNS Pi-hole ← DEBE venir antes de la regla de bloqueo RFC1918
Protocolo: UDP/TCP
Origen: red IoT
Destino: 192.168.30.2 puerto 53
Acción: Permitir
Regla 2: Bloquear IoT → RFC1918 (todos los rangos IP privados)
Protocolo: cualquiera
Origen: red IoT
Destino: RFC1918 (192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12)
Acción: Bloquear
Regla 3: Permitir IoT → internet
Protocolo: cualquiera
Origen: red IoT
Destino: cualquiera
Acción: Permitir
# En la interfaz Confiado (VLAN 10):
Permitir todo (los dispositivos confiados pueden acceder a todo)
Origen: red Confiado
Destino: cualquiera
Acción: Permitir
# Excepciones adicionales para dispositivos IoT que necesitan servicios locales específicos:
Insertar antes de la Regla 2 (el bloqueo RFC1918):
Protocolo: TCP
Origen: red IoT
Destino: 192.168.30.x puerto 8123 ← Home Assistant
Acción: Permitir
Configuración MikroTik
# Paso 1: Crear un bridge con filtrado VLAN habilitado
/interface bridge
add name=bridge vlan-filtering=yes
# Paso 2: Agregar puertos físicos al bridge
# Puerto trunk hacia router/enlace ascendente (etiquetado para todas las VLANs)
/interface bridge port
add bridge=bridge interface=ether1 frame-types=admit-only-vlan-tagged
# Puerto de acceso para dispositivos confiados (sin etiquetar VLAN 10)
/interface bridge port
add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged
# Puerto de acceso para dispositivos IoT (sin etiquetar VLAN 20)
/interface bridge port
add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged
# Paso 3: Definir qué VLANs están permitidas en qué puertos
/interface bridge vlan
add bridge=bridge tagged=ether1 untagged=ether2 vlan-ids=10
add bridge=bridge tagged=ether1 untagged=ether3 vlan-ids=20
# Paso 4: Crear interfaces VLAN en el bridge (IPs de puerta de enlace)
/interface vlan
add interface=bridge name=vlan10 vlan-id=10
add interface=bridge name=vlan20 vlan-id=20
# Paso 5: Asignar IPs de puerta de enlace
/ip address
add interface=vlan10 address=192.168.10.1/24
add interface=vlan20 address=192.168.20.1/24
# Paso 6: Pools DHCP y servidores
/ip pool
add name=pool-confiado ranges=192.168.10.100-192.168.10.254
add name=pool-iot ranges=192.168.20.100-192.168.20.254
/ip dhcp-server
add interface=vlan10 address-pool=pool-confiado name=dhcp-confiado
add interface=vlan20 address-pool=pool-iot name=dhcp-iot
/ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1
add address=192.168.20.0/24 gateway=192.168.20.1
# Paso 7: Firewall — bloquear IoT de llegar a VLAN confiado
/ip firewall filter
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
action=drop comment="Bloquear IoT a Confiado"
Puertos Trunk vs Acceso en el Switch
# Puerto trunk: lleva múltiples VLANs (etiquetadas) — conecta switch-a-switch, switch-a-router, switch-a-AP
# Puerto de acceso: lleva una VLAN (sin etiquetar) — conecta a dispositivos finales (PC, cámara, NAS)
# Un puerto de switch gestionado conectado a tu router debe ser trunk:
VLANs permitidas: 10, 20, 30, 40, 99
# Un puerto que conecta a un PC debe ser de acceso:
VLAN: 10 (confiado)
Sin etiquetado — el PC no sabe ni le importan las VLANs
# Un puerto que conecta a un AP debe ser trunk:
El AP etiqueta el tráfico de cada SSID con el ID de VLAN correcto
VLANs permitidas: 10, 20, 40 (los SSIDs que el AP sirva)
Antipatrones
# MALO: Crear VLANs sin agregar reglas de firewall
# Las VLANs sin reglas de firewall no proporcionan seguridad — el enrutamiento entre VLANs está abierto por defecto
# BIEN: Agregar reglas de bloqueo explícitas inmediatamente después de crear las VLANs
# MALO: Poner Pi-hole en la VLAN IoT
# Los dispositivos IoT pueden alcanzarlo pero los confiados no (sin reglas adicionales)
# BIEN: Pi-hole en la VLAN de Servidores con una regla que permita a todas las VLANs acceder al puerto 53
# MALO: VLAN nativa igual a VLAN de gestión
# El tráfico sin etiquetar que cae en tu VLAN de gestión permite ataques de salto VLAN
# BIEN: Usar una VLAN no utilizada dedicada como nativa (ej. VLAN 999), mantener el tráfico de gestión etiquetado
# MALO: Misma contraseña Wi-Fi para SSID IoT y SSID confiado
# Cualquiera que aprenda la contraseña puede conectar dispositivos IoT al segmento incorrecto
Mejores Prácticas
- Comienza con 4 VLANs: Confiado, IoT, Servidores, Invitados — agrega más según sea necesario
- Coloca Pi-hole en la VLAN de Servidores (192.168.30.x)
- Agrega una regla de firewall que permita DNS (puerto 53) desde todas las VLANs a la IP de Pi-hole — antes de cualquier regla de bloqueo RFC1918
- Prueba el aislamiento después de cada cambio de regla: desde la VLAN IoT, intenta hacer ping a un dispositivo confiado — debe fallar
- Usa una VLAN de gestión para las interfaces web del switch y AP y restringe el acceso solo a la VLAN Confiado
- Documenta tu diseño VLAN en una tabla (ID VLAN, nombre, subred, propósito)
Habilidades Relacionadas
- homelab-network-setup
- homelab-pihole-dns
- homelab-wireguard-vpn