I've been lurking on the list for a while, and here's the best solution to the mesh network idea I can think of so far. And, as a counterargument, why mesh networks built out of 802.11 are unlikely to be pleasant to use.
Consider that what you want to build is a wireless network such that access points which have landline Internet access can provide that as a service to the network, and access points which do not have landline Internet access still can provide Internet connectivity. Also assume that the "landline Internet access" is a "retail ISP" service. In other words, the connection doesn't support a routing protocol such as BGP, the number of IP addresses allocated is small (possibly one) and perhaps not even static. Further, assume that the access nodes and the landline Internet access is somewhat unreliable (in other words, the landline connections might disappear due to ISP failure, telco failure, or the person providing that point might choose to discontinue doing so). The initial problem to be solved is: user-level access to the global Internet (we assume in this case no servers which require globally reachable addresses) To solve: Build a wireless mesh network between all available access points, as fully-connected as practical. Use a dynamic routing protocol so that all access points can reach all other access points even as network topology changes. The protocol interconnecting the access points on the air need not be the same protocol (or even frequency range, if multiple radios/ antennas are available) as is used for end-user access. Build into the access points and network a protocol for the distributed allocation of private addresses which are unique across the mesh to the end user stations. Build into the access points a protocol for determining what the best (perhaps closest, perhaps least utilized) landline-served access point to assign to each user. And a protocol for distributing to each access point the availability of the landline connections. (In other words, those APs with landline connections advertise the availability of that landline link, including whether or not it is current 'up', and all APs have a table of those from which to assign end-user stations as end-users show up wanting access) Implement a distributed NAT where the NAT takes place at the AP-landline interface. There's then a variety of options for getting the traffic from the AP serving a given end-user to the AP which is providing that user's landline connection (if it isn't the same AP)... tunneling is an easy answer... implementing something akin to MPLS for the inter-AP network is another. Alternatively if the "determine the best landline-served access point" decision is identical to "determine what this access point's default route" should be, that works for non-changing networks. It breaks the end-user to landline-access-point association upon rerouting, though. Getting the traffic back is easier, since you can simply route the traffic back from the landline-connected AP w/NAT towards the end-user station. Extras: Have landline-connected APs which have extra static addresses provide those to the network as a resource for servers to bind to (via NAT/PAT). Learn the width of the upsteam ISP anti-spoofing filters so that outbound traffic for a given NAT association could be spread or switched to alternate outbound connections. Why this is a bad idea: The number one reason I am opposed to large wireless mesh networks built out of available cheap wireless technology (eg., 802.11) is latency. Any proposal for a mesh network that does not specifically address and analyze the latency experienced by the users and that impact on the provided network service is horribly incomplete. Thus there may not be a good reason to bother writing the software which would be required to implement my suggestion, except perhaps to provide for a highly-available end-user access (albeit with low performance) to the Internet for situations such as post-disaster access by emergency operations centers using whatever ISP connections are still up, wherever they can be found within the mesh. On the other hand, getting from what exists today to what I've described is simply a software problem... much of it solvable using existing software components. Disagree with what I've said? Can't understand something I wrote? Think I left something out? Send me email. Matthew Kaufman -- general wireless list, a bawug thing <http://www.bawug.org/> [un]subscribe: http://lists.bawug.org/mailman/listinfo/wireless
