Network Worker

Ein Python-basierter Dienst, der im Kundennetzwerk läuft und SNMP-Polling, Ping-Monitoring, Netzwerk-Scans und SSH-Konfigurationsbackups übernimmt – vollautomatisch und offline-fähig.

Offener Quellcode

Python-Quellcode – kein kompiliertes Binary

Genau wie beim IT-Doku Agent gilt: Der Network Worker ist bewusst kein kompiliertes Binary. Der komplette Python-Quellcode liegt offen unter /opt/network-worker/src/ auf dem installierten System.

Transparent

Jede Netzwerkoperation ist nachvollziehbar – kein versteckter Traffic.

Audit-fähig

Sicherheitsprüfer können den Code einsehen, bevor er im Netzwerk aktiv wird.

Erweiterbar

Eigene SNMP-OIDs, SSH-Handler oder Scanner-Logik hinzufügen.

Was macht der Network Worker?

Der Worker läuft als systemd-Service auf einer Linux-Maschine im Kundennetzwerk (z.B. ein kleiner Server, eine VM oder ein Raspberry Pi) und kommuniziert mit dem Portal über eine REST-API.

SNMP-Polling

Switches, Drucker, NAS, USV, APs – System-Info, Interfaces, MAC/ARP-Tabellen, Toner, Speicher

Ping-Monitoring

Kontinuierliches ICMP-Monitoring mit Ausfallserkennung, Latenz-Tracking und Protokoll

Network Discovery

ARP-Scan, Port-Scan, MAC-Vendor-Lookup, Gerätetyp-Erkennung (~200 Hersteller)

SSH-Backup

Firewall- und Switch-Konfigurationen sichern (Securepoint, Cisco, HP, Aruba)

Firewall-Sync

Securepoint UTM, Cisco IOS, Aruba OS/CX – Regeln, Interfaces, Konfiguration synchronisieren

Auto-Update

Hash-basierte Versionserkennung, Download und Update ohne manuelle Eingriffe

Installation

Der Worker wird mit einem einzigen Befehl installiert. Das Installationsscript erkennt die Linux-Distribution automatisch.

1

Installationsscript ausführen

Auf einer Linux-Maschine im Kundennetzwerk (Ubuntu, Debian, CentOS, RHEL, Rocky, Fedora):

curl -sSL https://ihr-portal.de/network-worker/install.sh | sudo bash

Installiert Python 3, libpcap, erstellt den Systembenutzer network-worker, richtet systemd-Service ein und startet das Web-UI auf Port 8080.

2

API-Token im Web-UI hinterlegen

Öffnen Sie http://<server-ip>:8080 im Browser. Erstellen Sie im Portal unter Admin → Network Workers einen neuen Worker und kopieren Sie den API-Token in die Konfigurationsseite.

3

Fertig – Worker arbeitet

Der Worker verbindet sich mit dem Portal, meldet sich per Heartbeat und beginnt, zugewiesene Aufgaben auszuführen.

Installationspfade

/opt/network-worker/ – Quellcode

/etc/network-worker/config.yaml – Konfiguration

/var/log/network-worker/ – Logs

/var/lib/network-worker/cache.db – Lokaler Cache (SQLite)

Systemvoraussetzungen

Linux (64-bit) mit systemd

Python 3.10+ (wird automatisch installiert)

Netzwerkzugang zum Portal (HTTPS, Port 443)

Zugriff auf das Kundennetzwerk (SNMP, ICMP, SSH)

Architektur

Der Worker betreibt 6 unabhängige asynchrone Schleifen parallel:

60s

Heartbeat

Meldet dem Portal: „Ich lebe". Unabhängig von allen anderen Schleifen – auch bei Netzwerkproblemen zuverlässig.

30s

Task-Polling

Holt neue Aufgaben vom Portal (SNMP-Abfrage, Discovery, SSH-Backup, etc.) und führt sie aus.

30s

Sync

Sendet gesammelte Ergebnisse ans Portal. Bei Verbindungsverlust mit exponentiellem Backoff (bis 5 Min).

60s

Autonome Tasks

Führt wiederkehrende Aufgaben (SNMP-Polling, Backups) nach konfigurierbarem Intervall aus dem lokalen Cache aus – auch offline.

Ping-Monitor

Kontinuierliche ICMP-Überwachung aller konfigurierten Ziele mit einstellbarem Intervall (1–60 Sekunden).

5m

Auto-Update

Prüft alle 5 Minuten per SHA256-Hash ob eine neue Version verfügbar ist. Update ohne Neustart-Unterbrechung.

Offline-Fähigkeit

Der Worker arbeitet auch ohne Verbindung zum Portal weiter:

  • Lokaler SQLite-Cache speichert wiederkehrende Aufgaben, Scheduling-Zeiten und Ergebnisse
  • Autonome Tasks laufen nach konfigurierbarem Intervall (1–120 Min) unabhängig vom Portal
  • Ergebnis-Queue puffert Daten und sendet sie, sobald das Portal wieder erreichbar ist
  • Ping-Monitoring läuft ununterbrochen – Ausfälle werden auch offline protokolliert
  • Scheduling bleibt stabil: Task-Zeitpläne werden lokal verwaltet und beim Sync mit dem Portal nicht zurückgesetzt

