Difference between revisions of "Mesh/Firmware/Overview"

no edit summary
Line 46: Line 46:
[https://wiki.openwrt.org/doc/techref/swconfig swconfig] is an OpenWRT binary for switch configuration. The routers have a switch that can be used to recognized [https://en.wikipedia.org/wiki/Virtual_LAN Virtual LAN (VLAN)]. You 5 different Ethernet devices,
[https://wiki.openwrt.org/doc/techref/swconfig swconfig] is an OpenWRT binary for switch configuration. The routers have a switch that can be used to recognized [https://en.wikipedia.org/wiki/Virtual_LAN Virtual LAN (VLAN)]. You 5 different Ethernet devices,
but it's not that there are 5 different Ethernet interfaces, but instead the router is a switch that uses VLANs. You can configure traffic coming in on a specific VLAN so that it can be recognized (VLAN tagged) and routed as needed. You can have multiple layer 2 Ethernet networks on the same wire.
but it's not that there are 5 different Ethernet interfaces, but instead the router is a switch that uses VLANs. You can configure traffic coming in on a specific VLAN so that it can be recognized (VLAN tagged) and routed as needed. You can have multiple layer 2 Ethernet networks on the same wire.
Use swconfig to see if there are other switches available by running `swconfig list`. Once you identify the device, run `swconfig dev eth0 show`. You will see
the various physical ports first, then you will see each VLAN.
The uplink port may show up in the list depending on the device.
Get the IP for the extenders from:
less /etc/config/notdhcpserver
There is a library that can be used to read from this config file, as well as
a command, called `uci` (unified configuration interface) that allows you to
obtain information such as the IP address of the extender nodes.
  uci show notdhcpserver
  uci show notdhcpserver[0].addresses
= Debugging =
```
babeld -i
```
Provides the entire babel routing table. This provides you with the data on every
node on the entire network. Everything connected to the mesh that you can
reach will be listed (nodes and extender nodes, not hosts).
babel is the daemon that broadcasts routes that are available via the ad-hoc network connection. The age provides how long ago the node announced it's existence. When a node becomes too old, it gets dropped from the table.
The mesh node will always try to route via the node that has the lowest metric. It tracks the metric also. The 'nexthop' value helps provide information used for routing. It's very lightweight, not complex.
We're using a modified version of babel. It wasn't possible to dynamically configure babel while it is running, so we added that feature. Right now your mesh node is routing traffic to the exit node that SudoMesh / PeoplesOpen.net setup, which is the gateway from the VPN to the Internet.
== Extender Node ==
In the sudowrt-firmware code on Github, there is a file under openwrt_config/packages.extender-node contains the packages that are installed in the extender node.
libopenssl, uhttpd and uttpd-mod-ubus (module for uhttpd that acts as proxy between HTTP interface and local ubus, running on port 80)
It would be ideal to have an SSL between. Marc has this ready, he'll apply this later after a ubus solution is implemented.
You do have to provide a password when accessing the ubus interface. That may not be setup with extender nodes.
The extenders are registered with notdhcp, so it would also be best if we could ask notdhcp for the passwords needed to auth and communicate with the ubus HTTP. It's currently not possible to ask notdhcp for that information while it's running (but planned to be implemented).
128

edits