Virtuelle Maschinen sind gleich in mehreren Punkten ein sehr praktische Werkzeug: Sie sind schnell aufgesetzt. Sie können die Ausznutzung von Hardware verbessern (indem mehrere VMs auf der gleichen Hardware laufen) und, wenn etwas kaputt geht, schmeißt man sie einfach weg.
Dieses Tutorial zeigt, Schritt-für-Schritt, wie man eine Freifunk/OpenWrt-VM auf Basis von KVM/Libvirtd mit virt-manager erstellen kann.
1. Firmware-Image besorgen
Für die VM benötigen wir ein x86_64-Image. Dieses können wir entweder aus dem Firmware-Selector herunterladen, oder gleich selber bauen. Für dieses Tutorial habe ich das Image selber gebaut.
Falls du den Selector nutzt, suche nach x86
und wähle dann x86/64
aus. Von den Images, die dann zum Download angeboten werden, brauchen wir das combined
image. Man kann zwischen combined (ext4)
und combined (squashfs)
wählen. Ich habe squashfs verwendet. Falls man die Partition allerdings später vergrößern möchte, bietet sich eher ext4 an.
2. Image für KVM vorbereiten
Das tar.gz
-Archiv, das wir heruntergeladen haben, ist für KVm nicht direkt nutzbar. Wir müssen es umformen.
Zuerst entpacken wir es, danach ändern wir das Format zu qcow2:
$ gunzip openwrt-23.05-snapshot-r23835-9b33b74ef7-freifunk-falter-1.4.0-snapshot-x86-64-generic-squashfs-combined.img.gz
gzip: openwrt-23.05-snapshot-r23835-9b33b74ef7-freifunk-falter-1.4.0-snapshot-x86-64-generic-squashfs-combined.img.gz: decompression OK, trailing garbage ignored
$ qemu-img convert -f raw -O qcow2 openwrt-23.05-snapshot-r23835-9b33b74ef7-freifunk-falter-1.4.0-snapshot-x86-64-generic-squashfs-combined.img falter-1.4.0-squashfs.qcow2
$
Mit dem qcow2-Image können wir daran gehen, die VM einzurichten.
3. VM aufsetzen
Das Aufsetzen der VM läuft sehr ähnlich, wie bei regulären VMs ab. Wir brauchen als Besonderheit allerdings 2 Network Interface Controller. Einer wird der LAN-Port werden, der andere der WAN-Port unsere “Routers”.
Es ist wichtig, dass beide NICs bereits vor dem ersten Booten der VM angelegt werden! Andernfalls konfiguriert OpenWrt/Freifunk die Interfaces nicht korrekt.
Im Virt-Manager werden dann folgende Schritte ausgeführt:
- “Vorhandenes Festplatten-Abbild importieren”
- Als Speicherabbild die qcow2-Datei auswählen. Als OS “Generic Linux (2022)” einstellen (oder vergleichbar)
- Als Ressourcen sind sinvoll: RAM: 512MiB, 2 CPU-Kerne
- Ganz wichtig ist, den Haken bei: “Konfiguration bearbeiten vor Installation” zu setzen.
Es öffnet sich das Fenster mit der VM-Konfiguration. In diesem Fenster müssen wir die Netzwerkconfig anpassen, sodass die VM 2 NICs haben wird.
Der erste NIC wird das LAN-Interface sein, der zweite NIC wird durch Falter/OpenWrt beim ersten Booten zum WAN-Port konfiguriert werden. Darüber kann auch gesteuert werden, welche Netzwerke in unserem lokalen Netzwerk die Router-VM bedienen wird. Falls die Zuordnung beim ersten Booten falsch war, äußert sich das darin, dass im LAN-Netzwerk keine IP-Adressen verteilt werden. In diesem Fall muss das Image gelöscht werden und neu angelegt, damit die Konfiguration beim ersten booten nochmals läuft.
Wenn alles geklappt hat, kann man im Browser unter https://frei.funk oder unter der 192.168.42.1 den Einrichtungs-Wizard von Freifunk Berlin erreichen.