Router wird als Client auf der Map angezeigt

Der Router ist ohne Lankabel. Er ist nicht am Internet angeschlossen sondern soll sich das Internet vom ebicc holen.

Das Problem hat mein Node „FF-Essen-Doro-02“ auch. Insgesamt sind 31 Nodes betroffen. Diese werden in der Liste http://map.freifunk-ruhrgebiet.de/list.html mit ihrer MAC Adresse als Name dargestellt. Diese MAC Adresse beginnt bei den betroffenen Nodes immer mit „12:“ und es scheinen nur WR841nd v8 betroffen zu sein. Eine weitere Gemeinsamkeit ist dass diese Nodes in der JSON Node List http://map.freifunk-ruhrgebiet.de/nodes.json jeweils 2 Einträge haben, welche beide unvollständig sind.

Ich gehe davon aus dass hier ein Problem bei der Erstellung der nodes.json vorliegt, kann das aber leider nicht weiter eingrenzen. In der Datei http://map.freifunk-ruhrgebiet.de/alfred/alfred.json taucht das Problem nicht auf. Mann kann daher davon ausgehen das die von den Nodes gelieferten Daten grundsätzlich richtig sind. Auch die Quellen der Skripte welche die nodes.json erzeugen - insbesondere bat2nodes.py - lassen keinen Schluss auf die Ursache zu. Vielleicht kommt jemand anderes an dieser Stelle weiter?

2 Likes

In Nutzung ist aber: http://map.freifunk-ruhrgebiet.de/alfred/alfred_merged.json statt alfred.json…

Ja richtig - http://map.freifunk-ruhrgebiet.de/alfred/alfred_merged.json ist die Quelle für http://map.freifunk-ruhrgebiet.de/alfred/alfred.html. Auch hier sind die fraglichen Nodes korrekt enthalten. Graph, Karte und Liste verwenden aber die nodes.json als Quelle - und die ist in Teilen fehlerhaft.

Was fehlt denn da an Daten oder ist falsch in der nodes.json?

Habe das gleiche Problem für Freifunk Rheinland. Der Router ist direkt über LAN angeschlossen.

Das erklärt evtl. einiges.
Du darfst den Router nicht über LAN anschliessen, da ist sogar ziemlch schlecht fürs Netz.
Wenn Du zwei FF-Router mit einander verbinden willst, dann nur über WAN. (und dann „Mesh on Wan“ aktivieren bei beiden)

Der Router (ffac-haarener-gracht) ist über einen Nicht-Freifunk-Router mit dem Internet verbunden. Beim Nicht-Freifunk-Router an einem LAN-Port, beim WR841nd v8 an dem WAN-Port, dazwischen ein LAN-Kabel. Man kommt über den Freifunkrouter ins Netz und er wurde auch schon mehrere Monate lang korrekt in der Liste und in der Karte angezeigt. Erst seit kurzem kann ich ihn in der Liste nicht mehr finden. In der nodes.json ist er als Client gelistet:

{
 "macs": "",
 "name": "ffac-haarener-gracht",
 "firmware": "2014.4-stable-2",
 "flags": {"client": true, "gateway": false, "online": true},
 "clientcount": 0,
 "geo": [50.79604, 6.12766],
 "id": "12:02:ed:39:8f:30_2"
}

In der alfred.json und alfred_merged.json konnte ich den Router finden.

Da lange Zeit alles ok war, gehe ich davon aus, dass das Problem durch ein Autoupdate oder eine Änderung der Software für die Knotenliste entstanden ist.

Insgesamt sind über 30 Nodes betroffen. Diese werden in der Liste http://map.freifunk-ruhrgebiet.de/list.html mit ihrer MAC Adresse als Name dargestellt. Diese MAC Adresse beginnt bei den betroffenen Nodes immer mit „12:“ und es scheinen nur WR841nd v8 betroffen zu sein. Eine weitere Gemeinsamkeit ist dass diese Nodes in der JSON Node List http://map.freifunk-ruhrgebiet.de/nodes.json jeweils 2 Einträge haben, welche beide unvollständig sind. Das sieht dann wie folgt aus:

{
„uptime“: null,
„macs“: „12:01:ee:9c:16:e0“,
„name“: „“,
„clientcount“: 3,
„flags“:
{
„client“: false,
„gateway“: false,
„online“: true
},
„model“: null,
„firmware“: null,
„geo“: null,
„id“: „12:01:ee:9c:16:e0“
},
{
„uptime“: 710203.2,
„macs“: „“,
„name“: „FF-Essen-Doro-02“,
„clientcount“: 0,
„flags“:
{
„client“: true,
„gateway“: false,
„online“: true
},
„model“: „TP-Link TL-WR841N/ND v8“,
„firmware“: „0.6“,
„geo“:
[
51.43645,
7.00695
],
„id“: „12:01:ee:9c:16:e0_0“
}

