Wie man

Open vSwitch unter CentOS konfigurieren | RHEL | Fedora

Open vSwitch unter CentOS konfigurieren | RHEL | Fedora

In unserem aktuellen Leitfaden haben wir die Installation von Open vSwitch auf dem CentOS / RHEL 8 Linux-Server besprochen. In diesem Artikel erfahren Sie weiterhin, wie Sie Netzwerkschnittstellen für die Verwendung mit Open vSwitch konfigurieren. Ich demonstriere die Erstellung von VLAN-Schnittstellen, das Erstellen von OVS Bridge und Bonds mit Open vSwitch durch manuelles Bearbeiten von Konfigurationsdateien oder Verwenden von Hilfsbefehlszeilentools wie os-net-config.

Ich finde die Verwendung des os-net-config-Skripts die beste und effizienteste Art, Open vSwitch zu konfigurieren, anstatt die Konfigurationsdateien in Ihrem CentOS-, RHEL- oder Fedora-Linux-System manuell zu bearbeiten. Dies ist die Methode, an der wir in diesem Handbuch festhalten, aber Sie können sich auf die generierten Netzwerkkonfigurationsskripte beziehen, um zu erfahren, wie die tatsächlichen Zeilen manuell hinzugefügt werden sollten.

Schritt 1: Installieren Sie Open vSwitch auf CentOS | RHEL | Fedora

Möglicherweise ist Open vSwitch bereits auf dem Computer installiert, an dem Sie arbeiten. Falls nicht installiert, lesen Sie unsere Anleitung unten für die Installation auf RHEL / CentOS 8:

So installieren Sie Open vSwitch auf CentOS 8 | RHEL 8

Verwenden Sie für CentOS 7 die Befehle:

sudo yum install -y epel-release centos-release-openstack-train sudo yum install openvswitch libibverbs

Auf Fedora:

sudo dnf install openvswitch libibverbs

Aktivieren und aktivieren Sie den openvswitch-Dienst:

sudo systemctl enable --now openvswitch

Bestätigen Sie, indem Sie den Servicestatus überprüfen:

$ systemctl status openvswitch ● openvswitch.service - Open vSwitch Loaded: geladen (/usr/lib/systemd/system/openvswitch.Bedienung; aktiviert; Herstellervoreinstellung: deaktiviert) Aktiv: aktiv (beendet) seit Sa 06.06.2020 13:56:42 UTC; vor 1s Prozess: 5826 ExecStart=/bin/true (code=beendet, status=0/ERFOLG) Main PID: 5826 (code=beendet, status=0/ERFOLG) 

Schritt 2: Installieren Sie das Netzwerkkonfigurationstool os-net-config

Als nächstes können wir installieren os-net-config CLI-Tool, das die Konfiguration des Hostnetzwerks über ein YAML- oder JSON-Dateiformat ermöglicht.

Standardmäßig os-net-config verwendet eine YAML-Konfigurationsdatei unter /etc/os-net-config/config.jaml. Aber das kann über die angepasst werden--Konfigurationsdatei(-c) CLI-Option.

Installieren Sie os-net-config aus dem OpenStack-Repository

Wenn Sie das OpenStack-Repository konfiguriert haben, können Sie das Tool daraus installieren.

sudo yum installiere os-net-config

Weitere Informationen zum Paket:

$ rpm -qi os-net-config Name : os-net-config Version : 11.3.1 Freigabe: 1.el7 Architektur: noarch Installationsdatum: Sa 06 Jun 2020 14:10:08 UTC Group : Unspecified Size : 3848910 License : ASL 2.0 Signatur : RSA/SHA1, Fr 17. Jan. 2020 13:32:05 UTC, Schlüssel-ID f9b9fee7764429e6 Quell-RPM : os-net-config-11.3.1-1.el7.src.rpm Build Date : Di 07 Jan 2020 08:43:47 AM UTC Build Host : c1bj.rdu2.Centos.org Relocations : (nicht verschiebbar) Packager : CBS <[email protected]> Anbieter: CentOS URL: http://pypi.Python.org/pypi/os-net-config Zusammenfassung : Konfigurationstool für das Hostnetzwerk Beschreibung : Konfigurationstool für das Hostnetzwerk für OpenStack. 

Installieren Sie os-net-config mit Pip

Das Netzwerkkonfigurationstool os-net-config wird als Python-Paket verteilt, das mit pip|pip3 installiert werden kann:

Fedora / CentOS 8:

sudo dnf installiere python3-pip

CentOS 7:

sudo yum install -y epel-release sudo yum -y install python-pip sudo pip install os-net-config

Wenn die Installation erfolgreich war, sollten Sie am Ende eine Ausgabe ähnlich der folgenden sehen.

