On Wednesday 23 February 2011 08:45:03 Dr. Stefan Radtke wrote:
Hello *,
I set up batman-adv-2010 on OpenWRT (backfire 10.3.x). Mesh interface is wlan0 and another non-batman-LAN is connected to eth0. non-batman clients should connect via the eth0 interface. (Full description and network diagram here: https://forum.openwrt.org/viewtopic.php?pid=129226#p129226 ).
entX == ethX? You should set the mtu of wlan0 to 1530 and all other mtus (br0, bat0, eth0, ...) to 1500. I would also recommend to update to batman-adv v2011.0.0. None of the mentioned should fix you problem, but are recommended to fix other glitches.
You don't tell us what sending means in you initial description - which card/node wants to sent to which other card/node. What he wants to send? What did your sensors (tcpdump, batctl td, ...) tell you how far those packets travel through the mesh/lan? I would recommend to test the functionality of layer two with a layer two protocol - or test application. A good idea is to use raw l2 sockets to send some packets from A to B and check if it arrives [1].
After setting up batman-adv 2010.x with
batctl if add wlan0 ifconfig wlan 0 0.0.0.0 ifconfig bat0 192.168.10.2 (previous ip address of wlan0) ifconfig bat0 up
I have to configure a bridge (according to quick start guide http://www.open-mesh.org/wiki/batman-adv-quick-start-guide) because I want batman-adv to announce MAC-addresses connected to eth0 (see network diagram):
brctl addbr mesh-bridge brctl addif mesh-bridge eth0 brctl addif mesh-bridge bat0 ifconfig eth0 up ifconfig bat0 up ifconfig mesh-bridge up
As Floh1111 already said, this IP setup cannot work. Here a little bit more information about that:
You set an ip to bat0 and then add the bat0 to br0 - this cannot work. The bridge will prevent packets from being received through bat0. All packets of attached interfaces will be received through br0. The tcp/ip stack will simply drop the packet when the bridge isn't configured to receive for that ip. This behavior can be changed slightly using ebtables broute - but I would strongly recommend not to mess with that stuff.
Best way is to either setup IP routing or use IPs only on br0 (and br0:0 for the second IP). You should also check your routing table for invalid entries after you replaced the IPs.
Although the translation tables (global and local) seem fine in this moment, at the same momentof bringing up the bridge I cannot send any more packets through bat0 or ent0. Both don't even reply to a ping.
Network setup and outputs of ifconfig onhttp://www.open-mesh.org/wiki/batman-adv-quick-start-guide
Any hint is appreciated.
Please first try to bisect your setup on layer 2 for clients which have a direct link (switched or switched over mesh, but not routed). Use tcpdump and "batctl td" to detect where packets may get dropped. In case no problem was found, please continue to do the same on l3. But keep in mind that eth0/bat0 will not received packets for the host directly - br0 is the interface you want to use.
What exactly are you trying to achieve using the IP in the wrong physical subnet thing? There are better tunneling protocols for that purpose and you don't need use some weird bridging-routing-in-parallel-something-monster.
Best regards, Sven
[1] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2010-January/002234.html