>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Rust

Wie Scanopy Sie vor dem manuellen Zeichnen von Netzwerkdiagrammen bewahrt

Scanopy Logo

Jeder, der schon einmal versucht hat, eine aktuelle Karte eines Firmen- oder Heimserver-Netzwerks zu pflegen, kennt diesen Schmerz. Man setzt sich an draw.io oder Visio, verbringt einen halben Tag damit, sorgfältig kleine Kästen für Switches, Server und Verbindungen anzuordnen. Eine Woche vergeht, der Sysadmin tauscht ein paar Patch-Kabel aus, der DevOps-Ingenieur startet einen neuen Stack in Docker, und das von Hand gezeichnete Diagramm wird zu einem nutzlosen historischen Dokument.

Auch Terraform oder Ansible State helfen nicht immer. Infrastructure-as-Code zeigt nur das, was in der Pipeline beschrieben ist, und ignoriert manuelle Änderungen an Switches oder temporär gestartete VMs.

Ich bin kürzlich auf das Projekt Scanopy gestoßen. Sie haben ein Tool entwickelt, das regelmäßige Netzwerk-Scans durchführt und automatisch interaktive Diagramme auf mehreren Abstraktionsebenen erstellt.

L2 view

L2 (Physisch)
Jeder Switch, jeder Port, jede Verbindung.

L3 view

L3 (Logisch)
Subnetze und wie Hosts über diese verbunden sind.

Workloads view

Workloads
Von Bare Metal bis Hypervisoren bis Containern.

Applications view

Anwendungen
Services und ihre Abhängigkeiten, nach Anwendung gruppiert.

So funktioniert es unter der Haube

Statt schwerer Agents auf jeder virtuellen Maschine zu installieren, verwendet das Projekt einen leichtgewichtigen Daemon-Scanner. Der Daemon fragt Netzwerkgeräte über SNMP ab, parst LLDP- und ARP-Tabellen und scannt offene Ports. Bei Bedarf verbindet sich der Scanner direkt mit dem Docker Socket, um Container zu inventarisieren.

Unter der Haube ist Scanopy in Rust geschrieben. Das ermöglicht schnelle Scanner- und Server-Performance ohne übermäßigen Speicherverbrauch.

Nach jedem Scanner-Durchlauf wird ein Infrastrukturmodell aufgebaut, aus dem das System vier separate Schichten generiert:

  1. L2 physische Schicht. Dazu gehören Switches, physische Verbindungen und spezifische Anschlussports der Geräte.
  2. L3 logische Schicht. Zeigt Routing, Subnetze und IP-Adressverteilung über Hosts hinweg.
  3. Workloads. Zeigt die Kette von Bare-Metal-Servern und Hypervisoren bis zu virtuellen Maschinen und einzelnen Containern.
  4. Anwendungen. Gruppiert Services und baut einen Abhängigkeitsgraphen zwischen Datenbanken, Webservern und Hintergrund-Workern auf.

Das Projekt wird bereits mit über zweihundert vorgefertigten Service-Signaturen ausgeliefert. Der Scanner erkennt PostgreSQL, Redis, Nginx, Kubernetes und viele andere Software sofort ohne zusätzliche manuelle Beschriftung.

Was der Scanner leisten kann

Der Hauptvorteil dieses Ansatzes ist Autonomie. Sie definieren einen Zeitplan, und der Scanner aktualisiert die Topologie regelmäßig im Hintergrund.

Hier sind die praktischen Funktionen:

  • Verteilte Datenerfassung. Für mehrere Standorte oder isolierte VLANs können Sie separate Daemons bereitstellen, die Daten an einen zentralen Server senden.
  • Diagramm-Export. Fertige Diagramme können als SVG exportiert, als Mermaid-Code in Dokumentation eingebettet oder direkt in Confluence hochgeladen werden.
  • Interaktives Web-Interface. Sie können in die Karte hineinzoomen, auf einzelne Nodes klicken, aktive Ports und Nachbarverbindungen anzeigen.
  • Rollenbasiertes Zugriffsmodell. Es gibt eine integrierte Trennung zwischen Organisationen und Benutzern, was für Service-Unternehmen und Outsourcing-Teams nützlich ist.

Schneller Start im Labor

Der einfachste Weg, das System auszuprobieren, ist das Starten von Containern über Docker Compose auf einem Host mit Zugriff auf das erforderliche Subnetz.

curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d

Nach dem Start lauscht das Web-Interface auf Port 60072. Navigieren Sie zu http://localhost:60072, erstellen Sie ein lokales Administratorkonto und starten Sie den ersten Scan-Zyklus.

Wenn Sie ein Homelab auf Proxmox VE betreiben, haben die Autoren ein fertiges Script für die Bereitstellung in einem LXC-Container. Scanopy ist auch im Unraid App-Katalog verfügbar.

Wenn Sie lokal nichts installieren möchten, gibt es eine öffentliche Demo-Sandbox unter demo.scanopy.net mit vorab gefüllten Testdaten.

Für wen das Projekt Zeit spart

Für Operations-Ingenieure und DevOps-Teams löst Scanopy die ewige Frage „Wo geht dieser Traffic hin und wo läuft dieser Container.

Ähnliche Projekte