Hopglass Server aliases.json Linux Gateway

Vllt. kann mir jemand helfen, oder ich bin einfach nur blind. Ich Versuche in der aliases.json einen Server unterzubringen der als Gateway angezeigt werden soll.

So sieht sie aus:

{
"2e9dfaa16b05": {
  "nodeinfo": {
    "owner": {
      "contact": "info@example.org"
    },
    "hostname": "VPN-Exit-5",
    "network": {
      "addresses": [
        "2a03:2260:121::255:5",
        "10.188.255.5"
      ],
      "mac": "2e:9d:fa:a1:6b:05"
    },
    "node_id": "2e9dfaa16b05",
    "hardware": {
      "model": "Debian 8 vServer"
    },
   },
   "flags": {
    "online": true,
    "gateway": true
   }
  }
}

Das ist die Antwort:

undefined:19
   },
   ^

SyntaxError: Unexpected token }
    at Object.parse (native)
    at /opt/freifunk/hopglass-server/hopglass-server.js:46:22
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)
 "hardware": {
    "model": "Debian 8 vServer"
 },

Da muss }, komplett weg, du schließt damit die nodeinfo sowie ich das sehe :wink:

1 „Gefällt mir“

Das Komma hinter dem Hardware-Block ist zu viel. So sollte es passen:

"hardware": {
  "model": "Debian 8 vServer"
}

statt

"hardware": {
  "model": "Debian 8 vServer"
},
3 „Gefällt mir“

stimmt nur das Komma muss weg

1 „Gefällt mir“

Da war es wieder mit diesem Wald und Bäumen :wink:

Es gibt auch immernoch keine möglichkeit Linux mit dem Hopglass Server reden zu lassen oder?

Das Problem fürs Gateways erkennen ist, dass die Daten nur mit root-Rechten erreichbar sind. Die liegen nämlich entweder unter /proc/kernel/debug oder in batctl (zeigt eben diese Datei an).

Ich bin ja eigentlich auch mit dem aliases.json zufrieden. Aber ich bekomme es Trotzdem nicht hin.

Siehe: http://hopglass.freifunk-troisdorf.de (:4000 für die jsons)

Mit dem ffmap Backend auf dem Alten Server geht es: https://map.freifunk-troisdorf.de . Da konnten wir aber auch von den Gateways aus einfach Alfred daten schicken.

Ist doch mal eine realistische Darstellung vom Netz :wink:
Moment ich schaue drüber…

Dir fehlen die „neighbours“-Infos:

  "2e9dfaa16b05": {
    "nodeinfo": {
      "owner": {
        "contact": "info@example.org"
      },
      "hostname": "VPN-Exit-5",
      "network": {
        "addresses": [
          "2a03:2260:121::255:5",
          "10.188.255.5"
        ],
        "mac": "2e:9d:fa:a1:6b:05"
      },
      "node_id": "2e9dfaa16b05",
      "hardware": {
        "model": "Debian 8 vServer"
      }
    },
    "flags": {
      "gateway": true
    },
    "neighbours": {
       "batadv": {
          "2e:9d:fa:a1:6b:05": {}
       }
    }

Den online flag würde ich weglassen.

1 „Gefällt mir“

Das sieht schon schöner aus.

Bekomme ich die „Kabel“ Links auch als VPN hin?

Welches Gluon habt ihr?

2016.1.2

20 zeichen…

pbb@ultra ~> curl http://hopglass.freifunk-troisdorf.de:4000/raw.json | jq . | grep tunnel
        "tunneldigger": {
pbb@ultra ~> curl https://karte.ffdus.de/data/raw.json | jq . | grep tunnel
              "tunnel": [
              "tunnel": [
              "tunnel": [
              "tunnel": [
              "tunnel": [
...

Eure Knoten reporten ihre Mesh-VPN-Interfaces als „other“, nicht „tunnel“.

Die Tunnel haben auf dem Server alle unterschiedliche MAC Adressen. Vorher hatten wir die in der Aliases… Müssen wir das wieder machen?

Nein ich rede von den Routern. Ihr benutzt L2TP, oder?

Ja wir benutzen L2TP

Dann liegt da das Problem: Die L2TP-Interfaces der Router werden nicht als „tunnel“ deklariert im Gluon.

Gibt es da ne lösung für? Auf Gluon seite oder auf Hopglass seite?

Fürs erste kannst du im HopGlass in lib/main.js das umpatchen. Ich mache schnell einen branch dafür…
Dann werden alle nicht-Wifi-Verbindungen als VPN dargestellt (incl. Kabel).

Auf Dauer muss das im L2TP-Paket gefixed werden. Ich suche mal was dazu raus.

Update:
Branch plumpudding/hopglass/l2tp-quickfix

Benutzt ihr den hier?
https://github.com/ffrl/tunneldigger

1 „Gefällt mir“

Ja den benutzen wir… bzw. Das Gluon Paket davon im selben Repo

Ist doch in Gluon…:

gluon/package/gluon-mesh-batman-adv-core/src/respondd.c:124

if (interface_file_exists(ifname, "wireless"))
	json_object_array_add(wireless, address);
else if (interface_file_exists(ifname, "tun_flags"))
	json_object_array_add(tunnel, address);
else
	json_object_array_add(other, address);

@stefan Kannst du mal bitte auf einem Router folgendes machen:
$IFACE ist das L2TP Interface

# ls -la /sys/class/net/$IFACE