Der Chaos Computer Club (CCC) lädt zum Chaos Communication Congress 35c3 auf dem Messegelände Leipzig zwischen Weihnachten und Silvester 2018 ein und wir werden dort sein und unsere Event Installation und autarke Installation im Open Infrastructure Orbit OIO präsentieren.
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.
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.
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
*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.
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 addressist 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.