
pybatfish v2026.08.18
Python-Client für Batfish, ein Netzwerkkonfigurationsanalyse-Tool, das Sicherheit, Zuverlässigkeit und Compliance validiert, indem es das Netzwerkverhalten aus Gerätekonfigurationen vor der Bereitstellung modelliert.
Hast du Fragen, Feedback oder Feature-Wünsche? Trete unserer Community auf Slack!
Pybatfish
Pybatfish ist ein Python-Client für Batfish.
Was ist Batfish?
Batfish ist ein Netzwerkvalidierungstool, das Korrektheitsgarantien für Sicherheit, Zuverlässigkeit und Compliance bietet, indem es die Konfiguration von Netzwerkgeräten analysiert. Es erstellt vollständige Modelle des Netzwerkverhaltens aus Gerätekonfigurationen und findet Verstöße gegen Netzwerkrichtlinien (integriert, benutzerdefiniert und Best Practices).
Ein Hauptanwendungsfall für Batfish ist die Validierung von Konfigurationsänderungen vor der Bereitstellung (obwohl es auch zur Validierung bereits bereitgestellter Konfigurationen verwendet werden kann). Die Validierung vor der Bereitstellung ist eine kritische Lücke in bestehenden Netzwerkautomatisierungsworkflows. Durch Batfish in Automatisierungsworkflows können Netzwerkingenieure diese Lücke schließen und sicherstellen, dass nur korrekte Änderungen bereitgestellt werden.
Batfish benötigt KEINEN direkten Zugriff auf Netzwerkgeräte. Die Kernanalyse erfordert nur die Konfiguration der Netzwerkgeräte. Diese Analyse kann durch zusätzliche Informationen aus dem Netzwerk verbessert werden, wie zum Beispiel:
- Von externen Peers empfangene BGP-Routen
- Durch LLDP/CDP dargestellte Topologieinformationen
Weitere technische Informationen zur Funktionsweise findest du auf www.batfish.org.
Welche Arten von Korrektheitsprüfungen unterstützt Batfish?
Der Batfish YouTube-Kanal (den du für neue Inhalte abonnieren kannst) veranschaulicht viele Arten von Prüfungen. Diese Prüfungen decken ein Spektrum von Netzwerkverhalten und Gerätekonfigurationsattributen ab.
Konfigurations-Compliance
- Markieren von undefinierten, aber referenzierten oder definierten, aber nicht referenzierten Strukturen (z.B. ACLs, Route-Maps)
- Konfigurationseinstellungen für MTUs, AAA, NTP, Logging usw. entsprechen Vorlagen
- Geräte können nur mit SSHv2 zugegriffen werden und das Passwort ist nicht null
Zuverlässigkeit
- Die Ende-zu-Ende-Erreichbarkeit wird für keinen Datenfluss nach einem einzelnen Link- oder Geräteausfall beeinträchtigt
- Bestimmte Dienste (z.B. DNS) sind global erreichbar
Sicherheit
- Sensitive Dienste können nur von bestimmten Subnetzen oder Geräten aus erreicht werden
- Pfade zwischen Endpunkten sind wie erwartet (z.B. durch eine Firewall, haben mindestens 2-Wege-ECMP usw.)
Änderungsanalyse
- Die Ende-zu-Ende-Erreichbarkeit ist bei der aktuellen und einer geplanten Konfiguration identisch
- Geplante ACL- oder Firewall-Änderungen sind nachweislich korrekt und verursacht keine Kollateralschäden für anderen Datenverkehr
- Zwei Konfigurationen, möglicherweise von verschiedenen Anbietern, sind funktional äquivalent
Wie fange ich an?
Falls du Batfish noch nicht installiert hast, folge den Anweisungen im batfish GitHub-Repository, um dies zu tun.
Pybatfish installieren
Wir empfehlen dringend, Pybatfish in einer Python 3 virtuellen Umgebung zu installieren. Details zur Einrichtung findest du hier. Sobald deine virtuelle Umgebung eingerichtet und aktiviert ist, aktualisiere pip und installiere dann pybatfish.
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pybatfish
Jetzt bist du bereit, dein eigenes Netzwerk mit Batfish zu evaluieren. Wir empfehlen dir, Jupyter-Notebooks als Ausgangspunkt zu verwenden, aber du kannst auch andere Methoden nutzen, mit denen du vertraut bist, z.B. eine IDE wie PyCharm oder eine interaktive Python-Shell. Wenn du Jupyter-Notebooks als Ausgangspunkt wählst, musst du Jupyter in deiner virtuellen Umgebung installieren. Die Jupyter-Dokumentation findest du hier - aber die folgenden Befehle bringen dich auf den Weg.
python3 -m pip install jupyter
jupyter notebook
Unsere Notebooks bieten eine Schnellstartanleitung für verschiedene Anwendungsfälle. Darüber hinaus ist die vollständige Dokumentation auf readthedocs verfügbar.
Pybatfish-Dokumentation
Die vollständige Dokumentation der pybatfish-APIs findest du hier.
