Im Zuge der Verkleinerung der Event Installation ist eine Lösung entstanden, die LTE Uplink, Offloader, WLAN, Mesh und Client LAN, sowie einen Webserver für Dienste im Freifunk Netz realisiert.
Hardware
- APU.2D4 Board mit SSD
- Sierra Wireless MC7455 LTE Cat 6
- Compex WLE900VX 802.11ac Wireless LAN
- Alcatel IK40V LTE Cat. 4 USB Stick (optional)
Software
- Proxmox
- Freifunk Offloader VM
- Webserver VM
1 Proxmox installieren
Proxmox kann nicht direkt installiert werden, da das APU Board keine Grafikkarte hat und per seriellen Nullmodem Kabel die Installation erfolgt. Es wird ein USB-RS232 Adapter benötigt. Mit dem Linux Konsolen Terminal “screen” ist man dann verbunden. Der USB Port kann eine andere Nummer haben, je nachdem.
screen /dev/ttyUSB0 115200
Zunächst wird Debian Strech installiert. Download netinst, amd64 image von hier: https://www.debian.org/distrib/netinst und per
dd if=debian-9.1.0-amd64-netinst.iso of=/dev/sdX
auf einen USB Stick kopieren. Unbedingt auf das richtige Gerät achten. Den Stick am Board einstecken, serielle Verbindung herstellen und das APU Board starten.
Beim Boot Menü h drücken und
install console=ttyS0,115200n8
eingeben. Debian normal installieren, die minimale Einstellung nur verwenden.
Vorläufige /etc/network/interfaces
source /etc/network/interfaces.d/* auto lo iface lo inet loopback allow-hotplug enp1s0 iface enp1s0 inet static address 192.168.5.1 netmask 255.255.255.0 gateway 192.168.5.254 nameservers 192.168.5.254
Die IP Adressen müssen an das Netzwerk, von wo aus installiert wird, angepasst werden. Da später ein DHCP Server läuft, darauf achten, dass es kein Konflikt mit dem Start Netzwerk gibt. Da das Gerät gleich per LTE online ist, kann nach dem Aufsetzen von Promox die Netzwerkeinstellungen, wie hier beschrieben, genommen werden.
Das eigentliche Proxmox
https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch
/etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.5.1 proxmox.freifunk pvelocalhost # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
apt update && apt dist-upgrade
apt install proxmox-ve postfix open-iscsi
apt remove os-prober
Auf
kann die Weboberfläche von Proxmox mit dem Browser aufgerufen werden.
2 Netzwerke einrichten
Mit der LTE Karte online gehen
Die Sierra Wireless MC7455 Karte hat einen Bug, sodass vor dem Einbauen sechs Pins abgeklebt werden müssen, nur auf einer Seite.
Es ist etwas kniffelig, mit LTE online zu kommen. Hier die wirre Anzahl an ausprobierten Befehlen:
Unbedingt die richtige SIM Pin angeben.
usb-devices apt install modem-manager apt install modemmanager mmcli -L mmcli -i 0 --pin=1234 usermod -a -G dialout benutzername mmcli -m 0 cat /etc/NetworkManager/system-connections/MyModem mmcli -m 0 -e mmcli -i 0 --pin=1234 nm-connection-editor apt-get install network-manager nm-connection-editor mmcli -m 0 -e mmcli -L apt install uuid mmcli -m 0 nmcli r wwan on nmcli connection add type gsm ifname cdc-wdm0 apn internet nmcli radio wwan on nmcli connection nmcli connection up gsm-cdc-wdm0 cd /etc/NetworkManager/system-connections/ nano gsm-cdc-wdm0 mmcli -m 0 -e nmcli con list nmcli dev status nmcli r wwan on nmcli con up id gsm-cdc-wdm0 nmcli networking on mmcli -m 0 | grep -Ev "imei|equipment" nmtui systemctl status NetworkManager lspci
Das geht sicherlich auch eleganter.
Netzwerkports
Die virtuelle Maschine braucht Bridges zu den Netzwerkports. Die LTE Karte wird nicht als Netzwerkkarte in Proxmox dargestellt. Bei anderen VMs kann diese als USB Gerät durchgeschliffen werden, doch das Freifunk Images unterstützt das nicht so einfach. Unser Ansatz ist LAN Port 1 mit einer Bridge zu versehen mit fester IP Addresse, sodass die Weboberfläche dort erreichbar ist, dass angeschlossene Geräte per DHCP Adressen bekommen und über ein NAT Gateway mit LTE online sind, Dieser Port 1 wird später auch der WAN Port für den Offloader. Port 2 und 3 werden Mesh LAN und Client LAN für Feifunk. Am Client Port hängt später das WLAN Interface, sowie der Webserver als VM im Freifunknetz.
Die komplette /etc/network/interfaces
source /etc/network/interfaces.d/* auto lo iface lo inet loopback allow-hotplug enp1s0 iface enp1s0 inet manual iface enp2s0 inet manual iface enp3s0 inet manual # WLAN allow-hotplug wlp4s0 iface wlp4s0 inet manual auto vmbr1 iface vmbr1 inet manual bridge-ports enp2s0 bridge-stp off bridge-fd 0 #Mesh Net Port 2 auto vmbr2 iface vmbr2 inet manual bridge-ports enp3s0 bridge-stp off bridge-fd 0 #Client Net Port 3 auto vmbr0 iface vmbr0 inet static address 192.168.5.1 netmask 255.255.255.0 bridge-ports enp1s0 bridge-stp off bridge-fd 0 #LAN DHCP Proxmox Port 1
Für die Bridge dies installieren:
apt-get install bridge-utils
NAT Gateway installieren:
apt-get install vlan modprobe 8021q apt-get install dnsmasq apt-get install iptables-persisten
nano /etc/dnsmasq.conf anpassen:
interface=vmbr0 listen-address=127.0.0.1 domain=proxmox.freifunk-dueren.de dhcp-range=192.168.5.100,192.168.5.150,12h
nano /etc/sysctl.conf anpassen:
net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1
nano /etc/iptables/rules.v4 anpassen:
*nat -A POSTROUTING -o wwp0s19u1u3i8 -j MASQUERADE COMMIT *filter -A INPUT -i lo -j ACCEPT # ssh erlauben, damit wir uns nicht selbst aussperren -A INPUT -i wwp0s19u1u3i8 -p tcp -m tcp --dport 22 -j ACCEPT # eingehenden Traffic erlauben der zu den ausgehenden Verbindungen, # u.a. für Clients aus dem Private-Netzwerk -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # alles andere eingehend verbieten -A INPUT -i wwp0s19u1u3i8 -j DROP COMMIT
Abschließend:
iptables-restore < /etc/iptables/rules.v4
WLAN Modul
Leider wird von der CPU PCI passthrough nicht unterstützt, d.h. das WLAN wird nicht über den Offloader bedient, sondern nur per Brücke an das Client Netz gehängt.
Auf der Proxmox Shell dies installieren:
apt-get install hostapd
Die Datei /etc/hostapd/hostapd.conf bearbeiten:
# Bridge-Betrieb bridge=vmbr2 # Schnittstelle und Treiber interface=wlp4s0 #driver=nl80211 # WLAN-Konfiguration ssid=Freifunk channel=11 hw_mode=g ieee80211n=1 ieee80211d=1 country_code=DE wmm_enabled=1
Diese Einträge in /etc/default/hostapd hinzufügen:
RUN_DAEMON=yes DAEMON_CONF="/etc/hostapd/hostapd.conf"
- Reboot
3 Freifunk Offloader VM
- Auf der Proxmox Weboberfläche https://192.168.5.1:8006 mit root einloggen.
- Neue VM erstellen
- Node vorgabe, VM ID etwas freies hier 101, Name Offloader
- In der erweiterten Ansicht kann Start at Boot aktiviert werden
- OS kein Medium auswählen und Type Linux 4x/3x/2.6 benutzen
- Harddisk Bus/Device SATA 0 Storage local Sitze 0,07 GiB Format RAW Disk Image Cache Write back
- CPU 1 Kern
- Memory 64 MiB
- Network erst einmal ohne Device
- Bestätigen
Auf der Konsole ins Verzeichnis /var/lib/vz/images/101 wechseln
wget https://images.aachen.freifunk.net/stable/factory/gluon-ffac-2016.2.7-1-stable-x86-64.img.gz gunzip gluon-ffac-2016.2.7-1-stable-x86-64.img.gz cp gluon-ffac-2016.2.7-1-stable-x86-64.img vm-101-disk-0.raw
- Auf der Proxmox Oberfläche unter 101 Hardware Harddisk aushängen und wieder einbinden.
- Bus Device SATA 0
- Disk Image vm-101-disk-0.raw
- Cache Write back
Der erste Start der Offloader VM darf erst erfolgen, wenn alle Netzwerkports richtig eingestellt sind.
- Unter Hardware hinzufügen Netzwerk Device
- Bridge vmbr1
- Model Virto
- Bestätigen
Dies wird auf dem Offloader LAN eth0 für den Config Mode. Später Mesh on LAN an Port 2 der APU.
- Unter Hardware hinzufügen Netzwerk Device
- Bridge vmbr0
- Model Virto
- Bestätigen
Dies wird eth1 für WAN VPN an Port 1
- Unter Hardware hinzufügen Netzwerk Device
- Bridge vmbr2
- Model Virto
- Bestätigen
Dies wird eth2 für das Client Netz an Port 3
Die VM kann gestartet werden.
Offloader konfigurieren
Der Config Mode ist exakt so, wie auf einem Freifunk Router. Er ist über Port 2 an der APU erreichbar.
- Im Experten Modus ein Passwort oder Key hinterlegen. Mesh on LAN aktivieren.
- Im normalen Modus die gewohnten Angaben und VPN aktivieren.
- Einstellungen speichern und den Config Mode abschließen.
Nach dem Neustart eine SSH Verbindung herstellen oder über den Proxmox Bildschirm auf die Konsole zugreifen:
uci add_list network.client.ifname=eth2 uci commit network
4 Webserver für Dienste im Freifunk Netz
Für den Server kann das Debian Netinstall iso Image genutzt werden.
Dieses mal gehen wir direkt auf die Proxmox Oberfläche und laden unter local Inhalt das ISO Images hoch.
- Neue VM erstellen
- Node vorgabe, VM ID etwas freies hier 102, Name Webserver
- In der erweiterten Ansicht kann Start at Boot aktiviert werden
- OS ISO Medium aus local auswählen: debian-9.1.0-amd64-netinst.iso
- Type Linux 4x/3x/2.6 benutzen
- Harddisk Bus/Device SATA 0 Storage local Sitze 10 GiB Format RAW Disk Image Cache no cache (normal)
- CPU 1 Kern
- Memory 1536 MiB
- Network Bridge vmbr2 Model Virto
- Bestätigen
Die Webserver VM kann gestartet werden und normal aufgesetzt werden.
Wenn die privacy extensions ausgeschaltet ist und die Mac Adresse nicht wechselt, der Server im gleichen Segment bleibt, wechselt die IPV6 Adresse nicht, solange alle Supernodes das gleiche Prefix announcen.
Ein DNS Name kann per responsd <Name>.nodes.ffac.rocks vergeben werden.
Alternativ kann auch ein DNS AAAA Record gesetzt werden und mit letsencrypt https gemacht werden.
5 Zweite Offloader VM an einem zweiten LTE Uplink per USB Stick (Optional)
Es kann an den USB Anschlüssen noch weitere USB LTE Sicks verwendet werden. Falls das erste Mobilfunknetz ausfällt, kann ein weiteres als Backup dienen. Der WAN Port geht über den Stick und Mesh on LAN an Port 2. Ein weiteres Client Netz wird nicht aufgesetzt.
/etc/network/interfaces editieren und folgendes ergänzen:
iface enp0s16u1 inet manual auto vmbr3 iface vmbr3 inet manual bridge-ports enp0s16u1 bridge-stp off bridge-fd 0 #LTE Stick USB
enp0s16u1 ist der Netzwerkport des LTE Sticks und kann anders nummeriert sein, Mit ip address ist zu sehen, wie genau die Nummern sind.
Die Offloader Backup VM wird eingerichtet, wie vorweg beschrieben, nur, dass die ID und der Name anders sein muss. Es werden nur zwei Netzwerkkarten benötigt, net0 an vmbr1 und net1 an vmbr3.
Den Hauptoffloader erst stoppen, da kurz zum Einrichten des Backupoffloader der Mesh Port 2 für den Config Mode gebraucht wird. Die Backup VM starten.
Die Konfiguration des Backup Offloaders benötigt Mesh on LAN und der VPN muss aktiviert werden.
Jetzt kann auch der Haupt Offloader wieder gestartet werden.