Problema
En muchos homelabs la tentación es conectar todos los dispositivos a un único broadcast domain por comodidad. Con el tiempo esa arquitectura se vuelve frágil: un equipo comprometido puede acceder a servidores críticos, el tráfico de invitados congestiona la red y la gestión de políticas de seguridad se vuelve un caos. El patrón que surge es la necesidad de segmentar la red en varios dominios lógicos (trusted, guest, servers, DMZ) y aplicar reglas de firewall entre ellos, manteniendo conectividad entre sitios remotos mediante protocolos ligeros como RIP y ofreciendo acceso remoto seguro con SSL‑VPN. El reto no es solo crear los VLANs, sino asegurarse de que la segmentación sea coherente, que las rutas se propaguen correctamente y que la política de firewall no se “derrite” con el tiempo.
Causa
- Diseño de VLAN incompleto – Definir los ID y asignar puertos sin documentar la intención lleva a que dispositivos terminen en la VLAN equivocada.
- Rutas estáticas vs. dinámicas – Mezclar rutas estáticas con un protocolo de vector‑distancia (RIP) sin filtrar adecuadamente los anuncios genera bucles o rutas inesperadas.
- Políticas de firewall dispersas – Configurar reglas en varios dispositivos (FortiGate, Cisco ISR) sin una base común provoca solapamientos y brechas de seguridad.
- Falta de automatización de backups – Los archivos de configuración cambian frecuentemente; sin backups programados la recuperación después de un fallo es lenta y propensa a errores.
- Monitoreo limitado – Sin métricas de tráfico y alertas, la degradación de la red o la violación de políticas pasa desapercibida hasta que ocurre un incidente.
Solución
1. Planificación de VLANs y asignación de puertos
- Define un esquema de numeración (por ejemplo, 10 = trusted, 20 = guest, 30 = servers, 40 = DMZ).
- Documenta cada VLAN en un archivo Markdown o en un repositorio Git; incluye propósito, dispositivos autorizados y rango de IP.
- En el switch (Cisco 3560E) crea las VLAN y asigna puertos en modo access o trunk según corresponda:
configure terminal
vlan 10
name TRUSTED
exit
vlan 20
name GUEST
exit
interface GigabitEthernet1/0/1
switchport mode access
switchport access vlan 10
exit
interface GigabitEthernet1/0/24
switchport mode trunk
switchport trunk allowed vlan 10,20,30,40
exit
write memory
2. Enrutamiento entre VLANs y sitios
- RIP es suficiente para un homelab de dos sitios. Configura RIP solo en las interfaces que conectan los routers (FortiGate y Cisco ISR).
- Filtra anuncios con
distribute-listoroute-mappara que solo las subredes necesarias se propaguen. - En el FortiGate, habilita el inter‑VLAN routing y asócialo a la zona de confianza:
config system interface
edit "vlan10"
set ip 10.0.10.1/24
set vlanid 10
set interface "port1"
next
edit "vlan20"
set ip 10.0.20.1/24
set vlanid 20
set interface "port1"
next
end
config router rip
set status enable
config network
edit 1
set prefix 10.0.10.0/24
next
edit 2
set prefix 10.0.20.0/24
next
end
end
3. Política de firewall centralizada
- Modelo de zona: agrupa VLANs en zonas (Trusted, Guest, Servers, DMZ).
- Regla base: denegar todo entre zonas y permitir solo lo necesario (p.ej., HTTP/HTTPS del DMZ a Internet, SSH desde Trusted a Servers).
- Usa la interfaz de línea de comandos del FortiGate para exportar la política a un archivo y versionarla:
execute backup config flash
- Automatiza la validación con un script que compare la política actual contra un archivo de referencia:
#!/usr/bin/env bash
REF="/etc/fg_policy.ref"
CUR="/tmp/fg_policy.cur"
execute show firewall policy > "$CUR"
if diff -q "$REF" "$CUR" >/dev/null; then
echo "Política sin cambios"
else
echo "Diferencias detectadas"
# opcional: enviar alerta
fi
4. Backups automáticos y control de deriva
- Programa una tarea cron que copie la configuración de cada dispositivo a un repositorio Git.
- Cada commit incluye la fecha y un hash del estado, facilitando rollback.
0 2 * * * /usr/local/bin/backup-fgt.sh >> /var/log/backup-fgt.log 2>&1
backup-fgt.sh:
#!/usr/bin/env bash
HOST="10.0.10.1"
USER="admin"
PASS="********"
sshpass -p "$PASS" ssh "$USER@$HOST" "execute backup config flash" > "/backups/fg-$(date +%F).conf"
cd /backups && git add . && git commit -m "Backup $(date +%F)" && git push
5. Monitoreo con Prometheus/Grafana
- Exporta métricas del FortiGate y del switch mediante snmp_exporter.
- Crea dashboards que muestren tráfico por VLAN, uso de CPU y alertas de cambios de política.
- Configura alertmanager para notificar por Telegram o correo cuando una regla de firewall se modifique.
Cuándo aplicar esta solución
- Entornos con varios tipos de tráfico (invitados, servidores críticos, servicios expuestos).
- Sitios distribuidos que requieren una ruta dinámica ligera (RIP, OSPF) sin la complejidad de BGP.
- Políticas de seguridad estrictas donde la deriva de configuración es inaceptable.
- Necesidad de visibilidad: si ya usas Prometheus/Grafana o planeas hacerlo, la integración es directa.
No es adecuada cuando:
- El número de dispositivos supera los límites de un solo firewall y se necesita un cluster de firewalls.
- Se requiere enrutamiento avanzado (BGP con múltiples proveedores).
- La infraestructura está basada exclusivamente en la nube y no hay hardware on‑premise.
Código
#!/usr/bin/env bash
# backup-fgt.sh – copia la configuración del FortiGate a Git
HOST="10.0.10.1"
USER="admin"
PASS="********"
DATE=$(date +%F)
sshpass -p "$PASS" ssh "$USER@$HOST" "execute backup config flash" > "/backups/fg-$DATE.conf"
cd /backups
git add "fg-$DATE.conf"
git commit -m "Backup $DATE"
git push
Verificación
- Conectividad VLAN – Desde un host en la VLAN 10, ping a 10.0.20.1 (VLAN 20). Debería fallar si la política lo bloquea.
- RIP – En ambos routers ejecuta
show ip rip database. Verifica que las rutas de las subredes remotas aparecen con la métrica esperada. - Política – Ejecuta el script de validación de política y confirma que no hay diferencias con el archivo de referencia.
- Backup – Revisa el último commit en Git; el archivo de configuración debe coincidir con la salida del comando
show running-configdel firewall. - Dashboard – Abre Grafana, verifica que los paneles de tráfico por VLAN muestran datos y que no hay alertas activas.
Notas adicionales
- Orden de encendido: los switches deben iniciar antes que los routers para que los puertos trunk estén listos cuando el router solicite DHCP.
- MTU: si usas VPN IPSec, ajusta la MTU de las VLAN a 1400 bytes para evitar fragmentación.
- RIP autenticado: aunque RIP es simple, habilitar autenticación con MD5 evita anuncios no autorizados.
- Documentación viva: almacena diagramas en mermaid dentro del mismo repositorio Git; así los cambios de topología quedan versionados.
- Escalabilidad: si añades más sitios, considera migrar a OSPF; la configuración de filtros y áreas es similar a la de RIP.