Ideal für Außenstellen: Der Worker eignet sich besonders für Standorte mit instabiler Internetverbindung. Die Daten gehen nie verloren – sie werden lokal zwischengespeichert und automatisch synchronisiert.

SNMP-Polling

Der Worker unterstützt SNMP v1, v2c und v3 und kann folgende Daten abfragen:

System-Info

Hostname, Beschreibung, Uptime, Standort

Interfaces

Name, Speed, Admin-/Oper-Status pro Port

MAC-Tabelle

Welche MAC-Adresse an welchem Port (Layer-2 Topologie)

ARP-Tabelle

IP-zu-MAC-Zuordnungen für die Netzwerk-Dokumentation

Drucker-Status

Seitenzähler, Toner-Füllstände, Verbrauchsmaterial, Fehlerzustand

Speicher (Storage)

Festplatten/Volumes mit Kapazität und Belegung (HOST-RESOURCES-MIB)

Die SNMP-Daten werden im Portal automatisch ausgewertet für Monitoring-Alerts (Toner-Warnung, Speicher voll, Neustart-Erkennung).

Automatisches Polling

Für Switches mit aktiviertem SNMP erstellt das Portal automatisch wiederkehrende Poll-Aufgaben. Das Intervall ist pro Switch konfigurierbar:

Intervall Empfehlung
1–2 MinNur für Debugging – erzeugt hohe Last auf Switch und Worker
5 MinKritische Infrastruktur (Core-Switches, Rechenzentrum)
15 Min (Standard)Empfohlen – guter Kompromiss zwischen Aktualität und Last
30–60 MinStabile Umgebungen, Access-Switches mit wenig Änderungen
120 MinSelten genutzte Switches, Außenstellen

Der Artisan-Command switch:auto-schedule läuft alle 5 Minuten und erstellt bzw. aktualisiert die Recurring-Tasks automatisch. Wird SNMP für einen Switch deaktiviert, wird der zugehörige Task ebenfalls deaktiviert.

Automatische Port-Erkennung

Nach jedem SNMP-Poll erkennt das Portal automatisch, welches Gerät an welchem Switch-Port hängt – ohne manuelles Zuordnen.

1

SNMP-Poll holt MAC-Tabelle

Der Worker liest per Q-BRIDGE-MIB alle MAC-Adressen und deren zugehörige Ports aus dem Switch.

2

PortMappingService gruppiert nach Port

MACs werden nach if_index gruppiert. Ports mit genau 1 MAC = Direktverbindung, Ports mit >3 MACs = Uplink.

3

MAC-Adresse wird abgeglichen

Jede MAC wird gegen bekannte Quellen geprüft: Geräte (primary_mac), Netzwerk-Interfaces, andere Switches, Firewalls, Discovery-Ergebnisse.

4

Verbindungen werden geschrieben

Erkannte Zuordnungen werden auf den Switch-Port geschrieben und automatisch als Topologie-Verbindungen für das Netzwerk-Diagramm angelegt.

Direktverbindung

1 MAC auf dem Port → Gerät direkt am Switch angeschlossen (PC, Drucker, NAS, AP)

Uplink

>3 MACs auf dem Port → Verbindung zu anderem Switch, Firewall oder Router. Port wird als Uplink markiert.

Topologie

Erkannte Verbindungen erscheinen automatisch im Netzwerk-Diagramm. Manuell erstellte Verbindungen werden nie überschrieben.

Automatisch vs. manuell: Auto-erkannte Verbindungen werden mit einem is_auto_detected-Flag markiert. Beim nächsten Poll werden veraltete Auto-Verbindungen bereinigt, manuell erstellte Verbindungen bleiben immer erhalten.

MAC-Tabelle & Port-Map

In der Switch-Übersicht können Sie die MAC-Tabelle jedes Switches einsehen:

  • Port-Map: Pro Port: Name, Anzahl MACs, erkanntes Gerät (Name + IP), Verbindungstyp (Direkt/Uplink/Leer)
  • MAC-Tabelle: Alle MAC-Adressen sortiert nach Port, mit VLAN, Vendor-Hint und Discovery-Match
  • Statistik: Gesamt-Ports, belegte Ports, erkannte Geräte, Uplinks
  • Jetzt scannen: Erstellt sofort einen SNMP-Poll-Task für den ausgewählten Switch

Network Discovery

