Warum Schulnetzwerke MakeCode-Erweiterungen und Arduino-Bibliotheken blockieren

Wenn der Programmierunterricht ins Stocken gerät, liegt das selten an der Hauptwebsite: Enterprise-Firewalls verwerfen meist stillschweigend die im Hintergrund genutzten GitHub-Endpunkte, CDNs und Archiv-Downloads.
Wenn MakeCode-Erweiterungen nicht laden oder die Arduino-Bibliotheksverwaltung bei null Prozent hängen bleibt, blockiert die Firewall der Schule fast nie makecode.microbit.org oder arduino.cc. Stattdessen verwirft der Enterprise-Content-Filter der Schule meist stillschweigend die dynamischen Netzwerkanfragen an mehrere Hosts, die im Hintergrund ablaufen: Quellcode, der über GitHub-API-Endpunkte abgerufen wird, Multi-Hop-Weiterleitungen über Content Delivery Networks (CDNs) oder binäre Archive, die als Software-Downloads eingestuft werden.
Um dieses Problem zu beheben, müssen IT-Administratoren an Schulen nicht die Netzwerksicherheit gefährden, indem sie das gesamte Internet freigeben. Sie benötigen stattdessen eine gezielte Whitelist, die berücksichtigt, wie browserbasierte Compiler und Entwicklungsumgebungen für Mikrocontroller tatsächlich Code abrufen.
Warum die Benutzeroberfläche lädt, die Bibliotheken jedoch scheitern
Enterprise-Schul-Firewalls – wie Gateways von Fortinet FortiGate, Sophos, Smoothwall oder MikroTik, die an staatlichen und privaten Schulen in Südafrika weit verbreitet sind – setzen auf kategorische Filterung. Diese Systeme stufen Datenverkehr anhand von Domain-Reputation und MIME-Typen ein. Wenn Lernende die URL einer Online-Entwicklungsumgebung (IDE) in Google Chrome aufrufen, wird das Hauptportal unter Education eingestuft und somit freigegeben.
Das Problem tritt in dem Moment auf, in dem Lernende eine Erweiterung für ein OLED-Display, einen Motortreiber oder einen Ultraschallsensor hinzufügen. Weder die Microsoft-MakeCode-Engine noch die Arduino IDE liefern alle Treiber von Drittanbietern direkt in der Basisanwendung mit. Stattdessen rufen sie externe Pakete dynamisch über HTTPS von Entwicklerplattformen ab. Diese Anfragen zielen auf Domains ab, die unter Software Downloads, Personal Storage oder Open Source Code Repositories fallen – Kategorien, die von den Standardprofilen schulischer Firewalls streng reglementiert werden, um Malware, nicht autorisierte Softwareinstallationen und Bandbreitenüberlastung zu verhindern.
Die Abhängigkeits-Pipeline von MakeCode
Microsoft MakeCode (egal ob für den BBC micro:bit, Arcade oder eigene Maker-Boards) ist keine einzelne Website; es ist ein Orchestrator, der Code von verschiedenen unabhängigen Hosts zusammenführt, während die Kompilierung innerhalb eines Web-Workers im Browser abläuft.
- Paketsuche: Wenn Lernende nach einem Paket suchen, fragt MakeCode
api.github.comab, um öffentliche Repositorien zu finden, die für PXT (das Programming eXperience Toolkit) markiert sind. Wird die GitHub-API blockiert oder durch Ratenbegrenzungen (Rate Limiting) gedrosselt, liefert die Suche keine Ergebnisse. - Quellcode-Abruf: Nach der Auswahl wird der unformatierte JavaScript- und C++-Treibercode von
raw.githubusercontent.comheruntergeladen. Viele Schulfilter stufen diese Domain als nicht verifizierten Dateispeicher ein (vergleichbar mit einem Filehosting-Dienst) und trennen die Verbindung, sodass Lernende lediglich ein Ladesymbol oder eine allgemeine Fehlermeldung wie „Error loading package“ sehen. - Simulator und Cloud-Compiler: Zielspezifische Simulatoren und Hardware-Targets werden dynamisch von
pxt.iound von Microsoft verwalteten Azure-Endpunkten (*.makecode.org) geladen. Werden diese Ressourcen blockiert, erscheint zwar möglicherweise der grafische Arbeitsbereich, aber der Simulator auf dem Bildschirm bleibt leer.
Arduino IDE: Archive, Weiterleitungen und CLI-Tools
Die Arduino IDE (insbesondere Arduino IDE 2.x, die auf einem Electron-Frontend basiert und arduino-cli als Hintergrund-Daemon ausführt) steht vor einer anderen netzwerkseitigen Hürde: dem Download von Archiven und Weiterleitungsketten.
Wenn Sie eine Board-Definition (wie den ESP32-, ESP8266- oder SAMD-Core) oder eine Community-Bibliothek installieren, folgt das Tool diesem Ablauf:
- Es ruft eine JSON-Indexdatei von einer Ursprungsdomain ab (beispielsweise
downloads.arduino.ccoder ein direkter GitHub-Link, der in den Boardverwalter-URLs hinterlegt ist). - Die Indexdatei verweist auf ein komprimiertes Archiv – typischerweise eine
.zip-,.tar.bz2- oder.tar.gz-Datei, die auf GitHub Releases gehostet wird. - GitHub Releases leitet die Anfrage über einen HTTP-302-Redirect unmittelbar an einen Amazon-S3-Storage-Bucket unter
objects.githubusercontent.comweiter.
Blockiert das Schulnetzwerk ausführbare Dateiendungen oder komprimierte Archive von nicht explizit freigegebenen Domains, bricht der Download unvermittelt ab. Da arduino-cli diese Vorgänge zudem über lokale Hintergrundaufrufe abwickelt, wird auch der typische Captive-Portal-Login im Browser, über den Schul-WLANs Benutzer authentifizieren, nicht ausgelöst.
SSL-Inspection und das Zertifikatsproblem
Viele südafrikanische Schulen leiten den Datenverkehr über transparente Proxy-Server mit Deep Packet Inspection (DPI), um die Internetnutzung der Lernenden zu überwachen. Damit dies funktioniert, muss auf jedem Client-Rechner ein eigenes Stammzertifikat der Zertifizierungsstelle (Certificate Authority, CA) installiert sein. Während zentral verwaltete Windows-Laptops der Schule dieses Zertifikat meist vorinstalliert haben, treten im Computer-Fachraum drei typische Fehlerquellen auf:
- BYOD-Geräte: Lernende, die private Laptops nutzen, erhalten an jedem gesicherten Endpunkt SSL-Handshake-Fehler, da ihre Geräte dem Prüfzertifikat der Schule nicht vertrauen.
- Eingebettete CLI-Tools: Die im Hintergrund laufenden Befehlszeilenprogramme von Robotik-Werkzeugen nutzen häufig eigene mitgelieferte Zertifikatsspeicher, anstatt auf die vertrauenswürdigen Zertifikate des Betriebssystems zuzugreifen, was zu Verbindungsabbrüchen führt.
- WebSockets: Echtzeit-Kompilierung sowie Debugging-Verbindungen über WebUSB und WebSerial können fehlschlagen, wenn sie ältere, reine HTTP-Caching-Proxys passieren.
Die Whitelist-Checkliste für die IT
Geben Sie diese konkrete Liste an Ihre Schul-Netzwerkadministration oder die IT-Abteilung weiter. Bitten Sie darum, dass diese Domains und Protokolle für das VLAN oder IP-Subnetz des Robotik- oder Programmier-Fachraums in die Ausnahmeliste (Bypass) für den Content-Filter und die Deep-SSL-Inspection aufgenommen werden:
| Domain / URL-Muster | Zweck | Erforderliche Ports |
|---|---|---|
makecode.microbit.org*.makecode.org | MakeCode-Webanwendung, Simulator-Runtimes und lokale Web-Worker | TCP 443 (HTTPS) |
pxt.io*.pxt.io | Zugrunde liegende Microsoft-PXT-Compiler-Targets und Dokumentation | TCP 443 (HTTPS) |
api.github.com | Erweiterungssuche und Auflösung von Paketversionen | TCP 443 (HTTPS) |
raw.githubusercontent.com | MakeCode-Erweiterungsquellcode und Arduino-Board-Indexdateien | TCP 443 (HTTPS) |
objects.githubusercontent.com | Binäre Paketarchive, Compiler-Toolchains und Bibliotheks-Releases als ZIP | TCP 443 (HTTPS) |
downloads.arduino.cc*.arduino.cc | Offizielle Arduino-IDE-Indizes, Core-Boards und Metadaten der Bibliotheksverwaltung | TCP 443 (HTTPS) |
Zusätzlich zum Whitelisting der Domains sollte das IT-Team sicherstellen, dass die Dateiendungsfilterung Datenströme mit den Endungen .json, .hex, .zip, .tar.gz oder .tar.bz2 von den oben genannten Domains nicht blockiert.
Praktische Übergangslösungen in stark reglementierten Umgebungen
Wenn Ihre Schule an einen starren, zentral verwalteten Proxy angebunden ist – etwa über Netzwerkstrukturen der Bildungsministerien auf Provinzebene, bei denen Lehrkräfte vor Ort keine Firewall-Anpassungen veranlassen können –, müssen Sie diese Netzwerkbarrieren umgehen:
- Für MakeCode: Installieren Sie die Offline-App von MakeCode für den micro:bit, sofern ein entsprechendes Installationsprogramm verfügbar ist. Alternativ können Sie benötigte Erweiterungen über eine externe Verbindung (wie einen mobilen Hotspot) in ein zentrales „Master“-Projekt laden, dieses als
.hex-Datei speichern und die Datei an die Lernenden verteilen. MakeCode bettet bereits importierte Erweiterungen direkt in die.hex-Projektdatei ein; nach dem Import ist für die Nutzung der Blöcke kein Internetzugriff mehr erforderlich. - Für Arduino: Richten Sie eine Master-Installation der Arduino IDE ein, bei der alle erforderlichen Boards (wie ESP32- oder AVR-Cores) und Unterrichtsbibliotheken bereits in der portablen Ordnerstruktur vorinstalliert sind. Verteilen Sie dieses vollständige Verzeichnis per USB-Stick oder über eine lokale Netzwerkfreigabe auf die Unterrichtsrechner, wodurch der Board- und Bibliotheksverwalter im Unterricht vollständig umgangen wird.
Für Bildungseinrichtungen, die dedizierte Fachräume für Robotik und Programmierung einrichten und dafür ein zuverlässiges Gerätemanagement, lokale Toolchains sowie firewall-kompatible Konfigurationen für die Primar- oder Sekundarstufe benötigen, unterstützt unser Team Infrastruktur-Rollouts direkt über die Sheen Robotics School Services.
Ein moderner Programmierunterricht kann nicht mit Webfilter-Richtlinien funktionieren, die lediglich für passives Surfen ausgelegt sind. Sobald IT-Administratoren erkennen, dass sich Coding-Plattformen wie Software-Deployment-Pipelines und nicht wie statische Textseiten verhalten, ist die Lösung unkompliziert, zielgerichtet und dauerhaft.



