
greenbutterfly - stock.adobe.com
Cloud-Netzwerkautomatisierung: Vom Konzept zur Umsetzung
Cloud-Netzwerkautomatisierung kann die Integration von Networking- und Cloud-Ressourcen vereinfachen. Klare Ziele und einheitliche Tools ermöglichen einen reibungslosen Ablauf.
Die Cloud-Netzwerkautomatisierung ist ein strategisches Framework, das Cloud-Computing-Prinzipien mit automatisierten Netzwerkmanagementverfahren kombiniert. Es unterstützt Unternehmen dabei, die Integration von Networking-Ressourcen in Cloud-Umgebungen zu verwalten und zu orchestrieren.
Unternehmen können mittels Automatisierung ihr Netzwerk mit einem Cloud Provider verbinden. Zuvor sollten sie jedoch abklären, wie der Provider Netzwerkautomatisierung in seinem Data Center einsetzt und wie sie dessen Services nutzen wollen. Cloud-Anbieter setzen beispielsweise auf Technologien wie Software-defined Networking (SDN) und Network Functions Virtualization (NFV), um Kunden anzubinden, die häufig IaC-Tools (Infrastructure as Code) zur Konfiguration ihrer Netzwerke verwenden.
Dieser Artikel befasst sich mit der Cloud-Netzwerkautomatisierung und der Rolle, die sie bei der Orchestrierung von Cloud-Ressourcen und Netzwerkkomponenten spielt. Er stellt zudem Best Practices vor, die Netzwerktechniker für die Automatisierung von Netzwerken anwenden sollten, und zeigt, wie sie potenzielle Herausforderungen bewältigen können.
Netzwerkautomatisierung in Data Centern von Cloud Providern
SDN und NFV haben sich im Data Center etabliert, insbesondere unter Cloud-Anbietern und Hyperscalern, da beide Programmierbarkeit, Virtualisierung und zentrales Management ermöglichen.
SDN hilft, Netzwerkprobleme zu lösen, die erst mit dem Aufkommen von VMs entstanden sind. Dazu gehören unter anderem die folgenden Punkte:
- Eine MAC-Adresstabelle mit einer begrenzten Anzahl von Einträgen.
- Es werden maximal 4.094 virtuelle LANs unterstützt.
- Das Spanning Tree Protocol rekonvergiert nicht schnell genug.
- Die fehlende Möglichkeit, den Ost-West-Traffic auf verschiedene VMs zu verteilen, insbesondere beim High Performance Computing.
Wie SDN die Netzwerkautomatisierung ermöglicht
APIs sind der effektivste Weg, um das Netzwerk mittels SDN zu automatisieren. In dieser Implementierung stellen SDN-Geräte auf dem Infrastruktur-Layer ihre Konfigurationsattribute über die YANG-Modellierungssprache zur Verfügung. YANG unterstützt außerdem Protokolle wie NETCONF und RESTCONF, die es verwendet, um Konfigurationswerte von Entwicklern zu akzeptieren.
Entwickler können per Python Konfigurationsdaten von Geräten an den zentralen Netzwerk-Controller senden. Der Controller nutzt dann bereitgestellte Northbound- und Southbound-Schnittstellen, um diese Konfigurationsdaten zu übermitteln und sie auf die Geräte anzuwenden. Der gesamte Prozess funktioniert über RESTCONF, das die Datenübertragung per HTTP ermöglicht.
Traditionell bieten Provider SDN-Produkte an, die auf imperativer Steuerung beruhen. Aufgrund von Bedenken im Hinblick auf Single Points of Failure sind die meisten Anbieter jedoch davon abgerückt und haben sich für einen deklarativen Ansatz entschieden.
So unterscheiden sich die beiden Ansätze:

