Implement NetWorker network puzzle game
mindflux-ci / build (push) Successful in 23s

This commit is contained in:
AliceDarkest
2026-07-13 22:09:31 +02:00
parent 3eef7cdb40
commit 73e74a2859
25 changed files with 292 additions and 5 deletions
+23
View File
@@ -0,0 +1,23 @@
{"worlds":[
{"slug":"ein-netz-fuer-alle","title":"Welt 1: Ein Netz für alle","description":"Grundlagen der IPv4-Adressierung: Hostadressen, Masken und ein gemeinsames LAN.","difficulty":"junior","examScope":"AP1","levels":[
{"title":"Erste Verbindung","type":"assign","points":100,"payload":{"nodes":[{"id":"PC1","label":"PC-01","type":"pc","x":150,"y":270,"ip":"192.168.10.0","prefix":24,"editable":["ip","prefix"]},{"id":"SW1","label":"SW-01","type":"switch","x":450,"y":270},{"id":"SRV1","label":"SRV-01","type":"server","x":760,"y":270,"ip":"192.168.10.20","prefix":24}],"links":[["PC1","SW1"],["SW1","SRV1"]],"goals":[{"id":"pc-zu-server","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","ip":"192.168.10.10","prefix":24}]}}},
{"title":"Die richtige Maske","type":"fix","points":100,"payload":{"nodes":[{"id":"PC1","label":"PC-02","type":"pc","x":150,"y":270,"ip":"192.168.20.10","prefix":25,"editable":["prefix"]},{"id":"SW1","label":"SW-02","type":"switch","x":450,"y":270},{"id":"SRV1","label":"SRV-02","type":"server","x":760,"y":270,"ip":"192.168.20.200","prefix":24}],"links":[["PC1","SW1"],["SW1","SRV1"]],"goals":[{"id":"maske","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","prefix":24}]}}},
{"title":"Host statt Broadcast","type":"fix","points":100,"payload":{"nodes":[{"id":"PC1","label":"PC-03","type":"pc","x":150,"y":270,"ip":"192.168.30.255","prefix":24,"editable":["ip"]},{"id":"SW1","label":"SW-03","type":"switch","x":450,"y":270},{"id":"SRV1","label":"SRV-03","type":"server","x":760,"y":270,"ip":"192.168.30.50","prefix":24}],"links":[["PC1","SW1"],["SW1","SRV1"]],"goals":[{"id":"broadcast","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","ip":"192.168.30.30"}]}}},
{"title":"Doppelte Adresse","type":"fix","points":120,"payload":{"nodes":[{"id":"PC1","label":"PC-04","type":"pc","x":150,"y":270,"ip":"192.168.40.20","prefix":24,"editable":["ip"]},{"id":"SW1","label":"SW-04","type":"switch","x":450,"y":270},{"id":"SRV1","label":"SRV-04","type":"server","x":760,"y":270,"ip":"192.168.40.20","prefix":24}],"links":[["PC1","SW1"],["SW1","SRV1"]],"goals":[{"id":"duplikat","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","ip":"192.168.40.10"}]}}},
{"title":"Das /26-Labor","type":"assign","points":120,"payload":{"nodes":[{"id":"PC1","label":"PC-05","type":"pc","x":150,"y":270,"ip":"10.0.5.70","prefix":24,"editable":["prefix"]},{"id":"SW1","label":"SW-05","type":"switch","x":450,"y":270},{"id":"SRV1","label":"SRV-05","type":"server","x":760,"y":270,"ip":"10.0.5.100","prefix":26}],"links":[["PC1","SW1"],["SW1","SRV1"]],"goals":[{"id":"cidr","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","prefix":26}]}}}
]},
{"slug":"ueber-den-router","title":"Welt 2: Über den Router","description":"Gateways verbinden getrennte Netze. Prüfe Adresse, Maske und den Ausgang aus dem LAN.","difficulty":"senior","examScope":"AP1","levels":[
{"title":"Tor zum Serverraum","type":"assign","points":130,"payload":{"nodes":[{"id":"PC1","label":"PC-A","type":"pc","x":120,"y":270,"ip":"192.168.1.10","prefix":24,"gateway":"192.168.1.254","editable":["gateway"]},{"id":"R1","label":"RTR-01","type":"router","x":450,"y":270,"gateways":["192.168.1.1","192.168.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-A","type":"server","x":780,"y":270,"ip":"192.168.2.20","prefix":24}],"links":[["PC1","R1"],["R1","SRV1"]],"goals":[{"id":"gateway","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","gateway":"192.168.1.1"}]}}},
{"title":"Gateway im falschen Netz","type":"fix","points":130,"payload":{"nodes":[{"id":"PC1","label":"PC-B","type":"pc","x":120,"y":270,"ip":"192.168.11.10","prefix":24,"gateway":"192.168.12.1","editable":["gateway"]},{"id":"R1","label":"RTR-02","type":"router","x":450,"y":270,"gateways":["192.168.11.1","192.168.12.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-B","type":"server","x":780,"y":270,"ip":"192.168.12.60","prefix":24}],"links":[["PC1","R1"],["R1","SRV1"]],"goals":[{"id":"local-gateway","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","gateway":"192.168.11.1"}]}}},
{"title":"Netzadresse am Ausgang","type":"fix","points":140,"payload":{"nodes":[{"id":"PC1","label":"PC-C","type":"pc","x":120,"y":270,"ip":"172.20.1.0","prefix":24,"gateway":"172.20.1.1","editable":["ip"]},{"id":"R1","label":"RTR-03","type":"router","x":450,"y":270,"gateways":["172.20.1.1","172.20.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-C","type":"server","x":780,"y":270,"ip":"172.20.2.30","prefix":24}],"links":[["PC1","R1"],["R1","SRV1"]],"goals":[{"id":"hostadresse","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","ip":"172.20.1.10"}]}}},
{"title":"Abteilung Nord","type":"assign","points":140,"payload":{"nodes":[{"id":"PC1","label":"PC-N","type":"pc","x":120,"y":270,"ip":"10.20.1.25","prefix":24,"gateway":"10.20.1.1","editable":["prefix"]},{"id":"R1","label":"RTR-04","type":"router","x":450,"y":270,"gateways":["10.20.1.1","10.20.2.1"],"gatewayPrefix":25},{"id":"SRV1","label":"SRV-N","type":"server","x":780,"y":270,"ip":"10.20.2.44","prefix":25}],"links":[["PC1","R1"],["R1","SRV1"]],"goals":[{"id":"praefix","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","prefix":25}]}}},
{"title":"Freier Host","type":"assign","points":150,"payload":{"nodes":[{"id":"PC1","label":"PC-E","type":"pc","x":120,"y":270,"ip":"192.168.50.1","prefix":24,"gateway":"192.168.50.1","editable":["ip"]},{"id":"R1","label":"RTR-05","type":"router","x":450,"y":270,"gateways":["192.168.50.1","192.168.60.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-E","type":"server","x":780,"y":270,"ip":"192.168.60.15","prefix":24}],"links":[["PC1","R1"],["R1","SRV1"]],"goals":[{"id":"freier-host","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"PC1","ip":"192.168.50.10"}]}}}
]},
{"slug":"routen-und-fehlersuche","title":"Welt 3: Routen & Fehlersuche","description":"Zwei Router, statische Routen und echte Diagnose auf AP2-FISI-Niveau.","difficulty":"principal","examScope":"AP2_FISI","levels":[
{"title":"Der fehlende Weg","type":"route","points":180,"payload":{"nodes":[{"id":"PC1","label":"PC-OPS","type":"pc","x":100,"y":270,"ip":"10.10.1.10","prefix":24,"gateway":"10.10.1.1"},{"id":"R1","label":"RTR-EDGE","type":"router","x":350,"y":270,"gateways":["10.10.1.1","172.16.0.1"],"gatewayPrefix":24,"routes":[],"editable":["routes"]},{"id":"R2","label":"RTR-CORE","type":"router","x":600,"y":270,"gateways":["172.16.0.2","10.10.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-ERP","type":"server","x":850,"y":270,"ip":"10.10.2.20","prefix":24}],"links":[["PC1","R1"],["R1","R2"],["R2","SRV1"]],"goals":[{"id":"route-erp","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"R1","routes":[{"network":"10.10.2.0","prefix":24,"nextRouter":"R2"}]}]}}},
{"title":"Route im Kreis","type":"route","points":180,"payload":{"nodes":[{"id":"PC1","label":"PC-LOG","type":"pc","x":100,"y":270,"ip":"10.20.1.10","prefix":24,"gateway":"10.20.1.1"},{"id":"R1","label":"RTR-01","type":"router","x":350,"y":270,"gateways":["10.20.1.1","172.20.0.1"],"gatewayPrefix":24,"routes":[{"network":"10.20.2.0","prefix":24,"nextRouter":"R1"}],"editable":["routes"]},{"id":"R2","label":"RTR-02","type":"router","x":600,"y":270,"gateways":["172.20.0.2","10.20.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-LOG","type":"server","x":850,"y":270,"ip":"10.20.2.50","prefix":24}],"links":[["PC1","R1"],["R1","R2"],["R2","SRV1"]],"goals":[{"id":"route-loop","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"R1","routes":[{"network":"10.20.2.0","prefix":24,"nextRouter":"R2"}]}]}}},
{"title":"Das ferne Backup","type":"route","points":190,"payload":{"nodes":[{"id":"PC1","label":"PC-BACKUP","type":"pc","x":100,"y":270,"ip":"10.30.1.10","prefix":24,"gateway":"10.30.1.1"},{"id":"R1","label":"RTR-WEST","type":"router","x":350,"y":270,"gateways":["10.30.1.1","172.30.0.1"],"gatewayPrefix":24,"routes":[],"editable":["routes"]},{"id":"R2","label":"RTR-OST","type":"router","x":600,"y":270,"gateways":["172.30.0.2","10.30.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-BACKUP","type":"server","x":850,"y":270,"ip":"10.30.2.100","prefix":24}],"links":[["PC1","R1"],["R1","R2"],["R2","SRV1"]],"goals":[{"id":"route-backup","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"R1","routes":[{"network":"10.30.2.0","prefix":24,"nextRouter":"R2"}]}]}}},
{"title":"Monitoring-Netz","type":"route","points":190,"payload":{"nodes":[{"id":"PC1","label":"PC-NOC","type":"pc","x":100,"y":270,"ip":"10.40.1.10","prefix":24,"gateway":"10.40.1.1"},{"id":"R1","label":"RTR-NOC","type":"router","x":350,"y":270,"gateways":["10.40.1.1","172.40.0.1"],"gatewayPrefix":24,"routes":[],"editable":["routes"]},{"id":"R2","label":"RTR-MON","type":"router","x":600,"y":270,"gateways":["172.40.0.2","10.40.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-MON","type":"server","x":850,"y":270,"ip":"10.40.2.8","prefix":24}],"links":[["PC1","R1"],["R1","R2"],["R2","SRV1"]],"goals":[{"id":"route-monitor","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"R1","routes":[{"network":"10.40.2.0","prefix":24,"nextRouter":"R2"}]}]}}},
{"title":"Letzter Hop","type":"route","points":200,"payload":{"nodes":[{"id":"PC1","label":"PC-SOC","type":"pc","x":100,"y":270,"ip":"10.50.1.10","prefix":24,"gateway":"10.50.1.1"},{"id":"R1","label":"RTR-SOC","type":"router","x":350,"y":270,"gateways":["10.50.1.1","172.50.0.1"],"gatewayPrefix":24,"routes":[],"editable":["routes"]},{"id":"R2","label":"RTR-DC","type":"router","x":600,"y":270,"gateways":["172.50.0.2","10.50.2.1"],"gatewayPrefix":24},{"id":"SRV1","label":"SRV-SIEM","type":"server","x":850,"y":270,"ip":"10.50.2.200","prefix":24}],"links":[["PC1","R1"],["R1","R2"],["R2","SRV1"]],"goals":[{"id":"route-siem","from":"PC1","to":"SRV1","shouldReach":true}],"solution":{"nodes":[{"id":"R1","routes":[{"network":"10.50.2.0","prefix":24,"nextRouter":"R2"}]}]}}}
]}
]}