[B.A.T.M.A.N.] routing loops on interconnected routers / adhoc + ethernet

Nicolás Echániz nicoechaniz at codigosur.org
Sun Mar 4 03:30:14 CET 2012


On 03/03/2012 08:32 AM, Marek Lindner wrote:
> On Saturday, March 03, 2012 18:24:40 Nicolás Echániz wrote:
>> On 03/03/2012 07:14 AM, Nicolás Echániz wrote:
>>> On 03/03/2012 05:43 AM, Marek Lindner wrote:
>>>> You should not have loops either way but it is easy to build loops in 
>>>> complicated setups. At first we should understand your setup and 
>>>> configuration. Drawing a little picture that shows what interface is
>>>> connected  to what other interface also can help.
>>>
>>>
>>>
>>> alright, I'll try some ascii art, but I'm afraid you'll find out my
>>> english is better :P
>>
>> holy s... I knew this wouldn't work
>>
>> I've uploaded the image here:
>> http://www.lavecindaria.org.ar/picture/esquema-de-enlaces/
> 
> I got your drawing. Would it possible to also post the output of:
>  * brctl show
>  * batctl if
>  * batctl o
> 
> We don't need it from all nodes. cisterna, marisa-mr and marisa-blt should be 
> enough.

Here you go:

############## marisa-mr ###############

root at marisa-mr:~# brctl show
bridge name	bridge id		STP enabled	interfaces
br-lan		8000.54e6fcb9cb39	no		eth1
							bat0
root at marisa-mr:~# batctl if
eth0: active
wlan0: active

