Volver a la wiki

Network Tools - Guía Completa

Network Tools - Guía Completa

Versión: 3.6 Última actualización: 28-01-2026 Autor: Claude (Anthropic)


1. Introducción

Network Tools es un módulo frontend de CreaRack Pro que proporciona herramientas de diagnóstico y descubrimiento de red. Funciona en conjunto con el Local Agent para ejecutar operaciones de red desde la máquina del usuario.

1.1 Características Principales

HerramientaDescripción
Network DiscoveryEscaneo híbrido de red local (ICMP + ARP + TCP)
Port ScannerEscaneo de puertos en dispositivo específico
Health CheckVerificación de conectividad masiva

1.2 Arquitectura

┌─────────────────────────────────────────────────────────────────┐
│                        Browser (CreaRack Pro)                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────────────┐  ┌──────────────────┐  ┌──────────────┐  │
│  │ Network Discovery│  │   Port Scanner   │  │ Health Check │  │
│  │     (Tab 1)      │  │     (Tab 2)      │  │   (Tab 3)    │  │
│  └────────┬─────────┘  └────────┬─────────┘  └──────┬───────┘  │
│           │                     │                    │          │
│           └─────────────────────┼────────────────────┘          │
│                                 │                               │
│                    ┌────────────▼────────────┐                  │
│                    │    NetworkTools.js      │                  │
│                    │       (v2.6)            │                  │
│                    └────────────┬────────────┘                  │
│                                 │                               │
└─────────────────────────────────┼───────────────────────────────┘
                                  │
                      HTTP/HTTPS  │  localhost:5050
                                  ▼
┌─────────────────────────────────────────────────────────────────┐
│                     Local Agent (v4.0.6)                        │
├─────────────────────────────────────────────────────────────────┤
│  /check         - TCP connectivity check                        │
│  /network/arp-table - Windows ARP cache + MAC OUI              │
│  /network/hostname  - DNS reverse lookup                       │
└─────────────────────────────────────────────────────────────────┘

2. Network Discovery

2.1 Enfoque Híbrido

El Discovery utiliza un enfoque híbrido similar a Angry IP Scanner para máxima detección:

FaseMétodoPropósito
Phase 1ICMP PingDetectar hosts activos + forzar entradas ARP
Phase 2ARP TableEncontrar dispositivos silenciosos via MAC
Phase 3TCP ScanDetectar hosts que bloquean ICMP
Phase 4Port ScanIdentificar servicios en todos los hosts
Phase 5DNS LookupResolver hostnames
FinalSortOrdenar resultados por IP

2.2 Flujo Detallado

┌─────────────────────────────────────────────────────────────────┐
│ User clicks "Start Discovery"                                    │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│ Phase 1: ICMP Ping Scan                                         │
│ ─────────────────────────────                                   │
│ • Envía ping a cada IP del rango (192.168.0.1-254)             │
│ • Timeout: 100ms por IP                                         │
│ • Dispositivos que responden → marcados como "ICMP"            │
│ • IMPORTANTE: Fuerza entradas en tabla ARP de Windows          │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│ Phase 2: ARP Table Check                                        │
│ ─────────────────────────────                                   │
│ • Lee tabla ARP via Local Agent (/network/arp-table)           │
│ • Ejecuta: `arp -a` en Windows                                  │
│ • Obtiene: IP + MAC + Vendor (MAC OUI lookup)                  │
│ • Detecta dispositivos que no responden a ping                 │
│   (Smart TVs, Alexa, cámaras IP, etc.)                         │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│ Phase 3: TCP Port Scan (hosts silenciosos)                      │
│ ─────────────────────────────                                   │
│ • Solo para IPs no detectadas en Phase 1-2                     │
│ • Puertos probados: 22, 80, 443, 23                            │
│ • Si algún puerto responde → host descubierto                  │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│ Phase 4: Detailed Port Scan (todos los hosts)                   │
│ ─────────────────────────────                                   │
│ • Escanea puertos comunes en TODOS los hosts descubiertos      │
│ • Puertos: 22, 23, 80, 443, 8080, 8443                         │
│ • Identifica servicios disponibles                             │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│ Phase 5: DNS Reverse Lookup                                     │
│ ─────────────────────────────                                   │
│ • Resuelve hostname para cada IP descubierta                   │
│ • Usa Local Agent (/network/hostname?ip=X)                     │
│ • Timeout: 1 segundo por lookup                                │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│ Final: Sort & Display                                           │
│ ─────────────────────────────                                   │
│ • Ordena resultados por IP (numerically)                       │
│ • Muestra en tabla con columnas fijas                          │
│ • Guarda en localStorage para persistencia                     │
└─────────────────────────────────────────────────────────────────┘

2.3 Tabla de Resultados

ColumnaAnchoDescripción
IP Address120pxDirección IP del dispositivo
Host-Name150pxHostname resuelto via DNS
MAC Address130pxDirección MAC (de tabla ARP)
Vendor180pxFabricante via MAC OUI database
Open Ports120pxPuertos detectados abiertos
Detection100pxMétodo de detección usado
Actions100pxBotones de acción

Métodos de detección (badges):

BadgeColorSignificado
ICMPAzulRespondió a ping
ARPVerdeDetectado via tabla ARP
TCPNaranjaDetectado via puerto TCP

Botones de acción:

BotónFunción
ConnectAbre modal SSH con IP pre-llenada
TerminalAbre terminal SSH en nueva pestaña

2.4 Características de la Tabla


3. Persistencia