- Imperative Steuerung: Die Benutzer müssen jeden Teil des Netzwerks einrichten und bis ins kleinste Detail verwalten. Wenn sie zum Beispiel das Link Aggregation Control Protocol (LACP) konfigurieren wollen, müssen sie die Konfiguration auf dem Controller vornehmen.
- Deklarative Steuerung: Die Benutzer legen das Endziel der Konfiguration in Form einer Richtlinie fest. Anschließend wenden die mit dem Controller verbundenen Geräte die Konfiguration selbstständig an. Bei diesem Ansatz kommt RESTCONF an der Southbound-Schnittstelle des SDN-Controllers unter Umständen nicht zum Einsatz.
Im folgenden Beispiel verwenden wir Python, um mit einem SDN-Controller zu interagieren, der mit drei Netzwerk-Switches verbunden ist.
Der nachstehende Code interagiert über die REST API mit dem API-Endpunkt des SDN-Controllers, so dass er alle damit verbundenen Netzwerkgeräte ausgeben kann. Er sendet eine GET-Anfrage, um Informationen über die jeweiligen Netzwerkgeräte abzurufen.
import requests
import json
# API endpoint and headers
api_url = "<http://172.16.20.254/api/v1/network-device>"
headers = {"X-Auth-Token": "my-token"}
# Make GET request
response = requests.get(api_url, headers=headers, verify=False)
# Check status and print network device details
if response.status_code == 200:
for networkDevice in response.json()["response"]:
print(networkDevice["hostName"], "\\t", networkDevice["managementIP"], "\\t", networkDevice["connectedInterfaceName"])
else:
print("Error:", response.status_code)
Hier ist die Ausgabe mit Informationen zu den einzelnen Switches:
SW1 192.168.1.10 GigabitEthernet0/1
SW2 192.168.1.11 GigabitEthernet0/2
SW3 192.168.1.12 GigabitEthernet0/3
Wie NFV die Netzwerkautomatisierung ermöglicht
Mit NFV können Unternehmen mehrere Netzwerkgeräte – sogenannte Virtual Network Functions (VNF) – auf einem einzigen Compute-Server ausführen. Unter anderem ermöglicht NFV es Unternehmen, ihre Ressourcen schnell zu skalieren, um flexibel auf veränderte Anforderungen reagieren zu können.
Gängige Beispiele sind virtualisierte Router – darunter der Cloud-native Router von Juniper oder der 8000V von Cisco –, die auf einem Public-Cloud-Marktplatz verfügbar sind. Unternehmen können diese Router als VMs bei Cloud Providern wie AWS oder der Google Cloud Platform bereitstellen. Die Router können sich über SD-WAN mit einem On-Premises-Netzwerk verbinden.
Diese Konfiguration könnte wie in Abbildung 2 aussehen.

Es ist ebenfalls möglich, diese VNF als Kubernetes-Pod bereitzustellen. Ein Open-Source-Projekt namens KubeVirt ermöglicht es Benutzern, VMs als Pod auszuführen.
Die meisten VNF-Geräte unterstützen die Netzwerkautomatisierung und laufen auf Python. Sie setzen Python für folgende Zwecke ein:
- Zero Touch Provisioning: Python stellt automatisch die initiale Netzwerkkonfiguration eines Geräts bereit. Die Konfiguration wird beispielsweise auf einem TFTP-Server (Trivial File Transfer Protocol) gespeichert. Wenn das Gerät startet, nutzt es das Dynamic Host Configuration Protocol (DHCP), um seine IP-Adresse sowie Informationen über den Namen der Python-Konfigurationsdatei und den Weg zum TFTP-Server zu erhalten. Sobald diese Informationen vorliegen, übernimmt das Gerät die Konfiguration.
- Automatisiertes Netzwerkmanagement: Python verwendet RESTCONF oder NETCONF, um sich mit den Geräten zu verbinden und Statusinformationen abzurufen, Konfigurationen zu ändern und Updates remote vorzunehmen.
Ältere Netzwerkbetriebssysteme, die weder das RESTCONF- noch das NETCONF-Protokoll unterstützen, nutzen stattdessen die Befehlszeile (Command-line Interface, CLI). In diesen Fällen können Unternehmen auf Netmiko, eine Open-Source-Python-Bibliothek, zurückgreifen, um Aufgaben über CLI-Befehle per SSH zu automatisieren.
Netzwerkautomatisierung in der Kunden-Cloud
In Public Clouds können Kunden ein isoliertes virtuelles Netzwerk erstellen, um ihre Services bereitzustellen. Dieser Prozess lässt sich manuell über eine Konsole oder per IaC durchführen, wenn Cloud-Netzwerkautomatisierung das Ziel ist.
Die beliebtesten Open-Source-IaC-Tools sind Terraform, OpenTofu und Pulumi. Terraform und OpenTofu verfolgen einen deklarativen Ansatz, während Pulumi Allzwecksprachen nutzt, das Zielmodell arbeitet dennoch deklarativ. Das auf diese Weise erzeugte private virtuelle Netzwerk umfasst ein Data Center und hilft beim Disaster Recovery.
Im nächsten Beispiel werden wir Terraform verwenden, um ein isoliertes virtuelles Netzwerk auf AWS zu erstellen.

