
Generiert reproduzierbare CORE-Netzwerktopologien aus XML-Szenariodateien für Cybersicherheitstraining und -experimente. Bietet Web-GUI und CLI für deterministische Topologievorschauen, Schwachstellenzuweisung und Trafficgenerierung.
Erzeugen Sie reproduzierbare CORE-Netzwerktopologien aus Szenario-XML-Dateien über eine umfangreiche Web-GUI oder eine Befehlszeilenschnittstelle.
Die Bildergalerie der WebUI finden Sie unter docs/screenshots.md.
core-daemonpython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090 erreichbar (Reverse-Proxy-nginx-Compose-Targets https://localhost).coreadmin / coreadmin angelegt; ändern Sie es sofort unter Profil → Passwort ändern.make host-web, make host-web-nginx oder make host-web PROXY=envoy. Das Hilfsskript scripts/dev_gen_certs.sh erstellt selbstsignierte Zertifikate mit SAN-Unterstützung.Existing Router, Existing Switch oder New Router an. Die alte Option New Switch wurde entfernt, um verstecktes Switch-Fan-out zu verhindern; gespeicherte Szenarien, die diese verwenden, werden beim Laden zu Existing Router normalisiert.python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
Beliebte Optionen:
--scenario NAME – einen bestimmten Szenario-Eintrag auswählen--host / --port – den CORE-gRPC-Endpunkt überschreiben (Standard: 127.0.0.1:50051)--layout-density {compact|normal|spacious} – den Kartenabstand anpassen--seg-include-hosts, --seg-allow-docker-ports, --nat-mode, --dnat-prob – Segmentierung feinjustieren--traffic-pattern, --traffic-rate, --traffic-content – Datenverkehrsstandards überschreiben./reports/.base_nodes, additive_nodes, combined_nodes, usw.).explicit_count, derived_count und total_planned.scenario_total_nodes geplante Hosts, Router und Schwachstellenziele zusammen.core_topo_gen.parsers.planning_metadata.parse_planning_metadata().existing_router, existing_switch oder new_router normalisiert; alte new_switch-Werte werden zu existing_router umgewandelt, sodass Vorschauen deterministisch bleiben und Switch-Overlays nicht implizit synthetisiert werden.r2r_mode pro Routing-Element unterstützt Exact, Uniform, NonUniform, Min, Max sowie ältere Vermaschungen, die an --router-mesh-style gebunden sind.r2s_mode, r2s_edges, optional r2s_hosts_min/max) gruppieren Hosts hinter dedizierten Switches neu, wobei „Exact=1“ alle Hosts pro Router zu einem einzigen Switch aggregiert./tmp/traffic abgelegt (mit begleitenden Diensten) und respektieren Überschreibungen für Muster, Rate, Jitter und Inhaltshinweise./tmp/segmentation zusammen mit einer segmentation_summary.json abgelegt; NAT-Modus, DNAT-Wahrscheinlichkeit, Host-Einbeziehung und Docker-Port-Freigaben sind konfigurierbar./tmp/vulns an, wobei Metadaten in CORE-Knoten eingebettet werden.core_topo_gen.plugins.traffic.register() für maßgeschneiderten Sender-/Empfänger-Code registrieren../reports/scenario_report_<timestamp>.md) listen Topologiestatistiken, Planungsmetadaten, Segmentierungsergebnisse und Laufzeitartefakte auf. Jeder Lauf erzeugt zusätzlich eine JSON-Zusammenfassung neben der Markdown-Datei (scenario_report_<timestamp>.json) sowie pro Lauf Konnektivitäts-CSVs, wenn Router-Grad-Daten verfügbar sind.outputs/run_history.json gespeichert.outputs/ bereinigt werden, wenn Szenarien über die GUI entfernt werden.