Ziel
Eine Virtuelle Maschine, in der Gluon läuft und über virtuelle Netzwerkschnittstellen das Freifunk-Client-Netz und das Mesh-Netzwerk zu Verfügung stellt.
Motivation
Die VM kann dann als VPN-Offloader für Freifunk-Access Points dienen, oder als Gateway für andere VMs um Dienste im Freifunk-Netz anzubieten. Und man kann Hostapd dran klemmen und Freifunk ohne extra Access Point anbieten. Oder Freifunk über WLAN-Accesspoints ohne Freifunk-Firmware anbieten. Oder was auch immer.
So geht’s – prinzipiell
Ich setzte voraus dass libvirt und Virt-Manager installiert sind.
Die Gluon-VM erhält drei virtuelle Netzwerkschnittstellen mit folgenden Funktionen:
- Internetzugang
- Freifunk-Client-Netzwerk: Für den direkten Zugang in’s Freifunk-Netz
- Freifunk-Mesh-Netzwerk: Zum Anschluss von anderen Freifunk-Access Points, VM dient als Offloader
Alle drei Netzwerkschnittstellen werden der Einfachheit halber auf dem Server (der Rechner, auf dem die VM läuft) als Bridges ausgeführt:
- br-internet
- br-ff-client
- br-ff-mesh
So geht’s – Schritt für Schritt
- Bridges auf dem Server anlegen
/etc/network/interfaces
:# Internet ### # Prämisse: Internetzugang erfolgt bislang über eth0 # Achtung: Alles was bisher über eth0 gemacht wurde (Firewall? Serverdienste?) # muss danach auf br0 umgestellt werden! auto br-internet iface br-internet inet dhcp bridge_stp on bridge_fd 3 bridge_ports eth0 auto eth0 iface eth0 inet manual # Freifunk Clientnetzwerk ### auto br-ff-client iface br-ff-client inet static address 0.0.0.0 bridge_ports none bridge_fd 0 bridge_stp off bridge_waitport 0 # Freifunk Meshnetzwerk ### auto br-ff-mesh iface br-ff-mesh inet static address 0.0.0.0 bridge_ports none bridge_fd 0 bridge_stp off bridge_waitport 0
- Anschließend am Besten den Server neu starten um zu prüfen, ob alle Dienste die Umstellung von eth0 auf br-internet verkraftet haben.
- Von deiner Freifunk-Community ein passendes Image runterladen und nach
/var/lib/libvirt/images
kopieren (Daumenregel: Dateiname enthält „x86“ und „img“, z.B. „gluon-ffin-v2017.1.7-10+4-x86-64.img.gz“. Wenn das Image, wie hier, noch gepackt ist, gleich noch entpacken. -
Virt-Manager starten
-
„Neue Virtuelle Maschine erstellen“
-
„vorhandenes Festplatten-Abbild importieren“ -> Gluon-Image auswählen
-
Betriebssystemtyp: „Linux“, Version: „Generic Linux 2020“
-
Speicher: 128 MByte, CPU: 1
-
Name: Gluon-VM, „Konfiguration bearbeiten vor Installation“: Ja
-
„Abschließen“
-
Disk 1: „Festplattenbus“ auf „VirtIO“ stellen
-
Network: Gerätemodell: „virtio“, Netzwerkquelle: „Bridge device“, Namen des gemeinsam verwendeten Geräts: „br-internet“
- Eine zweite Netzwerkschnittstelle hinzufügen, Gerätemodell: „virtio“, Netzwerkquelle: „Bridge device“, Namen des gemeinsam verwendeten Geräts: „br-ff-mesh“
-
„Installation beginnen“
-
- In der VM sollte nach wenigen Sekunden Gluon laufen und auf die Ersteinrichtung per Browser warten. Standardmäßig lauscht Gluon dazu auf der IP-Adresse 192.168.1.1. Da mein Heimnetzwerk aber im Bereich 192.168.3.xxx liegt, ändere ich diese Adresse in der VM auf irgendwas in diesem Adressbereich ab:
ifconfig br-setup 192.168.3.200
- Mit dem Browser auf http://192.168.3.200 gehen und Gluon ganz normal einrichten.
- Gluon-VM herunterfahren
- Im Virt-Manager an den beiden Netzwerkschnittstellen die Netzwerkgeräte vertauschen: „br-internet“ zu „br-ff-mesh“ ändern, und „br-ff-mesh“ zu „br-internet“.
- Um das Client-Netzwerk rauszuleiten jetzt im Virt-Manager noch eine dritte Netzwerkschnittstellen zur Gluon-VM hinzufügen, Name des gemeinsam verwendeten Geräts: „br-ff-client“.
- Die Gluon-VM wieder starten.
- In der Gluon-VM dann die neue, dritte Netzwerkschnittstelle an das Client-Netz hängen:
uci add_list network.client.ifname=eth2
Änderungen speichern mituci commit
- Die Gluon-VM neu starten:
reboot
Update November 2022: An Gluon v2021 angepasst.