root at marisa-mr:~# batctl o
[B.A.T.M.A.N. adv 2011.4.0, MainIF/MAC: wlan0/54:e6:fc:b9:cb:38 (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:
Potential nexthops ...
  nicoyjesi_adhoc    0.140s   (231)   marisa-blt_eth0 [      eth0]:
cisterna_wlan1 (179)    cisterna_wlan0 (180)  marisa-blt_adhoc (188)
marisa-blt_eth0 (231)       nogal_wlan0 (131)
      nogal_wlan0    0.620s   (245)   marisa-blt_eth0 [      eth0]:
cisterna_wlan1 (191)    cisterna_wlan0 (188)  marisa-blt_adhoc (199)
marisa-blt_eth0 (245)       nogal_wlan0 (139)
   cisterna_wlan0    0.640s   (245)   marisa-blt_eth0 [      eth0]:
marisa-blt_adhoc (199)   marisa-blt_eth0 (245)    cisterna_wlan1 (220)
     nogal_wlan0 (118)    cisterna_wlan0 (215)
   cisterna_wlan1    0.390s   (222)    cisterna_wlan1 [     wlan0]:
marisa-blt_adhoc (199)   marisa-blt_eth0 (  0)    cisterna_wlan1 (222)
       czuk_wlan1    0.440s   (143)   marisa-blt_eth0 [      eth0]:
  nogal_wlan0 ( 84)  marisa-blt_adhoc (117)   marisa-blt_eth0 (143)
cisterna_wlan0 (153)    cisterna_wlan1 (138)
  marisa-blt_eth0    0.240s   (253)   marisa-blt_eth0 [      eth0]:
cisterna_wlan1 (202)    cisterna_wlan0 (201)  marisa-blt_adhoc (208)
   nogal_wlan0 (123)   marisa-blt_eth0 (253)
 marisa-blt_adhoc    0.450s   (209)  marisa-blt_adhoc [     wlan0]:
  nogal_wlan0 (119)    cisterna_wlan1 (187)    cisterna_wlan0 (186)
marisa-blt_adhoc (209)


############## marisa-blt ###############

root at marisa-blt:~# brctl show
bridge name	bridge id		STP enabled	interfaces
br-lan		8000.00156d3e2c4f	no		wlan0
							bat0
root at marisa-blt:~# batctl if
eth0: active
wlan0-1: active

root at marisa-blt:~# batctl o
[B.A.T.M.A.N. adv 2012.0.0, MainIF/MAC: eth0/00:15:6d:3f:2c:4f (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:
Potential nexthops ...
  nicoyjesi_adhoc    0.620s   (170)       nogal_wlan0 [   wlan0-1]:
cisterna_wlan1 (144)    cisterna_wlan0 (139)        czuk_wlan1 (  0)
   nogal_wlan0 (170)
   marisa-mr_eth0    0.950s   (129)    marisa-mr_eth0 [      eth0]:
marisa-mr_eth0 (129)
      nogal_wlan0    0.040s   (182)       nogal_wlan0 [   wlan0-1]:
marisa-mr_wlan0 ( 77)        czuk_wlan1 (  0)    cisterna_wlan1 (153)
 cisterna_wlan0 (149)    marisa-mr_eth0 ( 74)       nogal_wlan0 (182)
   cisterna_wlan0    0.780s   (238)    cisterna_wlan1 [   wlan0-1]:
marisa-mr_wlan0 (118)    marisa-mr_eth0 (110)       nogal_wlan0 (131)
     czuk_wlan1 (  0)    cisterna_wlan1 (238)    cisterna_wlan0 (231)
   cisterna_wlan1    0.420s   (238)    cisterna_wlan1 [   wlan0-1]:
marisa-mr_wlan0 (116)        czuk_wlan1 (174)    cisterna_wlan1 (238)
  marisa-mr_wlan0    0.000s   (138)   marisa-mr_wlan0 [   wlan0-1]:
   czuk_wlan1 (  0)       nogal_wlan0 (109)    cisterna_wlan1 (113)
cisterna_wlan0 (112)   marisa-mr_wlan0 (138)    marisa-mr_eth0 (133)
       czuk_wlan1    0.940s   (214)    cisterna_wlan1 [   wlan0-1]:
marisa-mr_wlan0 (103)    marisa-mr_eth0 ( 95)    cisterna_wlan0 (210)
 cisterna_wlan1 (214)        czuk_wlan1 (204)


############## cisterna ###############

root at cisterna:~# brctl show
bridge name	bridge id		STP enabled	interfaces
br-lan		8000.54e6fcb9bee7	no		eth0
							bat0
root at cisterna:~# batctl if
wlan0: active
wlan1: active

root at cisterna:~# batctl o
[B.A.T.M.A.N. adv 2011.4.0, MainIF/MAC: wlan0/54:e6:fc:b9:be:e8 (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:
Potential nexthops ...
  nicoyjesi_adhoc    0.390s   (217)   marisa-mr_wlan0 [     wlan0]:
   czuk_wlan1 ( 58)        czuk_wlan1 (175)   marisa-mr_wlan0 (207)
marisa-mr_wlan0 (217)  marisa-blt_adhoc (205)  marisa-blt_adhoc (209)
      nogal_wlan0    0.850s   (223)   marisa-mr_wlan0 [     wlan0]:
   czuk_wlan1 (186)        czuk_wlan1 ( 62)       nogal_wlan0 (  0)
marisa-mr_wlan0 (216)   marisa-mr_wlan0 (223)  marisa-blt_adhoc (214)
marisa-blt_adhoc (216)
  marisa-mr_wlan0    0.050s   (250)   marisa-mr_wlan0 [     wlan0]:
   czuk_wlan1 ( 67)        czuk_wlan1 (201)  marisa-blt_adhoc (213)
marisa-blt_adhoc (215)   marisa-mr_wlan0 (239)   marisa-mr_wlan0 (250)
       czuk_wlan1    0.600s   (255)        czuk_wlan1 [     wlan1]:
marisa-mr_wlan0 (170)   marisa-mr_wlan0 (178)        czuk_wlan1 ( 85)
marisa-blt_adhoc (172)  marisa-blt_adhoc (168)        czuk_wlan1 (255)
  marisa-blt_eth0    0.090s   (232)   marisa-mr_wlan0 [     wlan0]:
   czuk_wlan1 (198)        czuk_wlan1 ( 66)   marisa-mr_wlan0 (225)
marisa-mr_wlan0 (232)  marisa-blt_adhoc (231)  marisa-blt_adhoc (227)
 marisa-blt_adhoc    0.730s   (231)  marisa-blt_adhoc [     wlan0]:
marisa-mr_wlan0 (216)   marisa-mr_wlan0 (227)        czuk_wlan1 ( 63)
     czuk_wlan1 (188)  marisa-blt_adhoc (231)  marisa-blt_adhoc (226)

######################################


> Please configure these nodes, so that they theoretically
> would produce the routing loop although it is not necessary to wait
> for the loop itself. As I understand it that loop occurs from time to
> time only?

By "from time to time" I meant that not every packet gets trapped in the
loop, but it's easily reproducible.

With marisa-mr_wlan0 activated, I get a looped traceroute just by
repeating the command a few times.

And here's a loop:

# batctl tr czuk_wlan1
traceroute to czuk_wlan1 (f8:d1:11:0b:76:4b), 50 hops max, 20 byte packets
 1: nogal_wlan0 (00:15:6d:d6:24:7a)  0.128 ms  0.133 ms  0.136 ms
 2: marisa-mr_wlan0 (54:e6:fc:b9:cb:38)  6.755 ms  4.468 ms  5.130 ms
 3: marisa-blt_eth0 (00:15:6d:3f:2c:4f)  2.119 ms  1.603 ms  1.180 ms
 4: marisa-mr_wlan0 (54:e6:fc:b9:cb:38)  1.794 ms  1.544 ms  1.596 ms
 5: marisa-blt_eth0 (00:15:6d:3f:2c:4f)  9.078 ms  6.598 ms  1.844 ms

[...]

44: marisa-mr_wlan0 (54:e6:fc:b9:cb:38)  10.385 ms  11.837 ms  13.225 ms
45: marisa-blt_eth0 (00:15:6d:3f:2c:4f)  9.998 ms  11.833 ms  19.300 ms
46: marisa-mr_wlan0 (54:e6:fc:b9:cb:38)  10.659 ms  12.662 ms  11.318 ms
47: marisa-blt_eth0 (00:15:6d:3f:2c:4f)  11.114 ms  17.455 ms  10.274 ms
48: marisa-mr_wlan0 (54:e6:fc:b9:cb:38)  17.981 ms  20.367 ms  14.605 ms
49: marisa-blt_eth0 (00:15:6d:3f:2c:4f)  11.862 ms  12.518 ms  14.096 ms


transfer speed (measured with iperf) between marisa and czuk drops to
0.5Mbit/s with this setup, from the 10Mbit/s we get when there are no loops.

The whole network experience is very poor in this setup, ssh sessions
lag a lot and drop from timeout, pings fail regularly and transfer speed
is impossible.

When marisa-mr_wlan0 is disabled, pings loose 0% end-to-end even with
big packets an 0.1s interval and transfer speed is quite good, around
5Mbit/s end to end and 30Mbit/s on the best links.


One other thing that took some time to learn (the hard way) is that the
network won't fully recover when we revert the changes in marisa-mr.
Loops are gone and pings are normal, but transfer speed sucks.
All related nodes (marisa-mr, marisa-blt, cisterna and czuk) need to be
restarted for the transfer speed to get back to normal. We assumed this
is some kind of problem with the wireles modules, ath9k and ath9k_htc
that we use, but it's just an assumption.



Let me know if you find anything unusual in the setup I sent you.


--
NicoEchániz



> 
> Regards,
> Marek



More information about the B.A.T.M.A.N mailing list