Add New Page: You are not allowed to add pages Select section/namespace. New page title.
 

Big Board Vision

a possible long-term design for a Commotion web-based management infrastructure, that includes both a network-wide interface and a local interface on the individual nodes.

It would include some client-side Javascript tools for rendering node diagrams which would load from LuCI, run from the browser and connect back to the JSON-RPC of that node and any other nodes you click on and have credentials for; a LuCI-based message queue that would push messages to an external server; a RestMQ-based (https://github.com/gleicon/restmq) external server that would aggregate those messages and possibly store them in a CommonNodeDB ( https://github.com/aaronkaplan/commonNodeDB ), and a web-based interface on the server for advanced rendering and mapping of the whole network, which would be able to queue up management messages to be sent back to the nodes, and which would share a lot of the Javascript used for the node-based interface. The node-based interface is provisionally called Littleboard, and the network-wide interface is Bigboard;

Big Board Roadmap

Proof of Concept

On Node

  • Lua script for collecting info
  • Config file that holds the address of any dashboards registered with the node
  • Watchdog/cron/bash script that checks for any registered dashboards, if they can be connected to, and then runs the lua script and sends it to the dashboard.
  • LuCI menu to allow a user to register a dashboard, or remove it from the list

Dashboard

  • ffmap-d3 setup on a server to visualize the mesh
  • extended “on-click” functionality for nodes to show the last monitoring dump sent by nodes.

Final Big Board Release

Node

  • Lua/C API
    • This will allow the C based Commotion Daemon to make Lua Calls, and have the lua scripts reeturn values to the C library
  • CommotionD package which advertises availability and data, and subscribes to dashboards.
  • A CommotionD monitor watchdog that monitors the database of dashboards the node is subscribed to and activates the monitoring scripts based upon their presence
  • A lua monitoring script that gathers data about the node and network around it and returns it when called
  • A Data Formatter that will process information sent to it into the type requested (format and encryption) and send it to the advertiser for transmission

Dashboard

  • Auto-generated mesh view
    • Customizable visual aspects based upon user chosen metrics.
  • time slider to allow for viewing the network over time
  • text-based view for looking at mesh and individual nodes
  • map view to allow for a user to drag and drop (or GIS tag) nodes onto a user-uploaded or web-based GIS map
  • Data format that allows long-term storage and easy manipulation with other tools
  • public/subscribe interface for announcing its presence to a mesh, and subscribing to nodes that may advertise to it
  • a tool for publishing secure requests to a node for more in depth information and for a node to make certain configuration changes.

BigBoard Implementation Notes

Communication needs

  • A new node entering a mesh advertises as a “node” to a predetermined dashboard or broadly to any dashboard service on a network
  • If a dashboard service is on the network it should announce itself to the node
  • Once associated the node and dashboard should follow a subscribe push model to allow for delay tolerance
    • Note: this means that we cannot use packet receipt time from the dashboard as accurate data creation time
  • Once associated with one or more dashboards a node will start collecting and publishing data.
  • A dashboard can public specific or broadcast requests for more information.

Dashboard

  • backend database
    • hold history of a nodes activity so that it can be used to see the node and network status over time
  • multiple interfaces
  • the interface should allow for text based and visualized interaction with the data
  • Delay Tolerance
    • advertisements from the node to the dashboard, and from the dashboard to the node should be able to be delay tolerant in order to accommodate future development

Data to be collected from the node

Simple

  • Node name
  • Commotion version
  • Platform
  • IP
  • Apps advertised
  • Number of clients connected
  • Neightbors

Simple, as seen from outside

  • Node name
  • Network Load
  • type of hardware (laptop, router, etc)
  • Commotion version
  • Platform
  • IP
  • Apps advertised
  • Number of clients connected
  • Average clients connected (or most connected in x time)
  • Neighbors
  • Features?

Advanced

  • Network load
  • MAC Address
  • Uptime
  • Amount of data/traffic
  • Network history
  • Gateways
  • Links
  • Features
  • Node settings
  • Node's last action
  • Traffic amount over interfaces

Debugging menu

  • tracert
  • ping time to network

o Ping Alternative

        x http://www.spin.rice.edu/Software/pathChirp/
    o compared to other nodes in the network to detect lag
    o "Notify commotion about your network?"
    o Default address set but is changeable
* DNS baked in
    o Sweep for DNS server on network
    o Possible issue if someone has a poisonous DNS server or is
      MITMing network
    o tlsdate or other SSL check (possibly connect with
      commotionwireless.net and compare known SSL thumbprint?)
    o else, bake in known-good DNS server (93.95.226.146/teamhugs.is?)

Node interaction with Commotion Daemon

Brainstorm Documents for Big Board

Possible Monitoring Suites

Opennet-initiative maps and monitoring suite

Dashboard brainstorm

Simple

  • Node name
  • Commotion version
  • Platform
  • IP
  • Apps advertised
  • Number of clients connected
  • Neighbors

Simple, as seen from outside

  • Node name
  • Network Load
  • type of hardware (laptop, router, etc)
  • Commotion version
  • Platform
  • IP
  • Apps advertised
  • Number of clients connected
  • Average clients connected (or most connected in x time)
  • Neighbors
  • Features?

Advanced

  • Network load
  • MAC Address
  • Uptime
  • Amount of data/traffic
  • Network history
  • Gateways
  • Links
  • Features
  • Node settings
  • Node's last action
  • Traffic amount over interfaces

Debugging menu

  • tracert
  • ping time to network
    • compared to other nodes in the network to detect lag
    • “Notify commotion about your network?”
    • Default address set but is changeable
  • DNS baked in
    • Sweep for DNS server on network
    • Possible issue if someone has a poisonous DNS server or is MITMing network
    • tlsdate or other SSL check (possibly connect with commotionwireless.net and compare known SSL thumbprint?)
    • else, bake in known-good DNS server (93.95.226.146/teamhugs.is?)