software defined networking Archiv - credativ®

Wie und wann man Software-Defined Networks in Proxmox VE einsetzt

Proxmox VE ist nach wie vor die aktuelle Go-to-Lösung, wenn es um VM-Workloads unter Verwendung von Open-Source-Software geht. In der Vergangenheit haben wir bereits verschiedene Themen rund um Proxmox behandelt, wie z. B. die Migration virtueller Maschinen von einer ESXi-Umgebung in Proxmox-Umgebungen, die Verwendung von Proxmox zusätzlich zu NVMe-oF für bahnbrechende Leistung oder die Integration des Proxmox Backup Servers in einen Proxmox-Cluster.
Wir sehen deutlich, dass es noch viele andere sehr interessante Themen rund um Proxmox gibt, und deshalb wollen wir das SDN-Feature (Software Defined Networking) in Proxmox behandeln. Aus historischer Sicht ist dieses Feature nicht wirklich neu – es wurde bereits in der Proxmox-Weboberfläche mit Proxmox 6.2 eingeführt, war aber immer als experimentelles Feature definiert. Dies änderte sich schließlich mit Proxmox 8.x, wo dies nicht nur vollständig integriert wurde, sondern mit Proxmox 8.1 auch das wesentliche Feature der IP-Adressverwaltung (IPAM) erhielt. Auch die SDN-Integration ist jetzt standardmäßig in Proxmox installiert. Sie sollten jedoch beachten, dass dies nicht bedeutet, dass bereits alle Funktionen stabil sind – IPAM mit DHCP-Verwaltung sowie FRRouting und seine Controller-Integration befinden sich noch in einem Tech-Preview-Status. Bisher klingt das alles sehr interessant!

Proxmox VE in SDN (Symbolbild) Was ist Software-Defined Networking?

Aber was ist SDN und was hat es mit Proxmox zu tun? Software-Defined Networking (SDN), das auch oft nur als Software-Defined Network bezeichnet wird, ist eine Netzwerkarchitektur, die die Netzwerkintelligenz in einem programmierbaren Controller zentralisiert, der eine globale Sicht auf das Netzwerk verwaltet. Diese Architektur ermöglicht dynamische, skalierbare und automatisierte Netzwerkkonfigurationen, im Gegensatz zu traditionellen Netzwerken, bei denen Steuerungs- und Datenebenen innerhalb von Netzwerkgeräten eng miteinander verbunden sind. Zu den Vorteilen von SDN gehören erhöhte Flexibilität und Agilität, zentralisierte Verwaltung, verbesserte Ressourcenauslastung und erhöhte Sicherheit. Diese Vorteile ermöglichen eine schnelle Bereitstellung und Anpassung von Netzwerkdiensten, vereinfachen die Verwaltung großer und komplexer Netzwerke, verbessern die Effizienz der Ressourcenzuweisung und erleichtern die Implementierung umfassender Sicherheitsrichtlinien und -überwachung.
Proxmox VE unterstützt auch SDN, um seine Fähigkeiten bei der Verwaltung virtualisierter Netzwerke zu erweitern. Mit SDN bietet Proxmox VE eine zentralisierte Netzwerkverwaltung über eine einheitliche Schnittstelle, die die Verwaltung virtueller Netzwerke über mehrere Knoten hinweg vereinfacht. Administratoren können virtuelle Netzwerke an einem zentralen Punkt für den gesamten Cluster definieren und verwalten, was die Komplexität der Netzwerkkonfigurationen reduziert. SDN in Proxmox VE ermöglicht auch die Netzwerkvirtualisierung und ermöglicht die Erstellung virtueller Netzwerke, die von der physischen Netzwerkinfrastruktur abstrahiert sind. Diese Fähigkeit unterstützt isolierte Netzwerkumgebungen für verschiedene virtuelle Maschinen (VMs) und Container.
Die dynamische Netzwerkbereitstellung ist ein weiteres wichtiges Merkmal von SDN in Proxmox VE, das SDN nutzt, um Netzwerkressourcen dynamisch basierend auf den Anforderungen von VMs und Containern zuzuweisen und so die Leistung und Ressourcenauslastung zu optimieren. Die Integration von Proxmox VE mit Open vSwitch (OVS) verbessert diese Fähigkeiten. OVS ist ein mehrschichtiger virtueller Switch in Produktionsqualität, der für SDN entwickelt wurde und erweiterte Netzwerkfunktionen wie Traffic Shaping, QoS und Netzwerktrennung unterstützt. Darüber hinaus unterstützt Proxmox VE erweiterte Netzwerkfunktionen wie VLAN-Tagging, Network Bonding und Firewall-Regeln und bietet umfassende Netzwerkverwaltungsfunktionen.

Wie man ein SDN konfiguriert

Nachdem wir nun die Grundlagen und Möglichkeiten von Software-Defined Networking (SDN) kennen, wird es interessant, ein solches Netzwerk innerhalb eines Proxmox-Clusters einzurichten.

