Hello..
I succesfully configured a batman-adv mesh to add access points to our existing wired lan. I am using Openwrt 10.04 and batman-adv 2010.1.0. DHCP and everything works as expected. Any wired or wireless client connecting to the network gets an IP from a DHCP server hooked into the switch etc etc.
Our Network configuration:
8 batman-adv routers with a wireless mesh with two or more of the routers having a wired connection directly to the switch. In this case, the 8 routers decide to pick one of the "plugged in" routers as a gateway to avoid bridge loops. This is fine.
I have been running into issues with wired clients however.
When a wired client plugged into the switch tries to contact a wired client plugged into the same switch, the packets manage to get lost. I believe they are are going through the wireless routers plugged into the same switch.
Instead of going like this..
PC 1 ----> switch1 ---> PC 2
they seem to be going like this... (my guess).
PC 1 ---> switch1 ---> wireless router 1 ----(wireless mesh link)----> wireless router 2 ----> switch1 ---> PC 2.
I think this is because the translation tables on the bat node are announcing that even the wired clients are connected to them.
This is causing extreme delays even in wired clients. Any help will be appreciated. Should I enable STP in on the switch ports ?
- Vinay
Hi Vinay,
On Thu, Feb 24, 2011 at 12:02:55PM -0500, Vinay Tharigopula wrote:
Hello..
I succesfully configured a batman-adv mesh to add access points to our existing wired lan. I am using Openwrt 10.04 and batman-adv 2010.1.0. DHCP and everything works as expected. Any wired or wireless client connecting to the network gets an IP from a DHCP server hooked into the switch etc etc.
The bridge-loop-avoidance feature has been added in 2011.0.0 and is not available in 2010.1.0.
If switching to 2011.0.0 helps, don't read any further :).
Could you explain a little more which interfaces you've added to batman-adv and which interfaces you are bridging with bat0? (ifconfig, brctl show, batctl if output from one router would be helpful)
Our Network configuration:
8 batman-adv routers with a wireless mesh with two or more of the routers having a wired connection directly to the switch. In this case, the 8 routers decide to pick one of the "plugged in" routers as a gateway to avoid bridge loops. This is fine.
I have been running into issues with wired clients however.
When a wired client plugged into the switch tries to contact a wired client plugged into the same switch, the packets manage to get lost. I believe they are are going through the wireless routers plugged into the same switch.
Instead of going like this..
PC 1 ----> switch1 ---> PC 2
they seem to be going like this... (my guess).
PC 1 ---> switch1 ---> wireless router 1 ----(wireless mesh link)----> wireless router 2 ----> switch1 ---> PC 2.
Could you please verify with "batctl td" (or tcpdump/wireshark) if the packets are leaving on the wireless router 1's wifi interface?
I think this is because the translation tables on the bat node are announcing that even the wired clients are connected to them.
Could you check with batctl tl and batctl tg if these tables are changing rapidly? If you do not have any client roaming, then these tables are expected to stay rather static.
This is causing extreme delays even in wired clients. Any help will be appreciated. Should I enable STP in on the switch ports ?
It does not sound like having disabled STP is your problem.
- Vinay
Cheers, Linus
Linus, Thanks for replying....
I am having trouble finding binaries of batman-adv 2011.0 for OpenWRT . Are they available or do I have to build them myself ?
Interfaces:
On my router, totally there are 4 interfaces.
wlan0 - The infrastructure -type network - with Test1 SSID wlan1- The adhoc network with BSSID "xx:xx:xx:xx:xx:xx" eth0 - the 4 lan ports. eth1 - the wan port.
bat0 has wlan1 added to it.
There is a bridge "br-lan" with bat0 eth0 eth1 and wlan0.
On the "chosen gateway" router. I have observed this.
batctl tg
Globally announced HNAs received via the mesh bat0 * 7c:c5:37:6a:ca:cd via 06:24:a5:d8:5d:19 * e2:45:34:51:32:1c via 06:24:a5:d8:5c:16 * 00:24:a5:d8:5c:16 via 06:24:a5:d8:5c:16 * 06:b0:29:d9:45:e5 via 06:24:a5:af:f9:fb * 7c:c5:37:78:3c:6c via 06:24:a5:d8:5d:19 * 00:24:a5:af:f9:fb via 06:24:a5:af:f9:fb * 00:1e:c1:c7:53:c2 via 06:24:a5:af:f9:fb * 00:24:a5:d8:5d:19 via 06:24:a5:d8:5d:19 * 92:b3:f4:d5:c6:f1 via 06:24:a5:d8:5d:19
Note: This is from a group of 4 routers with 2 plugged in via wire.
batctl tl.
It is announcing around 60 hosts and constantly increasing , pretty much all the hosts connected to the switch that it is plugged into. !
-Vinay
On 2/24/2011 2:44 PM, Linus Lüssing wrote:
Hi Vinay,
On Thu, Feb 24, 2011 at 12:02:55PM -0500, Vinay Tharigopula wrote:
Hello..
I succesfully configured a batman-adv mesh to add access points to our existing wired lan. I am using Openwrt 10.04 and batman-adv 2010.1.0. DHCP and everything works as expected. Any wired or wireless client connecting to the network gets an IP from a DHCP server hooked into the switch etc etc.
The bridge-loop-avoidance feature has been added in 2011.0.0 and is not available in 2010.1.0.
If switching to 2011.0.0 helps, don't read any further :).
Could you explain a little more which interfaces you've added to batman-adv and which interfaces you are bridging with bat0? (ifconfig, brctl show, batctl if output from one router would be helpful)
Our Network configuration:
8 batman-adv routers with a wireless mesh with two or more of the routers having a wired connection directly to the switch. In this case, the 8 routers decide to pick one of the "plugged in" routers as a gateway to avoid bridge loops. This is fine.
I have been running into issues with wired clients however.
When a wired client plugged into the switch tries to contact a wired client plugged into the same switch, the packets manage to get lost. I believe they are are going through the wireless routers plugged into the same switch.
Instead of going like this..
PC 1 ----> switch1 ---> PC 2
they seem to be going like this... (my guess).
PC 1 ---> switch1 ---> wireless router 1 ----(wireless mesh link)----> wireless router 2 ----> switch1 ---> PC 2.
Could you please verify with "batctl td" (or tcpdump/wireshark) if the packets are leaving on the wireless router 1's wifi interface?
I think this is because the translation tables on the bat node are announcing that even the wired clients are connected to them.
Could you check with batctl tl and batctl tg if these tables are changing rapidly? If you do not have any client roaming, then these tables are expected to stay rather static.
This is causing extreme delays even in wired clients. Any help will be appreciated. Should I enable STP in on the switch ports ?
It does not sound like having disabled STP is your problem.
- Vinay
Cheers, Linus
Hi Vinay,
I am having trouble finding binaries of batman-adv 2011.0 for OpenWRT . Are they available or do I have to build them myself ?
as Linus already pointed out - bridge loop avoidance is not available before batman-adv 2011.0.0. That is what you need to address first.
Where did you get the binaries for batman-adv 2010.1.0 ? Does this source also provide newer binaries ? Unlike user space application a kernel module heavily depends on your system (kernel version / patches / etc). Which means nobody can give you binaries without having access to exactly the same system you are using.
Regards, Marek
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
In case anybody else wants the binaries for Openwrt 10.03.1 RC 4 , let me know I can send it to you.
-Vinay
On 2/24/2011 7:30 PM, Marek Lindner wrote:
Hi Vinay,
I am having trouble finding binaries of batman-adv 2011.0 for OpenWRT . Are they available or do I have to build them myself ?
as Linus already pointed out - bridge loop avoidance is not available before batman-adv 2011.0.0. That is what you need to address first.
Where did you get the binaries for batman-adv 2010.1.0 ? Does this source also provide newer binaries ? Unlike user space application a kernel module heavily depends on your system (kernel version / patches / etc). Which means nobody can give you binaries without having access to exactly the same system you are using.
Regards, Marek
Update on this...
As I said previously, after updating to the latest batman-adv, both routers connected to the lan stopped responding to pings.
I was playing around with the switch settings and setting " Edge + Root protection with STP" on the ports connected to the routers wired connection brought them back. Now they act according to the bridge-loop avoidance document and pick one of the routere to be the primary router to the lan.
Any idea why this is happening ?
Thanks
Vinay
On 2/25/2011 8:44 AM, Vinay Tharigopula wrote:
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
In case anybody else wants the binaries for Openwrt 10.03.1 RC 4 , let me know I can send it to you.
-Vinay
On 2/24/2011 7:30 PM, Marek Lindner wrote:
Hi Vinay,
I am having trouble finding binaries of batman-adv 2011.0 for OpenWRT . Are they available or do I have to build them myself ?
as Linus already pointed out - bridge loop avoidance is not available before batman-adv 2011.0.0. That is what you need to address first.
Where did you get the binaries for batman-adv 2010.1.0 ? Does this source also provide newer binaries ? Unlike user space application a kernel module heavily depends on your system (kernel version / patches / etc). Which means nobody can give you binaries without having access to exactly the same system you are using.
Regards, Marek
Update on this...
As I said previously, after updating to the latest batman-adv, both routers connected to the lan stopped responding to pings.
I was playing around with the switch settings and setting " Edge + Root protection with STP" on the ports connected to the routers wired connection brought them back. Now they act according to the bridge-loop avoidance document and pick one of the routere to be the primary router to the lan.
Any idea why this is happening ?
Thanks
Vinay
On 2/25/2011 8:44 AM, Vinay Tharigopula wrote:
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
In case anybody else wants the binaries for Openwrt 10.03.1 RC 4 , let me know I can send it to you.
-Vinay
On 2/24/2011 7:30 PM, Marek Lindner wrote:
Hi Vinay,
I am having trouble finding binaries of batman-adv 2011.0 for OpenWRT . Are they available or do I have to build them myself ?
as Linus already pointed out - bridge loop avoidance is not available before batman-adv 2011.0.0. That is what you need to address first.
Where did you get the binaries for batman-adv 2010.1.0 ? Does this source also provide newer binaries ? Unlike user space application a kernel module heavily depends on your system (kernel version / patches / etc). Which means nobody can give you binaries without having access to exactly the same system you are using.
Regards, Marek
Hi Vinay,
On Fri, Feb 25, 2011 at 08:44:33AM -0500, Vinay Tharigopula wrote:
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Could you try "batctl ping" too and check whether this is working or not.
If that's working but the normal pinging is not, then it should be a layer 3 problem - in that case we'd need the outputs of "ip route show" and "ip address show".
If batctl ping is already not working then "batctl o" and "batctl if" output will be interesting.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
Hmm, that looks sane and correct, should work like that.
Is there anything weird in the output of "dmesg"? Any errors or warnings?
Cheers, Linus
Hi Vinay,
On Fri, Feb 25, 2011 at 08:44:33AM -0500, Vinay Tharigopula wrote:
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Could you try "batctl ping" too and check whether this is working or not.
If that's working but the normal pinging is not, then it should be a layer 3 problem - in that case we'd need the outputs of "ip route show" and "ip address show".
If batctl ping is already not working then "batctl o" and "batctl if" output will be interesting.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
Hmm, that looks sane and correct, should work like that.
Is there anything weird in the output of "dmesg"? Any errors or warnings?
Cheers, Linus
Hi,
Linus has some problems sending mails to the list, so I forward his reply.
Cheers, Marek
============================================
Hi Vinay,
On Fri, Feb 25, 2011 at 08:44:33AM -0500, Vinay Tharigopula wrote:
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Could you try "batctl ping" too and check whether this is working or not.
If that's working but the normal pinging is not, then it should be a layer 3 problem - in that case we'd need the outputs of "ip route show" and "ip address show".
If batctl ping is already not working then "batctl o" and "batctl if" output will be interesting.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
Hmm, that looks sane and correct, should work like that.
Is there anything weird in the output of "dmesg"? Any errors or warnings?
Cheers, Linus
Linus , Marek...
I think the List had issues with all of us getting multiple emails for some reason. I wanted to update you on this status and let others know about my solution.
Linus, in the problem that I described after updating to batman-adv 2011.0, I would lose connection to both the routers that were plugged in. Any SSH connection already established also would timeout. Therefore I can't get the output of batctl ping or dmesg at that exact instant. I did try to do a tcp dump but got nowhere because of the disconnects.
Now here is how I (kinda) solved it.
I had to enable STP on the lan-switches. STP type: STP and Mode: Root Protection. This can be enabled on all ports safely without causing disruption to the clients plugged into the switch.
After this step was done, bridge-loop-avoidance worked properly and if more than 1 router in a mesh was plugged in, all the routers would pick one as a gateway.
Extra Bonus Step:
If more than one is plugged in, the higher MAC router will drop all lan packets which will result in slower throughput to clients to that router because it is hopping to another router via wireless and neglecting the fact that it's own wired link would take it faster to the intended destination.
My "solution" to this was to enable STP in the router too. In the UCI page for networking, under the br-lan, I had this option.
option 'stp' '1'.
After this setting, the 2nd router would choose the wired link as its preferred method of linking to the network.
The customary "warning" : I am no network expert and I am just offering a solution for anybody else reading this.
Thanks for all your help Linus and Marek. Please do let me know if you have any explanation for this :) . If you want me to send some of the binaries I built or my OpenWRT config files to the list, I can do so . Let me know.
Thanks
Vinay.
My specific setup:
Routers : 8 x Buffalo WZR - HP -G 300NH Switches : 6 x 3Com 5500G-EI.
On 2/26/2011 5:49 PM, Marek Lindner wrote:
Hi,
Linus has some problems sending mails to the list, so I forward his reply.
Cheers, Marek
============================================
Hi Vinay,
On Fri, Feb 25, 2011 at 08:44:33AM -0500, Vinay Tharigopula wrote:
Marek..
I got the binaries from the openwrt prebuilt packages. However, now I rebuilt the image and built batman-adv 2011.myself. I will try this now and let you know.
However, now I am running into a much bigger issue. If two routers are plugged in to the same switch, bridge loop avoidance doesnt work and both of them are stopping responding to pings.
Could you try "batctl ping" too and check whether this is working or not.
If that's working but the normal pinging is not, then it should be a layer 3 problem - in that case we'd need the outputs of "ip route show" and "ip address show".
If batctl ping is already not working then "batctl o" and "batctl if" output will be interesting.
Here is my config.
bat0 if: wlan1: active.
wlan1: Mesh Network.
wlan0: Infrastructure network. eth0 : 4 lan ports eth1: 1 wan port
br-lan : wlan0 eth0 eth1 bat0
Hmm, that looks sane and correct, should work like that.
Is there anything weird in the output of "dmesg"? Any errors or warnings?
Cheers, Linus
Hi,
I think the List had issues with all of us getting multiple emails for some reason. I wanted to update you on this status and let others know about my solution.
yes, mailman was standing still due to a deadlock. Sven had to restart mailman before all the sent mails were processed. Seems some people were getting impatient .. ;-)
I had to enable STP on the lan-switches. STP type: STP and Mode: Root Protection. This can be enabled on all ports safely without causing disruption to the clients plugged into the switch.
After this step was done, bridge-loop-avoidance worked properly and if more than 1 router in a mesh was plugged in, all the routers would pick one as a gateway.
I don't know much about STP (root protection does not tell my anything) but using STP seems like a very bad idea. STP does not know a thing about your mesh network and the qualities of the links. To avoid the loop it will simply turn off "ports" in the router which certainly is not what you want. At some point in time it might decide to turn off a port you are using ...
I re-read all the mails but I still can't understand your logic: You have 2 batman-adv gateways that announce the wired clients via HNA. This happens to allow wireless clients connected to the mesh to communicated with your wired clients. No problem here. Why do you think the packets go through the mesh ?
If more than one is plugged in, the higher MAC router will drop all lan packets which will result in slower throughput to clients to that router because it is hopping to another router via wireless and neglecting the fact that it's own wired link would take it faster to the intended destination.
Are you talking about the bridge-loop-avoidance ? What makes you think they are using the wireless interface to forward the traffic to the other gateway ?
My "solution" to this was to enable STP in the router too.
Again, using STP on top of batman-adv will create more problems than it solves.
Regards, Marek
b.a.t.m.a.n@lists.open-mesh.org