Adrian Grosu - stock.adobe.com
Mit virsh-Befehlen KVM-Netzwerke verwalten
Mit virsh-Befehlen können Sie die Eigenschaften des Netzwerks verwalten. Sie lassen sich zusammen mit brctl-Befehlen einsetzen, um zusätzliche Bridges zu erstellen.
Benutzen Sie die libvirt-Schnittstelle, können Sie mithilfe von Virtual Machine Manager sämtliche Facetten von KVM Networking konfigurieren. Um die volle Leistung aller verfügbaren Management-Optionen nutzen zu können, sind die virsh-Befehle besser geeignet.
Durch die virsh-Befehle können Sie die XML-Konfigurationsdateien für die virtuellen Maschinen (VM) und alle dazugehörigen Konfigurationen editieren. Auch wenn es möglich ist, die Konfigurationsdateien direkt anzupassen, empfehle ich diesen Weg nicht. Es könnte Probleme mit gesperrten Komponenten geben (Locking) und es besteht außerdem das Risiko, dass die Änderungen während eines System-Updates verlorengehen.
Sie können das virsh-Interface auf zwei verschiedene Arten benutzen. Entweder verwenden Sie den Befehl mit allen notwendigen Optionen über die Kommandozeile oder Sie öffnen eine virsh-Shell, um die virtuelle Umgebung von dort aus zu konfigurieren.
Um das Networking zu managen, sind zwei wichtige Komponenten involviert. Die Interface-Komponente verwaltet virtuelle Bridges. Sie können die Eigenschaften dieser Brücken konfigurieren und ihnen Schnittstellen zuweisen. Mit den virsh-Befehlen lassen sich die Netzwerkeigenschaften ebenfalls verwalten. Abgesehen davon gibt es nwfilter-Befehle, die Ihnen bei der Verwaltung der Firewall-Regeln für die virtuelle Umgebung helfen.
Wollen Sie ein komplettes Netzwerk von der Kommandozeile aus erstellen, brauchen Sie aber mehr als nur virsh. Das virsh-Programm kommuniziert mit den virtuellen Bridges und Switches, die sich im Netzwerk befinden. Aus diesem Grund gehen wir auch darauf ein, wie sich mit den brctl-Befehlen virtuelle Brücken erstellen lassen.
KVM Networking mit den virsh-Befehlen verwalten
Sich Einblicke in die virtuelle Umgebung zu verschaffen, ist ein guter Anfang. Verwenden Sie virsh list, um einen Überblick zu den momentanen Netzwerkeinstellungen zu bekommen. Sie sollten zwei Netzwerke sehen: Das Standardnetzwerk und das local-only-Netzwerk. Sie können weitere Informationen zu den Netzwerken einholen, indem Sie den Befehl virsh net-info <netname> verwenden. In Abbildung 1 sehen Sie, wie der Befehl für das lokale Netzwerk aussieht.
Wollen Sie weitere Details zur Netzwerkkonfiguration erhalten, können Sie den Befehl virsh net-dumpxml <netname> ausführen. Damit sehen Sie die momentane Konfiguration wie in Abbildung 2. Sie sehen den Namen der Bridge, inklusive einige ihrer Eigenschaften. Damit sind Konfiguration der IP-Adresse und der Forwarding-Modus gemeint. In den meisten Fällen ist das NAT (Network Address Translation).
In einigen Fällen müssen Sie die Netzwerkeigenschaften ändern. Das lässt sich mit dem Befehl virsh net-edit erledigen. Das zeigt den XML-Code in einem Editor an. Sie können jede Änderung von hier durchführen und die Konfiguration in die momentane Umgebung übertragen lassen.
Erstellen Sie zusätzliche Netzwerke mithilfe der virsh-Befehle
Das Netzwerk-Management von KVM basiert auf XML-Dateien. Möchten Sie zum Beispiel ein neues Netzwerk erstellen, dann definieren Sie am besten eine Netzwerkkonfigurationsdatei unter /etc/libvirt/qemu/networks. Kopieren Sie dafür einfach die XML-Datei, die ein momentanes Netzwerk definiert und editieren entsprechend die Schnittstellen, Konfiguration der IP-Adressen und andere notwendige oder gewünschte Parameter.
Nachdem Sie ein neues Netzwerk definiert haben, können Sie diverse virsh-Befehle verwenden. Dazu gehört virsh net-define, um das Netzwerk an die momentane Konfiguration anzufügen, ohne es zu starten. Auch virsh net-create ist möglich, wenn Sie das Netzwerk starten möchten.
Bridges mit brctl und virsh managen
Bei der Virtualisierung mit KVM müssen alle Netzwerke mit einer Virtualisierungs-Bridge verbunden sein. Die Bridges lassen sich mithilfe der brctl-Befehle verwalten. Wollen Sie eine Übersicht zur momentanen Konfiguration bekommen, verwenden Sie brctl show. Damit sehen Sie die Bridges, die im Moment existieren. Beachten Sie, dass eine Bridge entweder mit dem Befehl virsh net-define oder dem Befehl brctl addbr erstellt werden kann.
Definieren Sie eine Bridge, wird ihr nicht automatisch eine Netzwerkschnittstelle zugewiesen. Wollen Sie der Bridge eine Schnittstelle zuweisen, verwenden Sie den Befehl brctl addif <bridgename> <ifname>. Sie können der Bridge jede existierende Netzwerkschnittstelle zuweisen. Ich rate aber davon ab, das mit Schnittstellen zu machen, die derzeit in Verwendung sind. Damit stören Sie das momentane Networking, möglicherweise funktioniert es sogar nicht mehr.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+, Xing und Facebook!