Wifi Analyzer Alias App

Ich grabe das Thema Debugging mit Wifi Analyzer (Schöner testen mit Wifi Analyzer Aliases) noch mal wieder aus.

Der Ansatz war so:

Um diese Datei WifiAnalyzer_Alias.txt zu erstellen, habe ich eine einfache App entwickelt, die diese Datei aus der aktuellen Knotenliste generiert und am richtigen Ort speichert.

In dieser ersten Version geht das nur für die Domains Rheinufer und Düsseldorf.

Sourcen und APK-Datei für die Installation findet ihr hier: Release v0.9.0 · pixelistik/ff-alias-list-app · GitHub

Ich freue mich über euer Feedback, hier oder als Issues auf Github.

10 Likes

Neue Version 0.3.0

Die App kann jetzt Alias-Files für mehr Domains erstellen:

bestwig
bremen
brilon
euskirchen
ffdus (Freifunk Flingern)
flensburg
frankfurt_am_main
freifunk-duesseldorf
freifunk-rheinland
hattingen
krefeld
luebeck
mayen-koblenz
muensterland
neukirchen-vluyn
ostholstein
paderborn
pinneberg
ratingen
troisdorf
warendorf

Download wie gehabt hier:

1 Like

Coole Sache! Werde ich mal ausprobieren:

kannst du bei Gelegenheit unsere Subdomains von Möhne mit aufnehmen?

http://map.freifunk-moehne.de/data-arnsberg/nodes.json
http://map.freifunk-moehne.de/data-balvekierspe/nodes.json
http://map.freifunk-moehne.de/data-biggesee/nodes.json
http://map.freifunk-moehne.de/data-meschedebestwig/nodes.json
http://map.freifunk-moehne.de/data-moehnequelle/nodes.json
http://map.freifunk-moehne.de/data-moehnesee/nodes.json
http://map.freifunk-moehne.de/data-soest/nodes.json
http://map.freifunk-moehne.de/data-soesterumland/nodes.json
http://map.freifunk-moehne.de/data-sundern/nodes.json

Danke DIr!

Neue Version 0.4.0

Die App kann jetzt Alias-Files für mehr Domains erstellen:

moehne-arnsberg
moehne-balvekierspe
moehne-biggesee
moehne-meschedebestwig
moehne-moehnequelle
moehne-moehnesee
moehne-soest
moehne-soesterumland
moehne-sundern

Download wie gehabt hier:

1 Like

hab meine Liste gerade runter geladen, zeigt aber noch „freifunk“ an mit der MAC Adresse

Hast du die Liste mit „Manage aliases → Import“ importiert, wie oben in den Screenshots zu sehen?

Ansonsten würde ich dich bitten, mir mal

  • Subdomain
  • Hostname der Node
  • MAC der Node, wie sie der Wifi Analyzer anzeigt

geben könntest. Dann kann ich schauen, warum der Alias-Eintrag nicht wie erwartet da ist.

Habe Sie wie oben importiert. Dort stehen dann 333. Keine Alias-Umbenennung meines Knotens.

Sehe aber, dass mein Knoten nicht mit der jetzigen MAC Adresse in der Nodes.json auftaucht O.o

Also mein Smartphone mit wifi-analyzer „sieht“ die Macadresse vom interface „client1“ (Also wenn ich per ssh auf die Console gehe und ifconfig tippe)

in der nodes.json sind die von br-wan, mesh-vpn, bat-0, br-client

glaube da wirst du gerade nichts dran machen können.

Der Prozess „Alfred“ ist glaube ich für sie Sammlung der Daten zuständig? Genau weiß ich es leider auch nicht…

Genau deswegen habe ich den Thread Dokumentation zu nodes.json? aufgemacht.

Momentan mach ich mit den MACs aus der nodes.json schlimme Hacks: Zu jeder Adresse füge ich noch die „nächste“ und „vorherige“ hinzu, also aus

99:ee:ee:ee:01:01

werden

99:ee:ee:ee:01:01
99:ef:ee:ee:01:01
99:ed:ee:ee:01:01

Unter diesen Abwandlungen ist dann normalerweise auch die MAC des Access Point Interfaces.

Aber schön ist das nicht, verstehen wäre besser.

Hab mich schon gewundert, warum das 3 mal soviele Einträge sind…ja, ist unschön.

Was du brauchst ist die Client1 Adresse. Alfred müsste die dann mitauslesen, damit sie dann vom Knoten mit gemerged werden. Das müsste dann per Update verteilt werden. Also am besten direkt an die „Firmwarebäcker“ wenden. Oder vllt. doch ein Ticket im Github?

Hilfreich wäre es allemal, finde die Idee toll.

