
Genera topologías de red CORE reproducibles a partir de archivos de escenarios XML para formación y experimentación en ciberseguridad. Proporciona una interfaz web y CLI para vistas previas deterministas de topologías, asignación de vulnerabilidades y generación de tráfico.
Genera topologías de red CORE reproducibles a partir de archivos XML de escenarios mediante una GUI web completa o una interfaz de línea de comandos.
Consulta la galería de imágenes de la interfaz web docs/screenshots.md.
core-daemon en ejecuciónpython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090 por defecto (el proxy inverso nginx apunta a https://localhost).coreadmin / coreadmin; cámbiala de inmediato en Profile → Change Password.make host-web, make host-web-nginx, o make host-web PROXY=envoy. El script auxiliar scripts/dev_gen_certs.sh emite certificados autofirmados con soporte SAN.Existing Router, Existing Switch o New Router. La opción heredada New Switch se eliminó para evitar el fan-out oculto de switches; los escenarios guardados que la usan se normalizan a Existing Router durante la carga.python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
Opciones populares:
--scenario NAME selecciona una entrada de escenario concreta--host / --port sobrescriben el endpoint gRPC de CORE (por defecto 127.0.0.1:50051)--layout-density {compact|normal|spacious} ajusta el espaciado del mapa--seg-include-hosts, --seg-allow-docker-ports, --nat-mode, --dnat-prob ajustan la segmentación--traffic-pattern, --traffic-rate, --traffic-content sobrescriben los valores de tráfico predeterminados./reports/.base_nodes, additive_nodes, combined_nodes, etc.) para garantizar la fidelidad de ida y vuelta.explicit_count, derived_count y total_planned.scenario_total_nodes a nivel de escenario resume los hosts, routers y objetivos de vulnerabilidad planificados.core_topo_gen.parsers.planning_metadata.parse_planning_metadata().existing_router, existing_switch o new_router; los valores heredados new_switch se convierten a existing_router para que las vistas previas sigan siendo deterministas y no se sinteticen overlays de switches implícitamente.r2r_mode por elemento de enrutamiento admite Exact, Uniform, NonUniform, Min, Max y mallas heredadas vinculadas a --router-mesh-style.r2s_mode, r2s_edges, opcionalmente r2s_hosts_min/max) reagrupan hosts detrás de switches dedicados, con “Exact=1” agregando todos los hosts de cada router en un único switch./tmp/traffic (con servicios complementarios) y respetan las sobrescrituras de patrón, tasa, jitter e indicaciones de contenido./tmp/segmentation junto con segmentation_summary.json; el modo NAT, la probabilidad DNAT, la inclusión de hosts y los permisos de puertos docker son configurables./tmp/vulns, con metadatos incrustados en los nodos CORE.core_topo_gen.plugins.traffic.register() para código de emisor/receptor a medida.