Eigentlich sollten diese beiden Einträge in einem zusammengefasst sein. So aber, wird in der Karte kein Link angezeigt, im Graph fehlt der Knoten welcher als Client angezeigt wird und in der Liste wird der Node mit MAC Adresse statt Namen geführt. Es handelt sich hier um einen Node welcher über WLAN „meshed“ und keine eigene VPN Verbindung hat.

Stimmt auch dieser Router beginnt mit der 12 !

Leider bin ich jetzt nicht der Technikspezialist.

Würde mich aber tierisch freuen, wenn meine Router sich auf der Karte schön vermesht zeigen würden. Kann sich einer vorstellen, was das ist?

Hab noch einen gefunden:

FF-WIT-HL03 / 12:01:ee:eb:4b:a2_0

Dann weiß ich schon so ungefähr woran es liegt.

Um für die 2014.3.1 kompatibel zu werden haben wir die Alfred Daten mit in das ffmap Backend geschoben.

Nun scheint es so zu sein das bei einzelnen Routern die Mac-Adresse abweichend ist und deshalb nicht in einen einzelnen Eintrag gemerged wird. Man müsste vorher quasi die _0 abschneiden.

Von dem Suffix _0 kann ich in den ALFRED Daten nichts sehen. Dort hat der Node allerdings die ID 10:fe:ed:9c:16:e0. Wird da auf 2 unterschiedliche Interfaces geschaut (einmal eth1 und einmal wlan0)?

„10:fe:ed:9c:16:e0“: {
„location“: {
„longitude“: 7.00695,
„latitude“: 51.43645
},
„network“: {
„mac“: „10:fe:ed:9c:16:e0“,
„addresses“: [
„fe80:0:0:0:12fe:edff:fe9c:16e0“,
„2a03:2260:50:1:12fe:edff:fe9c:16e0“,
„fda0:747e:ab29:cafe:12fe:edff:fe9c:16e0“
],
„mesh_interfaces“: [
„12:01:ee:9c:16:e0“
]
},
„node_id“: „10feed9c16e0“,
„hostname“: „FF-Essen-Doro-02“,
„software“: {
„fastd“: {
„version“: „v16“,
„enabled“: false
},
„autoupdater“: {
„enabled“: true,
„branch“: „stable“
},
„firmware“: {
„base“: „gluon-v2014.4“,
„release“: „0.6“
},
„batman-adv“: {
„compat“: 14,
„version“: „2013.4.0“
}
},
„hardware“: {
„model“: „TP-Link TL-WR841N/ND v8“
},
„uptime“: 715543.22,
„rootfs_usage“: 0.36875,
„memory“: {
„free“: 5944,
„cached“: 4172,
„total“: 28860,
„buffers“: 1340
},
„clients“: {
„wifi“: 2,
„total“: 2
},
„idletime“: 624634.8,
„processes“: {
„total“: 45,
„running“: 1
},
„gateway“: „02:bf:ef:ca:fe:4c“,
„traffic“: {
„tx“: {
„packets“: 5322332,
„bytes“: 494394827,
„dropped“: 10892
},
„mgmt_tx“: {
„bytes“: 2576466282,
„packets“: 8834766
},
„rx“: {
„bytes“: 12257468454,
„packets“: 56781953
},
„mgmt_rx“: {
„bytes“: 2570774890,
„packets“: 8152256
},
„forward“: {
„bytes“: 301992,
„packets“: 1365
}
},
„loadavg“: 0.23
}

Hallo zusammen,
das gibts mit der Münchner FFmuc-Software auch, auch mit dem 841n v8.

Als Nichttechniker habe ich das Problem an meinem Router dadurch lösen können,
das ich 2 MAC-Adressen entfernt habe (die es in der vorherigen FFmuc-Software-Versin nicht gab)

uci delete wireless.client_radio0.macaddr
uci delete wireless.mesh_radio0.macaddr
uci commit
reboot

WICHTIG: ich weiß nicht was ich da genau getan habe, bei mir und für München hats geholfen - mehr kann ich da nicht sagen. Aber vielleicht hiltfs denn Bastern unter euch.

Grüße ins Ruhrgebiet
Christian

Mit einer aktuelleren Version des ffmap-backend gibt es das Problem übrigens nicht.
War selbst davon betroffen, und habe testweise mal neuere Versionen von ffmap-d3 und ffmap-backend ausprobiert.
Vielleicht hängt das auch mit der Fuzyy-MAC-Adress-Erkennung in der alten Version zusammen, hatte aber bisher noch keine Zeit, mir das im Detail anzuschauen.

Wenn mir jemand Eure alfred.json und die Ausgabe von batadv-vis zukommen lässt, erzeuge ich mal eine nodes.json mit dem aktuellen Backend und kann Euch testweise mal einen Graphen generieren.

