metamorworks - stock.adobe.com

Mit Batfish Netzwerkänderungen verwalten und validieren

Die automatisierte Überprüfung von Netzwerkänderungen mit dem Open-Source-Tool Batfish spart Zeit bei deren Verwaltung und minimiert Konfigurations- sowie Richtlinienfehler.

Bei der Implementierung von Netzwerkänderungen möchten Netzwerkteams Konfigurationsfehler finden und beheben, bevor sie die Änderungen in ihre Netzwerkumgebungen einspielen. Aus diesem Grund gibt es Network Change Management und Pre-Change-Validierungen.

Mit der Pre-Change-Validierung können Änderungen getestet werden, bevor die Netzwerkteams sie bereitstellen. So lassen sich genaue Konfigurationen besser sicherstellen und Folgefehler oder Ausfälle vermeiden. Dieser Prozess im Rahmen des Network Change Management kann jedoch kompliziert und repetitiv sein, insbesondere wenn er ohne Netzwerkautomatisierung durchgeführt wird.

Herausforderungen bei der Verwaltung von Netzwerkänderungen

Die Verwaltung von Netzwerkänderungen ist ein wesentlicher Schritt bei der Durchführung von Änderungen, zum Beispiel dem Hinzufügen neuer Routen, dem Stopp von Verkehrsflüssen oder dem Ändern von Zugriffskontrolllisten (ACL). Der Standardprozess für die Verwaltung von Netzwerkänderungen umfasst Schritte zur Ermittlung der Risikoanalyse, zur Durchführung von Peer Reviews, zur Durchführung von Tests vor der Änderung, zur Einleitung der Bereitstellung, zur Durchführung von Tests nach der Änderung und zur Aktualisierung der Netzwerkdokumentation.

Mit diesen Schritten wird sichergestellt, dass Änderungen keine negativen Auswirkungen auf die Netzwerkumgebung haben. Die herkömmliche Methodik kann jedoch umständlich und zeitaufwändig sein, so Jeff Kala, Senior Architect bei Network to Code, in einem Webinar über Vorabtests in Netzwerkautomatisierungs-Pipelines.

Abbildung 1: Batfish-Abfragen werden in der Testphase vor der Bereitstellung des Netzwerks eingesetzt, um rechtzeitig Konfigurationsfehler und Richtlinienabweichungen zu finden.
Abbildung 1: Batfish-Abfragen werden in der Testphase vor der Bereitstellung des Netzwerks eingesetzt, um rechtzeitig Konfigurationsfehler und Richtlinienabweichungen zu finden.

Bei der Verwaltung von Netzwerkänderungen stehen die IT-Teams laut Kala häufig vor folgenden Herausforderungen:

  • komplexe Umgebungen, die schnelle Änderungen verhindern
  • lange Genehmigungsphasen bei der Arbeit mit mehreren Gruppen
  • begrenzte Änderungsfenster für die Planung von Änderungen
  • Audit-Einschränkungen
  • komplizierte Verfahrensweisen

In manchen Fällen müssen Netzwerkprofis den Änderungsmanagementprozess außerdem mehrfach durchlaufen, um eine Änderung voranzutreiben.

Die Validierung vor einer Änderung ist ein wichtiger Bestandteil des Änderungsmanagements, da sie prüft, ob eine vorgeschlagene Änderung einen Fehler, einen Ausfall oder einen anderen Vorfall verursachen wird. Durch die Automatisierung der Validierung vor einer Änderung können Netzwerkteams spezifische Konfigurationstests implementieren, die ihren Geschäfts- und Netzwerkanforderungen entsprechen und in Automatisierungs-Workflows ablaufen.

Eine Validierung im Vorfeld einer Änderung kann Zeit sparen und verhindern, dass Sie einen Änderungs-Managementprozess mehrfach durchlaufen müssen, um eine einzige Änderung zu implementieren.
Jeff KalaNetwork to Code

„Eine Validierung im Vorfeld einer Änderung kann Zeit sparen und verhindern, dass Sie einen Änderungsmanagementprozess mehrfach durchlaufen müssen, um eine einzige Änderung zu implementieren“, so Kala.

Was ist Batfish?

Ein Tool, das sich für Tests vor Änderungen immer größerer Beliebtheit erfreut, ist Batfish. Batfish, das von Intentionet verwaltet wird, ist ein Open-Source-Tool für die Analyse der Netzwerkkonfiguration. Netzwerktechniker können damit Richtlinienabweichungen und Konfigurationsfehler aufdecken, bevor sie Änderungen vornehmen. Batfish-Abfragen oder -Tests lassen sich in automatisierte Pipelines für die kontinuierliche Integration und die kontinuierliche Bereitstellung (CI/CD) integrieren.

Ein leistungsstarker Aspekt von Batfish ist, dass es keinen direkten Zugriff auf Netzwerkgeräte erfordert. Stattdessen betrachtet Batfish vorhandene Konfigurationen, Routing- und Weiterleitungstabellen sowie Topologieinformationen, um ein herstellerunabhängiges Datenmodell zu erstellen. Dieses Modell liefert eine Darstellung des Netzwerks, mit der Netzwerkingenieure Testabfragen zu ihren automatisierten Validierungs-Workflows hinzufügen können.

Kala beschreibt folgende Beispiel-Pipeline zum Testen einer Netzwerkänderung:

  1. Erstellen Sie einen Feature- oder Änderungszweig mit Git.
  2. Gehen Sie in eine Codebasis, wie zum Beispiel Jinja oder YAML, um Änderungen vorzunehmen.
  3. Erstellen Sie die Konfiguration, etwa mit einem Ansible Playbook.
  4. Testen Sie die Konfiguration und validieren Sie Modelle und Schemata mit Batfish.
  5. Führen Sie ein Peer-Review durch, erstellen Sie den Pull-Request vom Feature-Zweig in den Produktionszweig und stellen Sie die Änderungen bereit.

Anwendungsfälle für Batfish

Das Tool ist als Docker-Container verfügbar, und Netzwerkingenieure können ein Python-SDK (pybatfish) zur Abfrage mit Batfish verwenden. Batfish wird mit etablierten Testabfragen geliefert, zum Beispiel zum Auflisten von Knoteneigenschaften, zum Überprüfen von BGP- und OSPF-Sitzungen, zum Erkennen von Weiterleitungsschleifen und zum Auflisten von IPsec-Tunneln. Techniker können aber auch benutzerdefinierte Abfragen schreiben, um Kriterien zu überprüfen, die speziell auf die Anforderungen ihres Unternehmens zugeschnitten sind.

Weitere Anwendungsfälle für Batfish sind:

  • Überprüfung der Eigenschaften von virtuellen LANs.
  • Analysieren von Routing-Protokollen und Richtlinien.
  • Überprüfen der Konfigurationskonformität.
  • Abfrage von Traffic-Typen.
  • Überprüfen von Firewall- und ACL-Regeln.
  • Prüfen auf unauthentifizierten Zugriff auf Geräte oder Subnetze.
  • Durchführen von Validierungen und Tests nach Änderungen.

Erfahren Sie mehr über Netzwerksoftware

ComputerWeekly.de
Close