… https://Dateien herunterladenfile.pythongehostet.org/packages/df/f5/9c052db7bd54d0cbf1bc0bb6554362bba1012d03e5888950a4f5c5dadc4e/scandir-1.10.0.Teer.gz Gesammelte Pakete installieren: pbr, anyjson, six, monotonic, dnspython, greenlet, enum34, eventlet, iso8601, netaddr, wrapt, debtcollector, stevedore, oslo.i18n, rfc3986, PyYAML, certifi, idna, chardet, urllib3, Anfragen, oslo.config, pytz, netifaces, pyparsing, oslo.utils, befestigungen, oslo.Parallelität, pyrsistent, attrs, unknown, unknown, contextlib2, scandir, pathlib2, importlib-metadata, functools32, jsonschema, pyudev, os-net-config Setup wird ausgeführt.py install für anyjson… fertig Setup wird ausgeführt.py install for wrapt… done Setup wird ausgeführt.py install für DebtCollector… fertig Setup läuft.py install für stevedore… fertig Setup wird ausgeführt.py installieren für oslo.i18n… fertig Setup läuft.py install für PyYAML… done Vorhandene Installation gefunden: chardet 2.2.1 Deinstallieren von chardet-2.2.1: Chardet-2 erfolgreich deinstalliert.2.1 Lauf-Setup.py installieren für oslo.config… fertig Setup wird ausgeführt.py installieren für oslo.utils… done Setup wird ausgeführt.py installieren für oslo.Parallelität… fertig Setup wird ausgeführt.py install for pyrsistent… fertig Setup wird ausgeführt.py install für unbekannt… fertig Setup wird ausgeführt.py install für unbekannt… fertig Setup wird ausgeführt.py install für scandir… fertig Setup wird ausgeführt.py install für functools32… done Vorhandene Installation gefunden: pyudev 0.15 Deinstallieren von pyudev-0.15: Pyudev-0 erfolgreich deinstalliert.15 Lauf-Setup.py install für pyudev… fertig Setup läuft.py install for os-net-config… done PyYAML-5 erfolgreich installiert.3.1 anyjson-0.3.3 attrs-19.3.0 Zertifikat-2020.4.5.1 Kartet-3.0.4 Kontextlib2-0.6.0.Post1 Schuldeneintreiber-2.1.0 dnspython-1.16.0 enum34-1.1.10 Eventlet-0.25.2 Befestigungselemente-0.15 Funktools32-3.2.3.post2 greenlet-0.4.16 idna-2.9 importlib-metadata-1.6.1 iso8601-0.1.12 jsonschema-3.2.0 monoton-1.5 Netzadresse-0.7.19 Netzgesichter-0.10.9 os-net-config-12.3.0 Oslo.Gleichzeitigkeit-4.1.0 Oslo.config-8.1.0 Oslo.i18n-5.0.0 Oslo.utils-4.2.0 pathlib2-2.3.5 pbr-5.4.5 pyparsing-2.4.7 beständig-0.16.0 pytz-2020.1 pyudev-0.22.0 Anfragen-2.23.0 rfc3986-1.4.0 scandir-1.10.0 sechs-1.fünfzehn.0 Stauer-2.0.0 unbekannt-0.0.0 unbekannt-0.0.0 URL3-1.25.9 Wrapt-1.12.1 Sie verwenden Pip-Version 8.1.2, jedoch Version 20.1.1 ist verfügbar. Sie sollten ein Upgrade über den Befehl 'pip install --upgrade pip' in Betracht ziehen.

Bestätigen Sie, ob sich der Befehl nach der Installation in Ihrem PATH befindet.

$ welche os-net-config /usr/bin/os-net-config

Schritt 3: Konfigurieren Sie Open vSwitch mit os-net-config

Nach der Installation des openvswitch-Pakets und des os-net-config-Befehlszeilentools können wir mit der Konfiguration von OVS-Schnittstellen, Bridge und Bonding nach Bedarf für Ihren Anwendungsfall beginnen.

Beispiel 1: Konfiguration einer einzelnen Schnittstelle mit statischer IP-Adresse

Erstellen Sie eine YAML-Konfigurationsdatei:

$ vim ovs-Schnittstelle.yml

Konfigurieren Sie wie unten.

network_config: - Typ: Schnittstellenname: eth1 use_dhcp: false use_dhcpv6: false Adressen: - ip_netmask: 172.21.200.10/24 Routen: - ip_netmask: 0.0.0.0/0 next_hop: 172.21.200.254 Standard: wahr

Dadurch wird die eth1-Schnittstelle mit statischer IP-Adresse konfiguriert configure 172.21.200.10/24 und Gateway 172.21.200.254.