Proxmox bietet Unterstützung für Software-Defined Networking (SDN), sodass Benutzer verschiedene Arten von Netzwerkkonfigurationen integrieren können, um ihren spezifischen Netzwerkanforderungen gerecht zu werden. Mit Proxmox haben Sie die Flexibilität, aus verschiedenen SDN-Typen auszuwählen, darunter „Simple“, das wahrscheinlich auf unkomplizierte Netzwerkeinrichtungen ohne Bedarf an erweiterten Funktionen abzielt. Für Umgebungen, die eine Netzwerksegmentierung erfordern, ist VLAN-Unterstützung verfügbar, die die Möglichkeit bietet, den Datenverkehr innerhalb verschiedener virtueller LANs zu isolieren und zu verwalten. Komplexere Szenarien profitieren möglicherweise von der QinQ-Unterstützung, die mehrere VLAN-Tags auf einer einzigen Schnittstelle ermöglicht. Auch und sehr interessant für Rechenzentren: Proxmox bietet auch VxLAN-Unterstützung, die Layer-2-Netzwerke über eine Layer-3-Infrastruktur erweitert, was die Anzahl der möglichen VLANs erheblich erhöht, die sonst auf 4096 VLANs begrenzt wären. Zuletzt zu erwähnen ist die EVPN-Unterstützung, die ebenfalls Teil des SDN-Angebots von Proxmox ist, die erweiterte Layer-2- und Layer-3-Virtualisierung ermöglicht und eine skalierbare Steuerungsebene mit BGP (Border Gateway Protocol) für Multi-Tenancy-Umgebungen bietet.

In diesem Leitfaden führen wir Sie durch den Prozess der Einrichtung eines optimierten Software-Defined Network (SDN) innerhalb einer Proxmox-Clusterumgebung. Das Hauptziel ist die Einrichtung eines neuen Netzwerks, einschließlich seiner eigenen Netzwerkkonfiguration, die automatisch auf alle Knoten innerhalb des Clusters übertragen wird. Dieses neu erstellte Netzwerk wird durch seinen eigenen IP-Bereich erstellt, in dem virtuelle Maschinen (VMs) ihre IP-Adressen dynamisch über DHCP erhalten. Diese Einrichtung macht eine manuelle IP-Weiterleitung oder Network Address Translation (NAT) auf den Host-Maschinen überflüssig. Ein weiterer Vorteil dieser Konfiguration ist die Konsistenz, die sie bietet; das Gateway für die VMs bleibt immer konstant, unabhängig von dem spezifischen Host-Knoten, auf dem sie betrieben werden.

Konfiguration

Die Konfiguration von Software-Defined Networking (SDN) ist in den neuesten Proxmox VE-Versionen sehr einfach geworden, da der gesamte Prozess in der Proxmox-Weboberfläche durchgeführt werden kann. Daher verbinden wir uns einfach mit der Proxmox-Management-Weboberfläche, die typischerweise erreichbar ist unter:

Die SDN-Optionen sind im Datacenter-Kapitel im Unterkapitel SDN integriert. Alle weiteren Arbeiten werden nur innerhalb dieses Kapitels durchgeführt. Daher navigieren wir zu:
–> Datacenter
—-> SDN
——–> Zonen

Das Menü auf der rechten Seite bietet die Möglichkeit, eine neue Zone hinzuzufügen, wobei die neue Zone vom Typ Simple ausgewählt wird. Es öffnet sich ein neues Fenster, in dem wir direkt die erweiterten Optionen unten aktivieren. Anschließend werden weitere erforderliche Details angegeben.

 

ID: devnet01
MTU: Auto
Nodes: All
IPAM: pve
Automatic DHCP: Activate

 

Die ID stellt die eindeutige Kennung dieser Zone dar. Es kann sinnvoll sein, ihr einen wiedererkennbaren Namen zu geben. Normalerweise müssen wir die MTU-Größe für diese Art von Standard-Setups nicht anpassen. Es kann jedoch immer einige Sonderfälle geben. In den Node-Abschnitten kann diese Zone bestimmten Nodes oder einfach allen zugewiesen werden. Es kann auch Szenarien geben, in denen Zonen nur auf bestimmte Nodes beschränkt sind. Entsprechend unseren erweiterten Optionen können weitere Details wie DNS-Server und auch die Forward- & Reverse-Zonen definiert werden. Für dieses grundlegende Setup wird dies nicht verwendet, aber die automatische DHCP-Option muss aktiviert werden.

Nun werden die nächsten Schritte im Kapitel VNets durchgeführt, wo die zuvor erstellte Zone mit einem virtuellen Netzwerk verknüpft wird. Im selben Schritt werden wir auch zusätzliche Netzwerkinformationen wie den Netzwerkbereich usw. angeben.

Beim Erstellen eines neuen VNet muss eine Kennung oder ein Name angegeben werden. Es ist oft sinnvoll, den Namen des virtuellen Netzwerks an den zuvor generierten Zonennamen anzupassen. In diesem Beispiel werden die gleichen Namen verwendet. Optional kann ein Alias definiert werden. Wichtig ist die Auswahl der gewünschten Zone, die verwendet werden soll (z. B. devnet01). Nach dem Erstellen des neuen VNet haben wir die Möglichkeit, im selben Fenster ein neues Subnetz zu erstellen, indem wir auf die Schaltfläche Create Subnet klicken.

