Skip to content

Network Topology

Network Topology

Módulo de visualización y análisis de la topología de red L3 (y L2 inferida). Construye un grafo dirigido a partir de telemetría local e integraciones.

Qué muestra el grafo

ElementoRepresentaciónFuente de datos
Nodo GatewayHexágono grande (centro)Sensor: default route + ARP gateway MAC
Nodo SubredCírculo agrupadorSensor: interfaces IP + máscara + rutas
Nodo Host/AssetCírculo pequeñoAssets & Inventory (merged)
Nodo Segmento VLANRectángulo punteadoInferido: misma subred + mismo gateway
Arista RutaLínea sólidaSensor: tabla de rutas (next-hop)
Arista Enlace L2Línea discontinuaInferido: misma subred, ARP mutuo
Arista IntegraciónLínea punteada coloreadaFortiGate/Palo Alto: route table, VPN, HA

Construcción del grafo (Pipeline)

1. RECOLECCIÓN
├── Sensor local: interfaces, ARP, tabla de rutas, gateway
├── FortiGate/Palo Alto: route table, interface list, VPN tunnels
├── SNMP: ipRouteTable, ipNetToMedia, dot1dTpFdbTable
└── Zabbix/Wazuh: host interfaces, network maps
2. NORMALIZACIÓN
├── Parse a esquema interno: Node {id, label, type, subnet, metadata}
└── Parse a esquema interno: Edge {source, target, type, metadata}
3. FUSIÓN (MERGE)
├── Deduplicar nodos por IP+CIDR+MAC
├── Fusionar subredes solapadas (agregar máscara más amplia)
└── Resolver gateway por defecto único por segmento
4. CLASIFICACIÓN
├── type = 'gateway' si es next-hop de ruta default
├── type = 'subnet' si agrega ≥2 hosts
├── type = 'segment' si VLAN inferida (misma subnet + gateway)
├── type = 'host' / 'router' / 'switch' / 'firewall' / 'server' por heurística
└── type = 'unknown' si no clasifica
5. ENRIQUECIMIENTO
├── Vendor por OUI (MAC) / sysObjectID (SNMP)
├── Reachable = último ARP/ICMP/TCP success < 2× polling
├── Stale = sin actualización > 24h
└── Confidence = ponderado por fuentes (ver Assets)
6. PERSISTENCIA
├── topology_nodes (id, label, type, subnet, metadata_json)
├── topology_edges (source, target, type, metadata_json)
└── topology_snapshots (timestamp, nodes_json, edges_json) — para historial
7. RENDER
├── Cytoscape.js (canvas) — layout: cose-bilkent / fcose / concentric
├── Nodos: tamaño ∝ confidence, color ∝ type, badge ∝ reachable/stale
└── Aristas: grosor ∝ confianza, estilo ∝ tipo, tooltip metadata

Controles de UI

ControlFunción
Layout selectorcose-bilkent (defecto), fcose, concentric, breadthfirst
Zoom / PanRueda / Click-arrastre
Filtro por tipoCheckboxes: Gateway, Subred, Host, Segmento, Desconocido
Filtro por estado🟢 Reachable, 🟡 Stale, 🔴 Unreachable, ⚫ Unknown
Filtro por fuenteSensor, FortiGate, Palo Alto, SNMP, Merged
Búsquedaip:10.0, label:core, type:gateway → resalta nodos
Clic nodoPanel lateral: metadata, IPs, MACs, vendor, últimos eventos, enlaces
Clic aristaDetalle: tipo, fuentes, métricas (latencia, uso si SNMP)
Clic derechoMenú: Ver en Assets, Crear incidente, Consultar ARGUS, Exportar subgrafo
MinimapaEsquina inferior derecha (navegación rápida)
FullscreenTecla F o botón [⛶]

Datos inferidos vs. observados

DatoObservado (fuente directa)Inferido (heurística)
Gateway IP/MACSensor: default route + ARP
Subredes localesSensor: interfaces IP/mask
Hosts en subredSensor: ARP table + integracciones
Rutas L3Sensor: route table / FW: route table
VLAN IDSNMP: dot1qVlanCurrentTableInferido: misma subred + mismo gateway → mismo segmento
Enlaces L2 (switch ports)SNMP: dot1dTpFdbTable (MAC→puerto)
Segmentos DMZ / Mgmt / UsersNaming convention / firewall zonesInferido: subnet + gateway + zona FW
VPN tunnelsFortiGate/Palo Alto: IPsec/SSL VPN tables

⚠️ Limitación: VLANs solo inferidas por subred/gateway. Sin consulta a switches (SNMP dot1q), no hay visibilidad real de VLAN ID ni trunking. Ver Limitaciones.


Métricas de calidad del grafo

MétricaCálculoObjetivo
Cobertura gatewaygateways_detectados / gateways_esperados100% (al menos 1 default)
Cobertura subredessubnets_en_grafo / subnets_en_sensor≥ 95%
Hosts reachablehosts_reachable / hosts_totales≥ 90%
Edges con fuente múltipleedges_merged / edges_totales> 30% (corroboración)
Ciclos de actualizaciónsnapshot_interval (defecto 5 min)< 10 min

Exportación

FormatoUso
GraphMLImport en Gephi, yEd, NetworkX
JSON (Cytoscape.js)Re-import en otra instancia / backup
PNG / SVGCaptura visual para reportes
CSV (nodos/aristas)Análisis en Excel / SIEM

Limitaciones conocidas

LimitaciónDetalleRoadmap
VLAN ID realSolo inferida; sin SNMP dot1qSNMP switch integration
L2 topology completaRequiere LLDP/CDP + FDB tablesLLDP/CDP parser + SNMP FDB
Rutas asimétricasGrafo dirigido; no muestra return pathBidirectional edge rendering
Escalabilidad> 5k nodos → lag en Cytoscape canvasWebGL renderer / clustering
Historial temporalSnapshots cada 5 min; no animación nativaTime-slider playback
Multi-gatewayUn gateway por segmento por defectoMulti-next-hop support

Páginas relacionadas