iX 9/2021
S. 124
Praxis
Rechenzentren

Herstellerübergreifende Netzwerkautomatisierung mit Python

Polyglott

Benjamin Pfister

Mit den Python-Bibliotheken Netmiko, NAPALM und Nornir lassen sich Router, Switches und Firewalls verschiedener Hersteller einheitlich konfigurieren. Das eröffnet weitreichende Möglichkeiten zur Netzwerkautomatisierung.

Der Weg zum automatisierten Rechenzentrum ist mit guten Absichten gepflastert, doch gewöhnlich auch mit einigen Stolpersteinen belegt. Nicht selten nehmen sie die Form aktiver Netzwerkkomponenten an, von Routern, Switches oder Firewall-Appliances unterschiedlicher Hersteller. Ihre proprietären Betriebssysteme werden in der Regel über ein Command Line Interface (CLI) konfiguriert, das auf eine Mensch-Maschine-Interaktion ausgelegt ist und nicht auf eine Kommunikation von Maschine zu Maschine. Meist liefern die Schnittstellen keine strukturierten Datenformate wie JSON oder XML aus. Eine RESTful API oder ein einheitliches Datenmodell ist ebenfalls selten anzutreffen. Erst seit Kurzem gehen die Hersteller aktiver Netzwerktechnik dazu über, entsprechende APIs in ihre Systeme zu integrieren.

Diese Komponenten trotzdem über das CLI in skriptbasierte RZ-Automatisierung einzubinden, gleicht einer Herkulesaufgabe. Denn die Schnittstellen unterscheiden sich nicht nur von Hersteller zu Hersteller, sondern oft sogar nach Modell und Softwareversion. Allein Cisco hat nicht nur IOS und dessen Nachfolger IOS-XE im Angebot, sondern auch noch NX-OS für seine Nexus-Switches, die auf Rechenzentren ausgelegt sind. Hinzu kommen seine Firewalls, Adaptive Security Appliances (ASA) und ältere Wireless-LAN-Controller. Zudem variieren die Rückgabewerte zum Teil sogar nach Updates, was ein automatisiertes Parsing des Outputs und folglich die Automatisierung wiederkehrender Tätigkeiten auf Basis dieser Daten zusätzlich erschwert.

Kommentare lesen (2 Beiträge)