Virtualisierung Setup: KVM, libvirt, bridge/netfilter sauber konfigurieren

Die Virtualisierung von Servern mit KVM (Kernel-based Virtual Machine) ist heute eine Standardtechnik in Rechenzentren. Eine saubere Einrichtung von KVM und libvirt sowie eine korrekt konfigurierte Netzwerkumgebung über Bridge-Interfaces und Netfilter ist entscheidend, um Performance, Sicherheit und Management-Flexibilität zu gewährleisten. In diesem Tutorial lernen Sie, wie Sie eine robuste Virtualisierungsumgebung auf Linux aufbauen.

KVM Installation und Kernel-Konfiguration

Bevor virtuelle Maschinen betrieben werden können, muss KVM und die dazugehörigen Tools installiert und aktiviert werden. Der Linux-Kernel muss die Virtualisierungsfunktionen unterstützen.

Prüfen der Virtualisierungsfähigkeit

egrep -c '(vmx|svm)' /proc/cpuinfo

Ein Wert größer 0 bedeutet, dass die CPU Hardware-Virtualisierung unterstützt. Für Intel-Prozessoren wird vmx, für AMD svm angezeigt.

KVM und Tools installieren

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

Dies installiert KVM, libvirt-Dienste und die Netzwerktools für Bridge-Setup sowie die GUI für Management.

libvirt Konfiguration

libvirt übernimmt die Verwaltung von virtuellen Maschinen, Storage-Pools und Netzwerkinterfaces. Eine saubere Konfiguration sorgt für stabile VM-Operationen und konsistente Berechtigungen.

libvirtd Dienst prüfen

sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd

Stellen Sie sicher, dass der libvirt-Dienst aktiv läuft, um VMs starten zu können.

Benutzerberechtigungen

sudo usermod -aG libvirt $USER
newgrp libvirt

Nur Benutzer in der libvirt-Gruppe können ohne Root-Rechte VMs starten und konfigurieren.

Bridge Netzwerk Setup

Virtuelle Maschinen benötigen Zugang zum Host-Netzwerk. Eine Bridge erlaubt den VMs, direkt im Netzwerk zu erscheinen, ohne NAT.

Bridge erstellen

sudo nmcli connection add type bridge con-name br0 ifname br0
sudo nmcli connection add type bridge-slave ifname enp3s0 master br0
sudo nmcli connection up br0

Hier wird eine Bridge br0 erstellt und die physische Netzwerkschnittstelle enp3s0 als Slave angebunden.

IP-Konfiguration auf der Bridge

sudo nmcli connection modify br0 ipv4.addresses 192.168.1.100/24
sudo nmcli connection modify br0 ipv4.gateway 192.168.1.1
sudo nmcli connection modify br0 ipv4.method manual
sudo nmcli connection up br0

Die IP-Adresse des Hosts wird auf die Bridge gelegt, nicht auf die physische NIC.

Netfilter für Bridge Traffic

Damit iptables/nftables Regeln auf bridged Traffic angewendet werden, muss das Kernel-Modul und entsprechende Parameter aktiviert werden.

Bridge-NF aktivieren

sudo modprobe br_netfilter
sudo sysctl -w net.bridge.bridge-nf-call-iptables=1
sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=1

Dies stellt sicher, dass Firewall-Regeln auf Traffic zwischen VMs und externen Netzwerken greifen.

Firewall-Regeln für VMs

sudo nft add table inet vm_filter
sudo nft add chain inet vm_filter input { type filter hook input priority 0 ; }
sudo nft add rule inet vm_filter input iif "br0" tcp dport 22 accept

Ein einfaches Beispiel: SSH auf die Bridge zulassen, andere Ports können restriktiv geregelt werden.

VMs mit libvirt an die Bridge anbinden

Beim Erstellen von VMs muss als Netzwerkinterface die Bridge angegeben werden.

virsh Beispiel

virsh net-define /etc/libvirt/qemu/networks/br0.xml
virsh net-start br0
virsh net-autostart br0

Im XML wird die Bridge br0 als Source für das VM-Interface konfiguriert. Alternativ kann virt-manager die Bridge grafisch zugewiesen werden.

Best Practices

  • Host-IP auf die Bridge legen, NICs nur als Slaves
  • Netfilter aktivieren, um VM-Traffic zu kontrollieren
  • libvirt nur vertrauenswürdigen Benutzern zugänglich machen
  • Backup der libvirt-XMLs für Disaster Recovery
  • Testing der VM-Connectivity nach Bridge-Konfiguration

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles