Öffnen Sie vSwitch ist ein kostenloser und quelloffener Multi-Layer-Software-Switch, der verwendet wird, um den Datenverkehr zwischen virtuellen Maschinen und physischen oder logischen Netzwerken zu verwalten. Es bietet Funktionen wie Traffic-Isolation in OpenStack-Mandanten mit Overlay-Techniken wie GRE , VXLAN und 802.1Q-VLANs .
Die Verwendung einer offenen vSwitch-Paketweiterleitungs-Engine im Kernel-Space oder im User-Space kann implementiert werden und die Link-Aggregation kann auch über LACP erreicht werden .
In diesem Artikel besprechen wir, wie Sie die neueste Version von Open vSwitch 2.9.2 auf CentOS 7 und RHEL 7 Server installieren. Außerdem werden wir sehen, wie Open vSwitch in virtuellen KVM-Maschinen für deren Vernetzung verwendet werden kann.
Lesen Sie mehr zu: So installieren und konfigurieren Sie KVM auf einem Ubuntu 18.04 LTS-Server
Ich gehe davon aus, dass Sie bereits einen CentOS 7- oder RHEL 7-Server mit KVM konfiguriert haben. Open vswitch (OVS) 2.0 ist in den standardmäßigen Yum-Repositories von CentOS 7 und RHEL 7 verfügbar, aber wenn Sie die neueste Version von Open vSwitch installieren, lesen Sie die folgenden Schritte.
Schritt 1) Installieren Sie die erforderlichen Pakete mit dem Befehl yum
Melden Sie sich bei Ihrem CentOS 7- oder RHEL 7-Server an und führen Sie den folgenden Befehl yum aus,
[[email protected] ~]# yum install wget openssl-devel python-sphinx gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool python-twisted-core python-zope-interface PyQt4 desktop-file-utils libcap-ng-devel groff checkpolicy selinux-policy-devel -y
Schritt 2) Erstellen Sie einen ovs-Benutzer und laden Sie Open vSwitch 2.9 herunter
Erstellen Sie einen Benutzer mit dem Namen ovs mit dem folgenden Befehl
[[email protected] ~]# useradd ovs [[email protected] ~]# su - ovs [[email protected] ~]$
Laden Sie die OVS 2.9-Tar-Datei herunter und erstellen Sie die openvswitch-RPM mit den folgenden Befehlen,
[email protected] ~]$ mkdir -p ~/rpmbuild/SOURCES [[email protected] ~]$ wget http://openvswitch.org/releases/openvswitch-2.9.2.tar.gz [[email protected] ~]$ cp openvswitch-2.9.2.tar.gz ~/rpmbuild/SOURCES/ [[email protected] ~]$ tar xfz openvswitch-2.9.2.tar.gz [[email protected] ~]$ rpmbuild -bb --nocheck openvswitch-2.9.2/rhel/openvswitch-fedora.spec [[email protected] ~]$ exit logout [[email protected] ~]#
Installieren Sie nun Open vSwitch rpm mit dem folgenden yum-Befehl,
[[email protected] ~]# yum localinstall /home/ovs/rpmbuild/RPMS/x86_64/openvswitch-2.9.2-1.el7.x86_64.rpm -y
Schritt 3) Starten und aktivieren Sie den Open vSwitch Service
Verwenden Sie die folgenden systemctl-Befehle, um den offenen vSwitch-Dienst zu starten und zu aktivieren
[[email protected] ~]# systemctl start openvswitch.service [[email protected] ~]# systemctl enable openvswitch.service Created symlink from /etc/systemd/system/multi-user.target.wants/openvswitch.service to /usr/lib/systemd/system/openvswitch.service. [[email protected] ~]# systemctl status openvswitch.service ● openvswitch.service - Open vSwitch Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; enabled; vendor preset: disabled) Active: active (exited) since Sun 2018-08-05 10:16:12 EDT; 17s ago Main PID: 73958 (code=exited, status=0/SUCCESS) Aug 05 10:16:12 compute02 systemd[1]: Starting Open vSwitch... Aug 05 10:16:12 compute02 systemd[1]: Started Open vSwitch. [[email protected] ~]#
Verwenden Sie den folgenden Befehl, um die OVS-Version zu überprüfen
[[email protected] ~]# ovs-vsctl -V ovs-vsctl (Open vSwitch) 2.9.2 DB Schema 7.15.1 [[email protected] ~]#
Schritt:4 Erstellen Sie die OVS-Bridge und fügen Sie ihr Schnittstellen hinzu.
Verwenden Sie den folgenden Befehl, um eine Ovs-Brücke zu erstellen,
[[email protected] ~]# ovs-vsctl add-br ovs-br0
Spülen oder entfernen Sie jetzt die IP von der Schnittstelle, in meinem Fall die IP, die eno16777736 zugewiesen wurde
[[email protected] ~]# ip addr flush dev eno16777736
Weisen Sie nun diese IP-Adresse ovs bridge(ovs-br0)
zu[[email protected] ~]# ip addr add 192.168.1.4/24 dev ovs-br0
Fügen Sie die Schnittstelle als Port in ovs-br0 mit dem folgenden Befehl hinzu,
[[email protected] ~]# ovs-vsctl add-port ovs-br0 eno16777736
Rufen Sie nun die Bridge mit dem folgenden Befehl „ip link“ auf,
[[email protected] ~]# ip link set dev ovs-br0 up
Hinweis: Die obigen Änderungen sind nicht persistent, also machen Sie diese Änderungen über den Neustart hinweg persistent, wir müssen eine OWS-Bridge-Datei erstellen, die Schritte sind unten gezeigt
[[email protected] ~]# cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# cp ifcfg-eno16777736 ifcfg-ovs-br0 [[email protected] network-scripts]# [[email protected] network-scripts]# vi ifcfg-eno16777736 DEVICE=eno16777736 HWADDR="00:0c:29:c1:c3:4e" TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=ovs-br0 ONBOOT=yes
Speichern und beenden Sie die Datei
[[email protected] network-scripts]# vi ifcfg-ovs-br0 DEVICE=ovs-br0 DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=192.168.1.4 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ONBOOT=yes
Speichern und beenden Sie die Datei
Starten Sie den Netzwerkdienst mit dem folgenden Befehl neu,
[[email protected] network-scripts]# systemctl restart network
Überprüfen Sie nun die ovs Bridge und ihre Ports mit „ovs-vsctl ” Befehl
[[email protected] ~]# ovs-vsctl show 8dc5f8e7-0e54-4d9d-ba7a-cd6b9b94f470 Bridge "ovs-br0" Port "ovs-br0" Interface "ovs-br0" type: internal Port "eno16777736" Interface "eno16777736" ovs_version: "2.9.2" [[email protected] ~]#
Schritt:5 ) Erstellen und definieren Sie das virsh ovs-Netzwerk
Erstellen Sie eine ovs-Netzwerkdatei mit folgendem Inhalt ,
[[email protected] ~]# vi /tmp/ovs-network.xml <network> <name>ovs-network</name> <forward mode='bridge'/> <bridge name='ovs-br0'/> <virtualport type='openvswitch'/> </network>
Definieren Sie nun das ovs-Netzwerk mit dem folgenden virsh-Befehl,
[[email protected] ~]# virsh net-define /tmp/ovs-network.xml Network ovs-network defined from /tmp/ovs-network.xml [[email protected] ~]# virsh net-start ovs-network Network ovs-network started [[email protected] ~]# virsh net-autostart ovs-network Network ovs-network marked as autostarted [[email protected] ~]#
Überprüfen Sie nun das virsh-Netzwerk mit dem folgenden Befehl,
[[email protected] ~]# virsh net-list Name State Autostart Persistent ---------------------------------------------------------- default active yes yes ovs-network active yes yes [[email protected] ~]#
Schritt:6) Virtuelle Maschinen erstellen und ovs-network anhängen
Lassen Sie uns zwei Test-VMs mit dem folgenden virt-install-Befehl erstellen, geben Sie das Netzwerk für diese VMs als ovs-network an,
[[email protected] ~]# virt-install -n testvm1 --description "Test VM1 for OVS " --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/testvm1.img,bus=virtio,size=10 --network network:ovs-network --graphics none --location /root/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0
Erstellen Sie auf ähnliche Weise eine zweite Test-VM mit dem Namen „testvm2“
[[email protected] ~]# virt-install -n testvm2 --description "Test VM2 for OVS " --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/testvm2.img,bus=virtio,size=10 --network network:ovs-network --graphics none --location /root/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0
Sobald die VMs erstellt sind, sollten ihre Schnittstellen automatisch in ovs bridge (ov-br0) hinzugefügt werden, und wir können dies mit dem Befehl ovs-vsctl überprüfen,
[[email protected] ~]# ovs-vsctl show 8dc5f8e7-0e54-4d9d-ba7a-cd6b9b94f470 Bridge "ovs-br0" Port "ovs-br0" Interface "ovs-br0" type: internal Port "eno16777736" Interface "eno16777736" Port "vnet0" Interface "vnet0" Port "vnet1" Interface "vnet1" ovs_version: "2.9.2" [[email protected] ~]# ovs-vsctl list-ports ovs-br0 eno16777736 vnet0 vnet1 [[email protected] ~]#
Im obigen Befehl vnet0 &vnet1 sind VMs Tap-Schnittstelle. Wenn wir diese VMS herunterfahren, werden diese Ports automatisch von OVS Bridge (ovs-br0) entfernt. Protokolldateien für ovs (openvswitch) werden im Ordner „/var/log/openvswitch gespeichert “.
Ich hoffe, Sie haben zum Abschluss dieses Artikels eine Vorstellung davon bekommen, wie Sie Open vSwitch 2.9 mit KVM auf CentOS 7- und RHEL 7-Servern installieren und verwenden. Wenn Ihnen der Artikel gefällt, teilen Sie uns bitte Ihr Feedback und Ihre Kommentare mit.