I have some questions about available Mesh technologies, and meshing concepts in general. I'd like to start by describing my understanding of some basic classes of mesh technology.
- Layer 2 meshing: BATMAN-adv for example
- Layer 3 Meshing: OLSR, BATMAN, AODV, ABR, DSR
- Dynamic routing (Layer 3): BGP, OSPF, IS-IS etc
Technically it seems to me like 2 and 3 are basically the same thing, but with different assumptions built in about how dynamic things are. The technologies in 3 are used where changes happen infrequently, like at an ISP or a server farm, you might have a temporary outage between you and some peer, but changes happen a couple times a day or week, whereas the assumptions about (2) are that you could at least have nodes like say robots potentially wandering around a space, and they come in and out of range of each other at any time. So the kinds of information needed and the kinds of algorithms are different.
Nevertheless it's my understanding that type (2) meshes do in fact operate by adjusting routing tables. So what does that look like? In particular imagine you are doing IPv6.
Suppose we want to set up a local area network and can't assume that all the machines are capable of being mesh peers. So we have multiple APs, using a layer 3 mesh routing protocol as backhaul (not something like BATMAN-ADV which provides a layer 2 abstraction). We have an IPv6 subnet 2001:db8:0:1::/64 available to us, and we can use a ULA network for the mesh routing.
An AP client says "I want to send something to the internet" so it formulates a TCP SYN packet say, and it looks at its routing table and says "2001:db8:0:1::1 is my gateway" and if it doesn't have a MAC address it then sends out a NDP packet asking for the MAC. Who responds? In particular, does the mesh act as a multicast routing system and flood Router Advertisement packets across all the clients? Does the AP act as an NDP proxy and respond as if it were all the other nodes on the network? How can two devices connected to two different APs which are in the same layer 3 subnet 2001:db8:0:1::/64 directly talk to each other?