Die folgende Terraform-Konfiguration, die in der HashiCorp Configuration Language (HCL) geschrieben ist, stellt ein isoliertes virtuelles Netzwerk auf AWS bereit, das Zugang zum Internet hat. Sie erstellt zunächst eine Virtual Public Cloud (VPC), in der Unternehmen Ressourcen in der Public-Cloud-Umgebung in Betrieb nehmen können.




Danach wird ein Subnetz innerhalb der VPC eingerichtet und ein Internet-Gateway angelegt, das den Ressourcen im Netzwerk den Zugang zum Internet ermöglicht.
Zum Schluss erstellt die Konfiguration eine Routentabelle, die auf das Subnetz verweist und den Netzwerkverkehr verwaltet.
Best Practices für die Implementierung der Netzwerkautomatisierung
Unternehmen können anerkannte Best Practices befolgen, um eine stabile, sichere und skalierbare Cloud-Netzwerkautomatisierung zu implementieren. Im Folgenden finden Sie einige nützliche Schritte:
- Definieren Sie die Ziele und Strategie: Legen Sie klare Automatisierungsziele fest, zum Beispiel Erreichen von Skalierbarkeit, Verbesserung der Leistung oder Steigerung der Effizienz. Wenn die Ziele klar sind, können die IT-Teams mit kleinen Projekten beginnen, was die Integration einfacher und überschaubarer macht.
- Nutzen Sie deklarative Konfigurationen: Definieren Sie Endziele, nicht jedes einzelne Detail. Dies gilt insbesondere für dynamische Cloud-Umgebungen.
- Standardisieren Sie Tools und Protokolle: Halten Sie sich an einige wenige Automatisierungs-Tools und Protokolle, etwa Terraform und NETCONF, um Komplexität und Fehler zu reduzieren.
- Sichern Sie Automatisierungsendpunkte ab: Schützen Sie API-Schlüssel, und beschränken Sie den Zugriff auf Automatisierungs-Tools durch rollenbasierte Zugriffskontrolle (Role-based Access Control, RBAC), Netzwerksegmentierung und andere Techniken, um unbefugte Änderungen zu verhindern.
- Sorgen Sie für Monitoring und Alerting: Richten Sie Echtzeitüberwachung und Alarme ein, um Probleme frühzeitig zu erkennen und den Zustand des Netzwerks zu beobachten.
- Führen Sie zunächst Tests in einer Sandbox durch: Validieren Sie Automatisierungsskripte in einer nicht produktiven Umgebung, um Unterbrechungen im laufenden Betrieb zu vermeiden. Erstellen Sie zum Beispiel einen Terraform Workspace, um die Umgebung zu isolieren, oder schreiben Sie einen Python-Unit-Test mit Pytest, um den Code zu validieren.
- Nutzen Sie Versionskontrolle und eine CI/CD-Pipeline (Continuous Integration/Continuous Delivery): Verwenden Sie Git, um Änderungen nachzuverfolgen, da es bei Problemen schnelle Rollbacks ermöglicht. Eine CI/CD-Pipeline kann die Bereitstellungen optimieren, Fehler reduzieren und gewährleisten, dass Konfigurationen und Skripte stets getestet und produktionsreif sind.
- Ergänzen Sie Failover- und Selbstheilungsmechanismen: Integrieren Sie Failover-Strategien in Automatisierungs-Workflows, um die Zuverlässigkeit sicherzustellen.
- Aktualisieren Sie die Dokumentation: Halten Sie Automatisierungsskripte und Netzwerkdokumentation auf dem neuesten Stand, um das Troubleshooting zu erleichtern.
- Ohne Weiterbildung keine Verbesserungen: Motivieren Sie die IT-Teams, Zertifizierungsprüfungen abzulegen, damit Ihre Mitarbeiter sich mit neuen Technologien vertraut machen können.
So bewältigen Sie Herausforderungen bei der Cloud-Netzwerkautomatisierung
Unternehmen werden bei der Implementierung der Cloud-Netzwerkautomatisierung wahrscheinlich mit verschiedenen Herausforderungen konfrontiert. Nachstehend sind einige Möglichkeiten aufgeführt, um diese Probleme zu lösen:
- Multivendor-Komplexität: Tools und Protokolle unterschiedlicher Hersteller können die Automatisierung in verschiedenen Umgebungen erschweren. Standardisieren Sie anbieterneutrale Protokolle wie NETCONF und RESTCONF, und verwenden Sie Bibliotheken wie Netmiko und Ansible, um verschiedene Anbieter zu überwachen.
- Sicherheitsrisiken: Automatisierungsendpunkte können das Netzwerk potenziellen Sicherheitsbedrohungen aussetzen. Implementieren Sie RBAC, verschlüsseln Sie Daten, und aktivieren Sie die Protokollierung, um Endpunkte zu schützen und den Zugriff zu überwachen.
- Legacy-Geräte: Älteren Geräten fehlt unter Umständen die Unterstützung für moderne APIs, was die Automatisierung einschränkt. Nutzen Sie CLI-basierte Tools wie Netmiko für die SSH-basierte Automatisierung auf Legacy-Geräten, und planen Sie eine schrittweise Aufrüstung auf API-kompatible Modelle.
- Konfigurationsabweichungen: Häufige Updates können zu Inkonsistenzen bei der Konfiguration verschiedener Geräte führen. Verwenden Sie CI/CD-Pipelines mit Versionskontrolle und automatisierten Compliance-Prüfungen, um eine Abweichung zu verhindern.
- Probleme mit der Skalierbarkeit: Wenn Netzwerke wachsen, haben Automatisierungs-Workflows möglicherweise Schwierigkeiten, damit Schritt zu halten. Entwickeln Sie mithilfe von SDN-Controllern ein Framework, bevorzugen Sie deklarative Konfigurationen, und überwachen Sie die Automatisierungs-Performance aktiv.
- Begrenztes Fachwissen: Manchmal verfügen die Teams nicht über das notwendige Know-how, um das Netzwerk effektiv zu automatisieren. Investieren Sie in Schulungen mit Schwerpunkt auf Python, IaC-Tools und relevanten Netzwerkprotokollen.
- Troubleshooting und Sichtbarkeit: Die Automatisierung kann mitunter die Vorgänge im Netzwerk verschleiern, was die Fehlersuche erschwert. Verwenden Sie SDN-Controller und Monitoring Tools, um einen Echtzeiteinblick und eine detaillierte Protokollierung zu ermöglichen.
Die Cloud-Netzwerkautomatisierung ist der Schlüssel für eine reibungslose Cloud-Integration. Cloud-Services können Unternehmen dabei helfen, die Leistung zu steigern, die Sicherheit zu erhöhen und den Betrieb zu skalieren. Unternehmen können ihre Netzwerkmanagementprozesse durch den Einsatz von SDN und NFV in Kombination mit IaC-Tools optimieren. Da sich die Cloud-Technologie immer weiterentwickelt, wird die Automatisierung für Unternehmen von entscheidender Bedeutung sein, um wettbewerbsfähig zu bleiben und Innovationen voranzutreiben.