
Genera topologie di rete CORE riproducibili da file di scenario XML per formazione e sperimentazione sulla cybersecurity. Fornisce Web GUI e CLI per anteprime deterministiche delle topologie, assegnazione delle vulnerabilità e generazione del traffico.
Genera topologie di rete CORE riproducibili da file XML di scenario utilizzando una ricca GUI Web o un'interfaccia a riga di comando.
Visualizza la galleria di immagini della WebUI docs/screenshots.md.
core-daemon in esecuzionepython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090 per impostazione predefinita (il target compose del reverse proxy nginx è https://localhost).coreadmin / coreadmin; cambialo subito in Profilo → Cambia password.make host-web, make host-web-nginx o make host-web PROXY=envoy. Lo script di supporto scripts/dev_gen_certs.sh genera certificati autofirmati con supporto SAN.Existing Router, Existing Switch o New Router. La scelta legacy New Switch è stata rimossa per prevenire il fan-out di switch nascosti; gli scenari salvati che la usano vengono normalizzati a Existing Router durante il caricamento.python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
Opzioni principali:
--scenario NAME seleziona una voce di scenario specifica--host / --port sovrascrive l'endpoint gRPC di CORE (default 127.0.0.1:50051)--layout-density {compact|normal|spacious} regola la spaziatura della mappa--seg-include-hosts, --seg-allow-docker-ports, --nat-mode, --dnat-prob ottimizzano la segmentazione--traffic-pattern, --traffic-rate, --traffic-content sovrascrivono i default del traffico./reports/.base_nodes, additive_nodes, combined_nodes, ecc.) per garantire la fedeltà del round-trip.explicit_count, derived_count e total_planned.scenario_total_nodes riepiloga gli host, i router e i target di vulnerabilità pianificati.core_topo_gen.parsers.planning_metadata.parse_planning_metadata().existing_router, existing_switch o new_router; i valori legacy new_switch vengono forzati a existing_router così le anteprime rimangono deterministiche e le sovrapposizioni di switch non vengono sintetizzate implicitamente.r2r_mode per singolo elemento di routing supporta Exact, Uniform, NonUniform, Min, Max e le mesh legacy legate a --router-mesh-style.r2s_mode, r2s_edges, r2s_hosts_min/max opzionali) raggruppano gli host dietro switch dedicati, con “Exact=1” che aggrega tutti gli host per router in un unico switch./tmp/traffic (con i servizi associati) e rispettano le sovrascritture per pattern, rate, jitter e suggerimenti di contenuto./tmp/segmentation insieme a segmentation_summary.json; la modalità NAT, la probabilità DNAT, l'inclusione degli host e le autorizzazioni delle porte docker sono configurabili./tmp/vulns, con metadati incorporati nei nodi CORE.core_topo_gen.plugins.traffic.register() per un codice mittente/ricevente su misura../reports/scenario_report_<timestamp>.md) elencano le statistiche di topologia, i metadati di pianificazione, i risultati di segmentazione e gli artefatti di runtime. Ogni esecuzione genera anche un riepilogo JSON accanto al file Markdown (scenario_report_<timestamp>.json) più CSV di connettività per esecuzione quando sono disponibili i dati sui gradi dei router.outputs/run_history.json per la pagina Report.outputs/ quando gli scenari vengono eliminati tramite la GUI.