On Fri, Mar 09, 2012 at 02:49:28PM +0100, Gabriel Kerneis wrote:
Andrew,
On Fri, Mar 09, 2012 at 01:09:26PM +0000, andrew.lunn@ascom.com wrote:
Remember that BATMAN is a Layer 2 mesh, not layer 3.
Sorry, I just recalled what it implies.
:-)
You can ignore my previous answer, I was focused on babel-like, layer 3 examples.
l0 l1 A ---- B ---------- C Example: \ / I want to restrict the link l1 to communication D -- E -- F between A??and C. (Nice frying-pan, isn???t it? ;-)
It is still possible, but requires more configuration effort. But anybody who can setup iptable rules should be able to achieve it.
Create a mesh with B, D, E, F, C, but leave out the interfaces for B-l0, B-l1 and C-l1. Setup a bridge on B. Add to the bridge the interfaces bat0, b-l1, b-l0. Add ebtable rules to the bridge to bridge A<->C frames between b-l0 and b-bl1 interfaces, the rest of the traffic from A is bridged into the bat0 interface. You need a similar bridge on C, with ebtable rules to pass the frames over the correct interfaces.
You also need to take a little bit of care with multicast frames, or the spanning tree protocol might get upset and block some of the interfaces in order to break the loops it sees.
Andrew