3.1 Almacenamiento

Los resultados de Discovery se persisten en localStorage:

// Key: 'networkToolsDiscoveryResults'
{
    timestamp: 1706380800000,    // Unix timestamp
    range: "192.168.0.1-254",   // Rango escaneado
    results: [                   // Array de dispositivos
        {
            ip: "192.168.0.1",
            mac: "00-11-22-33-44-55",
            hostname: "router.local",
            vendor: "Cisco Systems",
            ports: [22, 80],
            method: "ICMP"
        }
    ]
}

3.2 Restauración

Al cargar la página Terminal:

  1. Se verifica si hay datos guardados
  2. Si existen y son válidos, se restauran automáticamente
  3. Se muestra indicador: "Restored: 11 devices (5m ago)"

3.3 Tiempo de Vida


4. Coordinación de Tabs

4.1 Problema

NetworkTools y TerminalApp comparten el mismo espacio visual. Sin coordinación, los contenedores se solapan.

4.2 Solución

// NetworkTools.activateTab() oculta contenedores de Terminal
document.querySelectorAll('.terminal-instance').forEach(c =>
    c.classList.remove('active')
);

// TerminalApp.activateTab() oculta contenedores de NetworkTools
document.querySelectorAll('.terminal-container').forEach(c =>
    c.style.display = 'none'
);

4.3 Flujo quickConnect

┌─────────────────────────────────────────────────────────────────┐
│ 1. Usuario hace clic en "Connect" en tabla Discovery           │
│ 2. NetworkTools.quickConnect(ip) se ejecuta                     │
│ 3. Se oculta contenedor Discovery (display: none)              │
│ 4. Se abre modal SSH con IP pre-llenada                        │
│ 5. Usuario confirma conexión                                    │
│ 6. Terminal se abre en NUEVA pestaña de TerminalApp            │
│ 7. NetworkTools pierde foco, Terminal toma control             │
└─────────────────────────────────────────────────────────────────┘

5. MAC OUI Database

5.1 Vendors Soportados

La base de datos incluye ~150+ fabricantes. Algunos ejemplos:

Prefijo MACVendor
00-00-0CCisco Systems
00-1A-A0Dell
3C-D9-2BHewlett Packard Enterprise
00-50-56VMware
48-C0-93Xirrus
1C-AF-4ASamsung
14-0A-C5Amazon
00-17-88Philips Lighting
28-6C-07XIAOMI

5.2 Actualización

La base de datos OUI está embebida en local_agent.py. Para actualizar:

  1. Obtener OUI list de IEEE: https://standards-oui.ieee.org/
  2. Agregar nuevos prefijos al diccionario MAC_OUI_DATABASE
  3. Recompilar el Agent

6. Port Scanner

6.1 Modos de Operación

ModoDescripción
Scan PortsEscanea puertos en un dispositivo específico
Find PortBusca todas las IPs con un puerto específico abierto

6.2 Uso (Scan Ports)

  1. Seleccionar modo “Scan Ports”
  2. Ingresar IP del dispositivo (o seleccionar de “Saved”)
  3. Seleccionar preset de puertos
  4. Click “Scan”

6.3 Uso (Find Port)

  1. Seleccionar modo “Find Port”
  2. Ingresar puerto a buscar (ej: 22, 80, 443)
  3. Ingresar rango de IPs
  4. Click “Find”

6.4 Presets de Puertos

PresetPuertosDescripción
SSH only22Solo puerto SSH
Quick 15~15 puertosServicios más comunes
All1-1024 + altosWell-known + puertos altos comunes

6.5 Columnas de Resultados

ColumnaDescripción
IP AddressDirección IP escaneada
PortNúmero de puerto
ServiceNombre del servicio
WebIcono si es puerto de administración web
TimeTiempo de respuesta

7. Health Check

7.1 Propósito

Verificar conectividad SSH de múltiples dispositivos simultáneamente.

7.2 Uso

  1. Seleccionar dispositivos (checkboxes)
  2. Click “Check Health”
  3. Ver resultados: Online/Offline por dispositivo

8. Archivos Relacionados

ArchivoPropósito
static/js/modules/network_tools.jsMódulo principal (v2.6)
static/js/pages/terminal.jsPágina contenedora
terminal/agent/local_agent.pyLocal Agent (v4.0.5)

9. Troubleshooting

Discovery no detecta todos los dispositivos

  1. Verificar que Local Agent está corriendo (http://localhost:5050/)
  2. Verificar que el rango IP es correcto
  3. Algunos dispositivos pueden tener firewall que bloquea todo

Tabla aparece con fondo transparente

  1. Verificar CSS del contenedor (debe tener background: #0d1117)
  2. Verificar z-index del contenedor

Terminal se abre en tab de Discovery

  1. Verificar coordinación de tabs en terminal.js
  2. Verificar que quickConnect oculta Discovery primero

Vendors aparecen como “Unknown”

  1. El MAC del dispositivo no está en la base de datos OUI
  2. Solicitar adición del vendor específico

10. Changelog

v3.6 (28-01-2026)

v3.5 (28-01-2026)

v3.4 (28-01-2026)

v3.3 (28-01-2026)

v3.2 (28-01-2026)

v3.1 (28-01-2026)

v2.8 (28-01-2026)

v3.0 (28-01-2026)

v2.9 (28-01-2026)

v2.7 (28-01-2026)

v2.6 (27-01-2026)

v2.0 (26-01-2026)


Documento relacionado:

Véase también

Subir