Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


alfred

Alfred

siehe: http://www.open-mesh.org/projects/alfred/wiki

Produktiv wird die Version 2015.0 bzw. die gepatchte Version 2017.1 eingesetzt.

Ab der Version 2015.1 gibt es anscheinend Probleme:

can't bind: Cannot assign requested address
Failed to open interfaces

Das Verhalten tritt auf, wenn die Link-Lokale IPv6-Adresse des Bridge-Interfaces (über den Parameter -i) nicht zu der MAC-Adresse paßt. Vermutlich kann als Workaround die MAC-Adresse für das betreffende Interface mit bridge_hw <MAC> fixiert werden.

Wenn man das nicht macht, führt das Hinzufügen von bat0 zur Bridge dazu, daß die Bridge die MAC vom bat0-Interface übernimmt.

Details: In der Funktion netsock_open in netsock.c wird in Version 2015.0 ein bind mit in6addr_any gemacht. In den darauffolgenden Versionen geht der bind auf die Interface-Adresse, die allerdings mit mac_to_ipv6(&interface→hwaddr, &interface→address); ermittelt wurde. Insbesondere bei Bridge-Interfaces schlägt dieses aus o.a. Gründen fehl.

Voraussetzungen

aptitude install git cmake pkg-config ca-certificates

Für Version >= 2016.5 zusätzlich:

aptitude install libnl-genl-3-dev

Quellen herunterladen und entpacken

cd /usr/local/src
aptitude install libcap-dev
wget http://downloads.open-mesh.org/batman/stable/sources/alfred/alfred-2017.1.tar.gz
tar xzf alfred-2017.1.tar.gz
cd alfred-2017.1

Patch für alfred >= 2016.5

Anschließend bauen. Den GPS-Daemon brauchen wir nicht

git apply -v ffpi.patch
make CONFIG_ALFRED_GPSD=n
make install CONFIG_ALFRED_GPSD=n

Alfred-JSON

Wird nur auf dem Server benötigt wo der Meshviewer läuft, zzw. ein Alfred im Master-Modus. Schadet ansonsten aber auch nicht.

Wichtig: Bei einem fehlerhaften JSON wird eine Warnung ausgegeben. Dieses Verhalten sollte noch verbessert werden, indem:

  • ein Schalter -q „Quiet“ eingebaut wird
  • der Fehler genauer eingegrenzt wird, damit der betreffende Knoten ggf. markiert werden kann

Tip: Falls das klonen mit Git einen CA SSL Fehler wirft, kann man den umgehen mit:

 git config --global http.sslVerify false
aptitude install libjansson-dev zlib1g-dev
git clone https://github.com/ffnord/alfred-json.git
cd alfred-json
mkdir build
cd build
cmake ../
make
make install

Tests:

  • alfred-json -zr 158

Übersicht über die Alfred-Datenstrukturen

Datenblock 158 / alle 5 Minuten? Beispiel Beschreibung
network mac
addresses Liste der Adressen
mesh_interfaces
mesh <interface> interfaces wireless
tunnel
other
exitvpn provider mullvad nur für Gate
country NL nur für Gate
node_id
hostname ffpi-test01
hardware model TP-Link TL-WR1043N/ND v2
nproc 1
owner contact bernd@example.com
location latitude
longitude
altitude Nutzung noch unklar
system site_code ffpi
role node
software fastd enabled true
version v17
port 10000
autoupdater enabled true
branch stable
batman-adv version 2015.0
compat 15
firmware base gluon-v2016.2.4 Betriebssystemversion
release 0.8.1 Pinneberger Firmwarebezeichnung
Datenblock 159 / jede Minute? Beschreibung
uptime
memory buffers
cached
total
free
traffic tx packets
dropped
bytes
rx packets
bytes
forward packets
bytes
mgmt_tx packets
bytes
mgmt_rx packets
node_id
rootfs_usage
idletime
gateway
clients wifi
total
processes total
running
loadavg
mesh_vpn groups backbone peers <peername> established
peers Nur Gate, Anzahl fastd VPN Peers
Datenblock 160 Beschreibung
batadv <mac> neighbours <mac> lastseen
tq
wifi <mac> neighbours <mac> noise
inactive
signal
nodeid

TODO RESTORE

alfred.txt · Zuletzt geändert: 24.07.2017 10:08 von havelock