Richtig, das liegt an der alten nodedb.py, die neueste Version von vor einer Woche scheint die Probleme nicht mehr zu haben, sieht auch vollkommen anders aus als unsere Version.

Da wir ein sehr speziell umgebogenes Gerüst bei uns im Einsatz haben, werden wir das Backend jedoch nicht mehr wechseln und warten darauf das @johnyb eine erste Version des neuen Mapservers mit dem Codenamen Panoptikum fertig bekommt.

Hi,
mit dieser Änderung in nodedb.py sollten alle nodes richtig angezeigt werden.

root@yildun:/opt/ffmap-backend# diff -u nodedb.py-ffmuc-original nodedb.py-so-geht-es
--- nodedb.py-ffmuc-original    2015-02-25 21:25:07.698098999 +0100
+++ nodedb.py-so-geht-es        2015-02-25 21:29:22.478098999 +0100
@@ -85,7 +85,7 @@
         try:
           if 'neighbor' in x:
             try:
-              node = self.maybe_node_by_mac((x['neighbor']))
+              node = self.maybe_node_by_mac((x['neighbor'], ))
             except:
               continue

@@ -373,8 +373,14 @@
     delta = 0

   if len(c) > 0:
-    delta = sum(abs(i[0] -i[1]) for i in c)
-
+    delta = 0
+    for i in c:
+      ddd = abs(i[0] -i[1])
+      if ddd > 128:
+        ddd = abs(ddd - 256)
+      delta = delta + ddd
+    #delta = sum(abs(i[0] -i[1]) for i in c)
+  if delta > 8:
   # These addresses look pretty similar!
   return delta < 8

@@ -393,7 +399,7 @@

   x = list(mac_a)
   x[5] += 1
-  x[5] %= 255
+  x[5] %= 256
   if mac_b == x:
     return True

@@ -402,21 +408,21 @@
     return True

   x[3] += 1
-  x[3] %= 255
+  x[3] %= 256
   if mac_b == x:
     return True

   x = list(mac_a)
   x[0] |= 2
   x[5] += 2
-  x[5] %= 255
+  x[5] %= 256
   if mac_b == x:
     return True

   x = list(mac_a)
   x[0] |= 2
   x[3] += 1
-  x[3] %= 255
+  x[3] %= 256
   if mac_b == x:
     return True

###

Servus
Christian

1 Like

Ich finde die „Treppchen“ in der Aachener Map schick.

Die Änderungen legen das Backend lahm:

  File "/home/ffmap/ffmap-adv/bat2nodes.py", line 11, in <module>
    from nodedb import NodeDB
  File "/home/ffmap/ffmap-adv/nodedb.py", line 385
    return delta < 8
         ^

Mein Fehler!

Die Zeile

  if delta > 8:

muss raus, war leider noch drin, hatte zum debug eingebaut und unvollständig wieder raus genommen.

  if delta > 8:
    print ("is_similar",c,delta,a,b)

So sollte es sein:

root@yildun:/opt/ffmap-backend# diff -u nodedb.py-ffmuc-original nodedb.py-so-geht-es
--- nodedb.py-ffmuc-original    2015-02-25 21:25:07.698098999 +0100
+++ nodedb.py-so-geht-es        2015-02-27 08:38:21.396502999 +0100
@@ -85,7 +85,7 @@
         try:
           if 'neighbor' in x:
             try:
-              node = self.maybe_node_by_mac((x['neighbor']))
+              node = self.maybe_node_by_mac((x['neighbor'], ))
             except:
               continue

@@ -373,8 +373,12 @@
     delta = 0

   if len(c) > 0:
-    delta = sum(abs(i[0] -i[1]) for i in c)
-
+    delta = 0
+    for i in c:
+      ddd = abs(i[0] -i[1])
+      if ddd > 128:
+        ddd = abs(ddd - 256)
+      delta = delta + ddd
   # These addresses look pretty similar!
   return delta < 8

@@ -393,7 +397,7 @@

   x = list(mac_a)
   x[5] += 1
-  x[5] %= 255
+  x[5] %= 256
   if mac_b == x:
     return True

@@ -402,21 +406,21 @@
     return True

   x[3] += 1
-  x[3] %= 255
+  x[3] %= 256
   if mac_b == x:
     return True

   x = list(mac_a)
   x[0] |= 2
   x[5] += 2
-  x[5] %= 255
+  x[5] %= 256
   if mac_b == x:
     return True

   x = list(mac_a)
   x[0] |= 2
   x[3] += 1
-  x[3] %= 255
+  x[3] %= 256
   if mac_b == x:
     return True

Servus
Christian

1 Like

Ist das Problem eigentlich gelöst?

Mein 841ND wird auch als Client gelistet (Domäne Ruhrgebiet / Community Mönchengladbach)