# A01.P010 - W-ZOMBI Relay Switch (Alcance a Redes Internas) > **Estado**: ⏳ Pendiente > **Pertenece a**: [A01 - Ecosistema ADN](./A01_dtic-ADN.md) > **Fecha**: 2026-04-09 > **Responsable**: Lic. Ricardo MONLA > **Versión**: 1.0 — Plan inicial > **Prerequisito**: W-Zombi v2.1 (A01.P003) --- ## 📋 Resumen Ejecutivo Extender W-Zombi para alcanzar **PCs y VMs en redes internas** que no tienen conectividad directa con NS8 vía Tailscale, usando un nodo intermedio (ej: `srv-dasu`) como **relay/switch**. **Topología actual (problema):** ``` NS8 (Tailscale) ──✔──► srv-dasu (Tailscale + LAN) │ NS8 ──────✖──────────► VM-interna (solo LAN) ``` **Topología objetivo:** ``` NS8 ──► srv-dasu (relay) ──► VM/PC interna (LAN) ↕ retransmite cmd.json + log ``` --- ## 🎯 Objetivo Permitir que W-Zombi controle PCs/VMs en redes internas inaccesibles directamente desde NS8, utilizando un nodo intermedio con visibilidad en ambas redes como relay transparente. --- ## 🏗️ Opciones de Arquitectura ### Opción A: Relay HTTP en srv-dasu (Recomendada) srv-dasu corre un mini-servidor que: 1. Escucha en puerto local (ej: 8001) 2. El zombi PS1 en la VM interna se conecta a `srv-dasu:8001` 3. srv-dasu reenvía `cmd.json` desde NS8 y `log` hacia NS8 **Pros:** Independiente, no requiere cambios en firewall **Contras:** Requiere un servicio en srv-dasu ``` NS8:8000 ←──tailscale──→ srv-dasu:8001 ←──LAN──→ VM-target (server) (relay) (zombi) ``` ### Opción B: SSH Port Forward ```bash # Desde NS8: ssh -L 8001:IP_VM_INTERNA:8000 srv-dasu ``` **Pros:** Cero código nuevo **Contras:** Requiere sesión SSH activa, no es autónomo ### Opción C: Tailscale Subnet Router Configurar srv-dasu como subnet router para exponer la LAN interna. **Pros:** Solución nativa Tailscale, todas las VMs accesibles **Contras:** Requiere configuración de Tailscale admin, posibles implicaciones de seguridad --- ## 📋 Tareas (Opción A — Relay HTTP) | ID | Tarea | Descripción | Estado | |:--:|-------|-------------|--------| | T1 | Diseño del relay | Definir protocolo de retransmisión | ✅ | | T2 | `relay.rb` / `relay.ps1` | Comando sub-relay y engine ps1 | ✅ | | T3 | Multi-target | Soportar múltiples VMs (ej: `cmd_vm101.json`, `cmd_vm102.json`) | ⏳ | | T4 | CLI `w-zombi relay` | Subcomando para gestionar relays | ✅ | | T5 | Validación | Test con PC Windows real vía relay | ⏳ | --- ## 📝 Contexto Técnico ### Nodos involucrados | Nodo | Red | Rol | IP Tailscale | |------|-----|-----|-------------| | NS8 | Tailscale | Servidor W-Zombi (control) | 100.111.195.4 | | srv-dasu | Tailscale + LAN | Relay/Switch | 100.116.210.36 | | PC target | Solo LAN | Zombi (ejecuta comandos) | ¿? (LAN interna) | ### Flujo de datos ``` 1. NS8 escribe cmd.json (id:201, cmd:"ipconfig") 2. srv-dasu (relay) polling NS8:8000/cmd.json cada 5s 3. srv-dasu sirve cmd.json en su puerto local 8001 4. PC-target (zombi PS1) polling srv-dasu:8001/cmd.json cada 5s 5. PC-target ejecuta "ipconfig", POST resultado a srv-dasu:8001/log 6. srv-dasu reenvía log a NS8:8000/log ``` --- ## 🔮 Evolución Futura - **Multi-relay**: Cadena de relays para redes muy segmentadas - **Registro automático**: Zombis se anuncian al conectarse - **Dashboard**: Ver estado de todos los zombis (directos + relay) - **Integración Dron**: Lanzar comandos remotos como drones con eventos en Bitácora --- ## 📚 Referencias - [A01.P003 — W-ZOMBI v2.0](./A01.P003_W-ZOMBI-v2.0.md) - Fix v2.1: Ruta `/cmd` + JSON parsing robusto (2026-04-09)