Der Worker führt auf Anfrage des Portals Netzwerk-Scans durch. Mehr dazu in der Discovery-Dokumentation.

  • ARP-Scan: Schnelle Erkennung aller Geräte im lokalen Subnetz (via scapy)
  • Ping-Probe: ICMP-Fallback für Subnetze ohne ARP-Zugriff
  • rDNS-Lookup: Hostname-Auflösung über Reverse-DNS
  • MAC-Vendor-Lookup: OUI-Datenbank mit ~200 Herstellern (Cisco, HP, Brother, etc.)
  • Port-Scan: Offene Ports erkennen (9100=Drucker, 161=SNMP, 3389=RDP, etc.)
  • SNMP-Probe: Automatische SNMP-Erkennung und Datenabfrage

Web-UI Dashboard

Der Worker hat ein eingebautes Web-Dashboard auf Port 8080 für Einrichtung und Diagnose:

Status-Übersicht

Uptime, Verbindungsstatus, verarbeitete Tasks, Speicherverbrauch

Live-Logs

Echtzeit-Log-Anzeige mit Farbcodierung und Filter nach Level (Error/Warning/Info/Debug)

Netzwerk-Info

Lokale Interfaces, IP-Adressen, MAC, Geschwindigkeit

Einstellungen

Portal-URL, API-Token, Poll-Intervall, Verbindungstest

ⓘ Praxisbeispiel: Neues Kundennetzwerk erstmalig scannen

Szenario: Sie übernehmen einen neuen Kunden und möchten alle Netzwerk-Geräte automatisch erfassen.

  1. 1. Worker auf einer Linux-VM im Kundennetzwerk installieren (Einzeiler, 5 Minuten).
  2. 2. Im Portal unter Netzwerke die Kunden-Subnetze eintragen (z.B. 192.168.1.0/24, 10.0.0.0/24).
  3. 3. Discovery-Scan starten – der Worker scannt per ARP, erkennt Geräte, Hersteller und offene Ports.
  4. 4. Entdeckte Geräte direkt als Inventar-Einträge übernehmen (Name, IP, Typ vorausgefüllt).
  5. 5. SNMP-Credentials hinterlegen → Switches, Drucker und NAS werden automatisch gepollt. Erste PDF-Dokumentation in 30 Minuten fertig.

Sicherheit

Eigener Systembenutzer

Läuft als network-worker mit minimalen Rechten. Nur CAP_NET_RAW für ARP-Scanning.

Bearer-Token-Auth

Jeder Worker hat einen eigenen API-Token. Kommunikation nur über HTTPS.

systemd-Sandbox

ProtectSystem=strict, ProtectHome=yes – kein Zugriff auf System- oder Home-Verzeichnisse.

Konfiguration geschützt

/etc/network-worker/ mit Modus 700 – nur root und der Service-User können lesen.

Hinweis: Pro Kundenstandort wird ein Network Worker benötigt. Bei mehreren Standorten installieren Sie je einen Worker vor Ort. Über die Standortzuordnung im Portal wird sichergestellt, dass jeder Worker nur seine lokalen Geräte pollt.

Tipp: Das Web-UI auf Port 8080 ist nur für die Ersteinrichtung gedacht. Im laufenden Betrieb verwalten Sie den Worker über das Portal (Admin → Network Workers). Logs können Sie auch per journalctl -u network-worker -f lesen.

Häufige Fragen

Prüfen Sie: (1) Läuft der Service? systemctl status network-worker (2) Ist das Portal erreichbar? curl -I https://ihr-portal.de (3) Ist der API-Token korrekt? Schauen Sie ins Web-UI unter http://worker-ip:8080 → Einstellungen.

Jedes Linux-System reicht: eine VM mit 1 vCPU und 512 MB RAM, ein Raspberry Pi, ein alter Thin Client oder ein Container. Der Worker braucht kaum Ressourcen – er muss nur Netzwerkzugang zum Kundennetz und Internet zum Portal haben.

Ja – ein Worker pro Kundennetzwerk (bzw. Standort). Der Worker muss im selben Netzwerk sein wie die Geräte, die er scannen und pollen soll. Bei einem Kunden mit 3 Standorten brauchen Sie 3 Worker.

Vollautomatisch. Der Worker prüft alle 5 Minuten per SHA256-Hash ob eine neue Version auf dem Portal verfügbar ist. Bei einem Update wird das neue Paket heruntergeladen, entpackt und per rsync angewendet – die Konfiguration und der lokale Cache bleiben erhalten. Der Service startet automatisch neu.

Nach jedem SNMP-Poll liest der PortMappingService die MAC-Tabelle des Switches aus und gleicht die MAC-Adressen mit bekannten Geräten, Switches und Firewalls ab. Ports mit genau einer MAC werden als Direktverbindung erkannt, Ports mit vielen MACs als Uplink. Erkannte Zuordnungen werden automatisch als Topologie-Verbindungen angelegt. Manuell erstellte Verbindungen werden dabei nie überschrieben.

Das Intervall ist pro Switch einstellbar: 1, 2, 5, 15, 30, 60 oder 120 Minuten. Standard sind 15 Minuten. Recurring-Tasks werden vom Worker lokal gecacht und auch bei Verbindungsunterbrechung zum Portal zuverlässig ausgeführt.