Konfiguration anwenden:

$ sudo os-net-config -c ovs-interface.yml

Beispiel 2: Konfigurieren der OVS-Bridge mit einer einzelnen angeschlossenen Schnittstelle (Port)

Für die Bridge-Erstellung sieht die Konfigurationsdatei wie folgt aus.

$ vim ovs-bridge-single-interface.yml network_config: - Typ: ovs_bridge Name: br-ex use_dhcp: false use_dhcpv6: false Adressen: - ip_netmask: 172.21.200.10/24 Routen: - ip_netmask: 0.0.0.0/0 next_hop: 172.21.200.254 Standard: true Mitglieder: - Typ: Schnittstellenname: eth1

Nehmen Sie Änderungen vor und übernehmen Sie dann die Konfiguration os-net-config -c

Beispiel 3: Konfigurieren einer OVS-Brücke auf einem OVS-Bond

Hier ist die Konfiguration für eine OVS-Brücke, die auf einem OVS-Bond erstellt wurde.

network_config: - Typ: ovs_bridge Name: br-ex use_dhcp: true Mitglieder: - Typ: ovs_bond Name: Bond1 Mitglieder: - Typ: Schnittstellenname: em1 - Typ: Schnittstellenname: em2

Beispiel 4: Konfigurieren einer getaggten VLAN-Schnittstelle auf einer OVS-Bridge

network_config: - Typ: ovs_bridge Name: br-ctlplane use_dhcp: true Mitglieder: - Typ: Schnittstellenname: em1 - Typ: vlan vlan_id: 20 Adressen: - ip_netmask: 192.0.2.1/24

Beispiel 5: Erstellen Sie eine OVS-Anleihe

In diesem Beispiel wird nur eine OVS-Anleihe erstellt.

network_config: - Typ: ovs_bridge Name: bond1 use_dhcp: true Member: - Typ: Schnittstellenname: eno1 - Typ: Schnittstellenname: eno2 

Überprüfen von OVS-Konfigurationen

Sobald Sie OVS-Konfigurationen angewendet haben, werden Netzwerkkonfigurationsskripte automatisch zu /etc/sysconfig/network-scripts/ hinzugefügtVerzeichnis.

$ ls /etc/sysconfig/network-scripts/

Sie können die OVS-Einstellungen und Port-Verbindungen mit dem ovs-vsctl Befehl:

$ovs-vsctl anzeigen

Schritt 4: Erstellen Sie ein KVM-Netzwerk mit OVS

Wenn Sie Open vSwitch mit KVM-Virtualisierung verwenden, müssen Sie ein Netzwerk definieren, das von virtuellen Maschinen verwendet wird.

Erstellen Sie eine neue Bridge-XML-Datei.

$ vim kvm-ovs.xml

Bridge-Details zur Datei hinzufügen.

 ovs-Brücke    

Wo:

Um ein Netzwerk aus einer XML-Datei zu definieren, ohne es zu starten, verwenden Sie:

sudo virsh net-define kvm-ovs.xml

Um ein (zuvor definiertes) inaktives Netzwerk zu starten, verwenden Sie:

sudo virsh net-start ovs-bridge

So stellen Sie das Netzwerk beim Dienststart auf Autostart ein:

sudo virsh net-autostart ovs-bridge

Ankreuzen, um zu bestätigen, wenn Auto-Start Flag wird auf yes gesetzt - Persistent sollte auch yes lesen.

$ sudo virsh net-list --all Name Status Autostart Persistent ---------------------------------- -------------- ovs-bridge aktiv ja ja default aktiv ja ja

Bleiben Sie dran für weitere Anleitungen zu OVS. Hier sind weitere interessante Anleitungen zum Durchgehen.

So verwenden Sie Ansible Playbook mit Vagrant up

Installieren Sie Minikube Kubernetes auf CentOS 8 mit KVM

Die besten Bücher zum Erlernen von NoSQL- und MongoDB-Datenbanken im Jahr 2021
NoSQL ist eine Art von Datenbank, die Daten speichert und abruft, ohne ihre Struktur zuerst definieren zu müssen - eine Alternative zu den starreren r...
Die besten Bücher zum Erlernen der PostgreSQL-Datenbank im Jahr 2021
Als Entwickler, Datenbankadministrator oder Systemingenieur ist ein Hintergrund in Datenbanken für Ihre Karriereentwicklung von größter Bedeutung. In ...
Die besten Bücher zum Erlernen der Haskell-Programmierung im Jahr 2021
Funktionale Programmierung ist ein Programmierparadigma, das den Prozess der Erstellung von Software beinhaltet, indem reine Funktionen zusammengesetz...