Open thepaffy opened 7 years ago
Problem: In our Firmware, we use the 802.11s standard for the mesh connection. The iw and the iwinfo command are unable to scan for 11s networks, because 11s networks don't broadcast an ESSID. 11s networks are using meshnet id's instead.
Solution: Our meshnet id is, for example, "meshnet.freifunk-ww.de" and our client ESSID is "freifunk-ww.de". The node could be scan for client networks with "freifunk-*.de" as ESSID. If there is an ESSID with, "freifunk-xy.de", there should be an meshnet with "meshnet.freifunk-xy.de" as meshnet id.
But there is an second problem now: The node don't know that "freifunk-xy.de" is part of our network and he don't can verify that, because the ESSID is not deposit in the firmware.
The solution for the second problem could be the following: The node can connect to the "freifunk-xy.de" ESSID as client and now try to connect to one of our supernodes via his public ip. Then the node sends the supernode his current ESSID and if the ESSID is part of our network, the supernode answers with the correct meshnet id, and all other important settings. Because the node is unable to initiate an SSL encrypted connection, the information should be signed. That could be done with the same keys as for firmware signing. If the network is unkown, the supernode should ony answer with "unknown". In this case, the node disconnects from the ESSID and keep scanning.
Maybe we can check to meshnet.freifunk-*.de, didn't see any other community using meshnet in there ESSID before.
A node with only a mesh link must be able to find new mesh networks, after a new segment is created.