Die MAC-Adressen werden seit Gluon 2015.1.2 anders erzeugt, die WIFI-Interfaces mit:

macaddr = util.generate_mac(2, index),

Zitat aus gluon-v2015.1.2/package/gluon-core/files/usr/lib/lua/gluon/util.lua:

-- Generates a (hopefully) unique MAC address
-- The first parameter defines the function and the second
-- parameter an ID to add to the MAC address
-- Functions and IDs defined so far:
-- (1, 0): WAN (for mesh-on-WAN)
-- (1, 1): LAN (for mesh-on-LAN)
-- (2, n): client interface for the n'th radio
-- (3, n): adhoc interface for n'th radio
-- (4, 0): mesh VPN
function generate_mac(f, i)
  local m1, m2, m3, m4, m5, m6 = string.match(sysconfig.primary_mac, '(%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)')
  m1 = nixio.bit.bor(tonumber(m1, 16), 0x02)
  m2 = (tonumber(m2, 16)+f) % 0x100
  m3 = (tonumber(m3, 16)+i) % 0x100

  return string.format('%02x:%02x:%02x:%s:%s:%s', m1, m2, m3, m4, m5, m6)
end

Primary MAC ist zumindest derzeit noch die NodeID, alle zwei Stellen „:“ einfügen und gut ist. Sprich: es ändern sich die Bytes 1, 2 und 3 der Primary MAC, je nach Typ des Interfaces und laufender Nummer desjenigen.

Beispiel UAP Pro mit 2,4 und 5 GHZ sowie privatem WLAN:

Primäre MAC	24:a4:3c:b1:11:d9

bat0      Link encap:Ethernet  HWaddr 24:A4:3C:B1:11:D9  
br-client Link encap:Ethernet  HWaddr 24:A4:3C:B1:11:D9  
br-wan    Link encap:Ethernet  HWaddr 26:A5:3C:B1:11:D9  
client0   Link encap:Ethernet  HWaddr 26:A6:3D:B1:11:D9  
client1   Link encap:Ethernet  HWaddr 26:A6:3E:B1:11:D9  
eth0      Link encap:Ethernet  HWaddr 24:A4:3C:B0:11:D9  
local-node Link encap:Ethernet  HWaddr DE:CA:FB:AD:FF:FF  
mesh-vpn  Link encap:Ethernet  HWaddr 26:A8:3C:B1:11:D9  
mesh0     Link encap:Ethernet  HWaddr 26:A7:3D:B1:11:D9  
mesh1     Link encap:Ethernet  HWaddr 26:A7:3E:B1:11:D9  
wlan0-1   Link encap:Ethernet  HWaddr 24:A4:3C:B1:11:D9  
wlan1-1   Link encap:Ethernet  HWaddr 24:A4:3C:B2:11:D9  

Für die Anwendung hier sind entsprechend client0 und client1 interessant.

Nachtrag: s. a. hier und hier.

1 Like

Vielen Dank!

Das ist genau was ich brauche.

Neue Version 0.5.0

Die Ableitung der MAC-Adressen folgt jetzt dem von Gluon verwendeten Muster, danke @wusel!

@gomaaz probierst du es damit bei dir noch mal?

Download hier:

Bitte dran denken, daß das so erst ab Gluon v2015.1.2 ist; älteren Algo ggf. auf github nachschlagen.

sry die späte Antwort

Läuft aber! Routername wird mir angezeigt: top! :+1:

Sehr schön. Danke für die Rückmeldung!

Hi.
Saugeiles Projekt. Könntest du vielleicht noch freifunk-en (Witten, Hagen, Sprockhövel… etc) dazu nehmen?

…Christian

mhm, im Grunde wäre schön wenn du die nodes.json wie dei freifunk-karte das macht einfach holst. Also ich mein, über die freifunk Api kommst du in der Regel recht zuverlässig zu den nodes.json - sofern meshviewer oder alte ffmap/d3 im spiel ist.
Aber ich weis nicht was so eine 30.000 Knoten alias datei evtl für foo macht.

Gern, ich brauche dafür die URL zur nodes.json. Ist https://map.ff-en.de/nodes_data.json die Richtige, mit den Nodes aller eurer Domains?

Ich habe mir einen Buildprozess gebaut, der aus der Freifunk-API die URLs zu den nodes.json extrahiert. Daraus entsteht dann die Liste der unterstützten Domains im Code. Das ist leider ziemliches Gebastel :wink:

Eine Liste mit allen Freifunk-Routern würde den Wifi Analyzer wahrscheinlich lahmlegen. Schon bei 500 Nodes friert die App beim Import der Alias-Datei ~10sec ein.

1 Like

https://map.ff-en.de/data/ json en

1 Like