Antecedents

Version 1 (Nicolás Echániz, 05/07/2013 08:06 pm)

1 1 Nicolás Echániz
h1. libre-mesh antecedents
2 1 Nicolás Echániz
3 1 Nicolás Echániz
h2. AlterMesh
4 1 Nicolás Echániz
5 1 Nicolás Echániz
AlterMesh was designed as a simple fully auto-configurable firmware for multi-radio nodes to enable the deployment of community networks in small towns that usually lack technically oriented people with specific networking skills. It's part of the MiniMaxi network model developed by AlterMundi. It uses batman-adv as dynamic routing protocol and takes advantages of the L2 cloud for easy public IPv6 provision.
6 1 Nicolás Echániz
7 1 Nicolás Echániz
h3. Components:
8 1 Nicolás Echániz
9 1 Nicolás Echániz
* "firmware":https://colectivo.altermundi.net/projects/altermesh-packages/repository:
10 1 Nicolás Echániz
** batman-adv-auto-gw-mode, gw_mode=master on Internet connected nodes
11 1 Nicolás Echániz
** batmesh-autoconf, batman mesh auto-config
12 1 Nicolás Echániz
** safe-reboot, config testing and revert on fail
13 1 Nicolás Echániz
** watchping, versatile ping watchdog
14 1 Nicolás Echániz
** altermesh-webgui, minimalistic web gui (work in progress)
15 1 Nicolás Echániz
* chef, firmware "cooker" http://chef.mesh.altermundi.net
16 1 Nicolás Echániz
* "altermap":https://colectivo.altermundi.net/projects/altermap, federated "network map":http://mapa.mesh.altermundi.net (CouchApp).
17 1 Nicolás Echániz
* "ruci":https://colectivo.altermundi.net/projects/ruci, remote config administration
18 1 Nicolás Echániz
* Librenet6 mesh tunnel broker
19 1 Nicolás Echániz
* dynamic global hostname resolution
20 1 Nicolás Echániz
21 1 Nicolás Echániz
22 1 Nicolás Echániz
h2. qMp
23 1 Nicolás Echániz
24 1 Nicolás Echániz
It is a firmware to easy and quick build a mesh network. It tries to be as generic as possible.
25 1 Nicolás Echániz
26 1 Nicolás Echániz
Two modes:
27 1 Nicolás Echániz
28 1 Nicolás Echániz
* Roaming: for quick deployments, for instance to cover a natural disaster
29 1 Nicolás Echániz
* Community: for network communities such as Guifi or NiNux
30 1 Nicolás Echániz
31 1 Nicolás Echániz
Each mode has its own needs. User can select his mode.
32 1 Nicolás Echániz
33 1 Nicolás Echániz
h3. Characteristics
34 1 Nicolás Echániz
35 1 Nicolás Echániz
* Complete LUCI-based web interface
36 1 Nicolás Echániz
** Wizard
37 1 Nicolás Echániz
** Configuration
38 1 Nicolás Echániz
** Tools for measure the network
39 1 Nicolás Echániz
** Tools to monitorize the network
40 1 Nicolás Echániz
* Native IPv6 (ULA if user does not configure public ipv6)
41 1 Nicolás Echániz
* IPv4 is tunneled over IPv6 backbone ( There is some MTU stuff to take in account ? )
42 1 Nicolás Echániz
* Use VLAN tags to isolate routing protocol
43 1 Nicolás Echániz
* Each interface can be configured in three modes:
44 1 Nicolás Echániz
** LAN
45 1 Nicolás Echániz
** WAN
46 1 Nicolás Echániz
** MESH
47 1 Nicolás Echániz
* Shell tools to manage and monitorize the system
48 1 Nicolás Echániz
** qmpcontrol
49 1 Nicolás Echániz
** qmpinfo
50 1 Nicolás Echániz
* Auto-upgrade system implemented
51 1 Nicolás Echániz
* Complete autoconfiguration system
52 1 Nicolás Echániz
* Map Tool based on OpenStreetMaps (b6m)
53 1 Nicolás Echániz
* Gateway checker (gwck) to auto-publish internet
54 1 Nicolás Echániz
* TINC VPN to manage the nodes in remote
55 1 Nicolás Echániz
* Structured as feed for OpenWRT (in packages)
56 1 Nicolás Echániz
* Splash screen support (configurable via web iface)
57 1 Nicolás Echániz
* Small chat using bmx6 sms plugin :-P
58 1 Nicolás Echániz
59 1 Nicolás Echániz
h3. Components
60 1 Nicolás Echániz
61 1 Nicolás Echániz
* qmp firmware
62 1 Nicolás Echániz
* qmpfw a powerful tool to build automaticaly the firmware from a shell
63 1 Nicolás Echániz
* synctincvpn cake-PHP web interface (for manage the network in remote)
64 1 Nicolás Echániz
* synctincvpn client (installed in the nodes)
65 1 Nicolás Echániz
* LUPI, a Lua API for OpenWRT
66 1 Nicolás Echániz
67 1 Nicolás Echániz
68 1 Nicolás Echániz
h2. eigenNet
69 1 Nicolás Echániz
70 1 Nicolás Echániz
For eigenNet we have developed a set of tools, to help deploing the community network in the simplest way possible ( just flash and plug ).
71 1 Nicolás Echániz
72 1 Nicolás Echániz
h3. Key Features
73 1 Nicolás Echániz
74 1 Nicolás Echániz
Completely decentralized and human indipendent autoconfiguration, native client roaming in the same cloud, basic multicast support, L3 agnostic, (a lot of other things i don't remember now :| )
75 1 Nicolás Echániz
76 1 Nicolás Echániz
h3. Components
77 1 Nicolás Echániz
78 1 Nicolás Echániz
Nodes based on openwrt with batman-adv does just L2 things except for gateway checking
79 1 Nicolás Echániz
80 1 Nicolás Echániz
* eigennet-autoconf autoconfigure the nodes to make the mesh and/or make hotspot
81 1 Nicolás Echániz
* eigennet-bwtest Bandwidth Measurement Tool using nc yes and pv commands
82 1 Nicolás Echániz
* eigennet-bwtest-webui Bandwidth Measurement Tool Web Interface (need some refactoring to be luci compatible)
83 1 Nicolás Echániz
* eigennet-firewall Layer 2 Firewall based on ebtables, provide common rules out of the box ( like DHCP isolation )
84 1 Nicolás Echániz
* eigennet-gw4server IPv4 Gateway Checker ( i think this si the same as altermesh batman-adv-auto-gw-mode )
85 1 Nicolás Echániz
* eigennet-httpinfo Export info via HTTP protocol ( just some cgi script on uhttpd ) (need some refactoring to be luci compatible)
86 1 Nicolás Echániz
* eigennet-pointing Antenna Pointing Tools
87 1 Nicolás Echániz
* eigennet-pointing-webui Antenna pointing tools Web Interface (need refactoring to be luci compatible)
88 1 Nicolás Echániz
* eigennet-reghack Regulatory domain unlocker
89 1 Nicolás Echániz
90 1 Nicolás Echániz
Server ( Border gateways and various services) based on gentoo
91 1 Nicolás Echániz
92 1 Nicolás Echániz
* babeld as L3 routing (read routes directly from routing table, powerfull route filtering - announcing, forwarding and also receiving! -, near to 0 footprint on vpn/wired links)
93 1 Nicolás Echániz
* babeld-route-share a little daemon that check "static" routes validity and add/remove them from routing table
94 1 Nicolás Echániz
* Anycast DNS
95 1 Nicolás Echániz
* Anycast ipv6 gateway ( we are doing this only for ipv6 because in ipv4 we are natted so it would break some connection )