Innerhalb dieses Dialogs werden einige grundlegende Netzwerkinformationen eingegeben. Im Allgemeinen müssen wir das gewünschte Subnetz in CIDR-Notation angeben (z. B. 10.11.12.0/24). Die Definition der IP-Adresse für das Gateway ist ebenfalls möglich. In diesem Beispiel wird das Gateway auf der IP-Adresse 10.11.12.1 platziert. Wichtig ist die Aktivierung der Option SNAT. SNAT (Source Network Address Translation) ist eine Technik, um die Quell-IP-Adresse des ausgehenden Netzwerkverkehrs so zu ändern, dass es so aussieht, als ob er von einer anderen IP-Adresse stammt, die normalerweise die IP-Adresse des Routers oder der Firewall ist. Diese Methode wird häufig verwendet, um mehreren Geräten in einem privaten Netzwerk den Zugriff auf externe Netzwerke zu ermöglichen.

Nach dem Erstellen und Verknüpfen der Zone, des VNet und des Subnetzes kann die Konfiguration einfach auf der Weboberfläche angewendet werden, indem auf die Schaltfläche „Apply“ geklickt wird. Die Konfiguration wird nun mit den gewünschten Nodes synchronisiert (in unserem Beispiel alle).

Nutzung

Nach dem Anwenden der Konfiguration auf die Nodes innerhalb des Clusters müssen virtuelle Maschinen noch diesem Netzwerk zugewiesen werden. Glücklicherweise kann dies einfach über die reguläre Proxmox-Weboberfläche erfolgen, die nun auch das neu erstellte Netzwerk devnet01 im Networking-Kapitel der VM bereitstellt. Aber auch bereits vorhandene virtuelle Maschinen können diesem Netzwerk zugewiesen werden.

Wenn es um DevOps und Automatisierung geht, ist dies auch in der API verfügbar, wo virtuelle Maschinen dem neuen Netzwerk zugewiesen werden können. Eine solche Aufgabe könnte im folgenden Beispiel in Ansible wie folgt aussehen:

- name: Create Container in Custom Network
community.general.proxmox:
vmid: 100
node: de01-dus01-node03
api_user: root@pam
api_password: {{ api_password }}
api_host: de01-dus01-node01
password: {{ container_password }}
hostname: {{ container_fqdn }}
ostemplate: 'local:vztmpl/debian-12-x86_64.tar.gz'
netif: '{"net0":"name=eth0,ip=dhcp,ip6=dhcp,bridge=devnet01"}'

Virtuelle Maschinen, die diesem Netzwerk zugewiesen sind, erhalten sofort IP-Adressen innerhalb unseres zuvor definierten Netzwerks 10.11.12.0/24 und können ohne weitere Bedürfnisse auf das Internet zugreifen. VMs können auch über Nodes im Cluster verschoben werden, ohne dass das Gateway angepasst werden muss, selbst wenn ein Node heruntergefahren oder für Wartungsarbeiten neu gestartet wird.

Fazit

Zusammenfassend lässt sich sagen, dass die Integration von Software-Defined Networking (SDN) in Proxmox VE einen großen Vorteil aus technischer Sicht, aber auch aus Benutzersicht darstellt, da diese Funktion auch über die Proxmox-Weboberfläche nutzbar ist. Diese einfache Konfiguration ermöglicht es auch Personen mit begrenzter Netzwerkerfahrung, noch komplexere Netzwerkeinrichtungen einzurichten und zu verwalten.

Proxmox erleichtert es auch mit einfachen SDNs, grundlegende Netzwerke zu erstellen, die virtuelle Maschinen mit dem Internet verbinden. Sie müssen sich nicht mit komplizierten Einstellungen oder Gateways auf den Hauptknoten befassen. Dies beschleunigt die Inbetriebnahme virtueller Setups und verringert die Wahrscheinlichkeit von Fehlern, die zu Sicherheitsproblemen führen könnten.

Für Leute, die gerade erst anfangen, hat Proxmox eine benutzerfreundliche Website, die es einfach macht, Netzwerke einzurichten und zu steuern. Das ist wirklich hilfreich, weil es bedeutet, dass sie nicht viel kompliziertes Zeug lernen müssen, um loszulegen. Stattdessen können sie mehr Zeit damit verbringen, mit ihren virtuellen Computern zu arbeiten, und sich nicht zu viele Sorgen darüber machen, wie sie alles verbinden.

Leute, die mehr über Technologie wissen, werden es mögen, wie Proxmox ihnen erlaubt, komplexe Netzwerke einzurichten. Das ist gut für große Setups, weil es das Netzwerk besser laufen lassen, mehr Verkehr bewältigen und verschiedene Teile des Netzwerks voneinander trennen kann.

Genau wie andere nützliche Integrationen (z. B. Ceph) bietet auch die SDN-Integration große Vorteile für seine Benutzerbasis und zeigt die laufende Integration nützlicher Tools in Proxmox.