[Berlin-wireless] next bug olsr dyngw plugin mit ff-luci auf kamikaze macht pingflood

Manuel Munz freifunk
Di Nov 25 00:23:25 CET 2008


L. Aaron Kaplan wrote:
[...]
> 
> Hm... wie koennen wir sonst den fehler noch finden?
> Koennt ihr mir mal verraten, welche version das jetzt war?
> 
Hallo, hab eben auch nochmal mit 0.5.6-r2 von olsr.org getestet und der
Fehler lässt sich reproduzieren, wie in dem Bugreport auf
http://sourceforge.net/tracker/index.php?func=detail&aid=2119159&group_id=117612&atid=681702
beschrieben. (Soll man das noch benutzen dort?). Getestet hab ich auf
Debian Lenny auf nem i386 Laptop.

> Hm... in die function looped_checks springt er mit einem neuen thread.
> Also das ist der thread handler. Passt. Das problem ist natuerlich, wenn
> nanosleep zu kurz schlaeft, dann kostet dich der thread zu viel CPU.
> Das einzige, wo ich mir vorstellen kann, dass nanosleep unterbrochen
> wird, ist durch a) einen falschen timer bei dir am system (system clock
> spinnt herum) oder b) signal.
> Um das zu testen: kannst du mal ein
> 
>           perror ("nanosleep woke up");
> 
> 
> direkt hinter
> 
>           sleeptime_spec = remainder_spec;
> 
> stellen?
> 
> Also:
>       while (nanosleep (&sleeptime_spec, &remainder_spec) < 0)
>         {
>           sleeptime_spec = remainder_spec;
>           perror ("nanosleep woke up");
>         }
> 
> Und mir sagen, was der perror sagt?
> 
> Vielleicht bringt uns das weiter.
> 

== Olsrd debug output ==

Do ping on 141.1.1.1 ...
PING 141.1.1.1 (141.1.1.1) 56(84) bytes of data.

--- 141.1.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 51.186/51.186/51.186/0.000 ms
...OK

HNA[00000000/00000000](ping is possible) VIA eth0 detected in routing table.
nanosleep  woke up: Illegal seek

Do ping on 141.1.1.1 ...
PING 141.1.1.1 (141.1.1.1) 56(84) bytes of data.
\
--- 141.1.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 55.206/55.206/55.206/0.000 ms
...OK

HNA[00000000/00000000](ping is possible) VIA eth0 detected in routing table.
nanosleep  woke up: Illegal seek

== tcpdump -i eth0 host 141.1.1.1 ==

geht so ununterbrochen...

00:07:34.604585 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
8482, seq 1, length 64
00:07:34.612899 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
8738, seq 1, length 64
00:07:34.663961 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
8738, seq 1, length 64
00:07:34.671907 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
8994, seq 1, length 64
00:07:34.723830 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
8994, seq 1, length 64
00:07:34.732036 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
9250, seq 1, length 64
00:07:34.783007 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
9250, seq 1, length 64
00:07:34.790954 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
9506, seq 1, length 64
00:07:34.843323 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
9506, seq 1, length 64
00:07:34.851924 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
9762, seq 1, length 64
00:07:34.902468 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
9762, seq 1, length 64
00:07:34.910486 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
10018, seq 1, length 64
00:07:34.962329 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
10018, seq 1, length 64
00:07:34.970788 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
10274, seq 1, length 64
00:07:35.021743 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
10274, seq 1, length 64
00:07:35.030463 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
10530, seq 1, length 64
00:07:35.082321 IP cns1.cw.net > 192.168.1.123: ICMP echo reply, id
10530, seq 1, length 64
00:07:35.090615 IP 192.168.1.123 > cns1.cw.net: ICMP echo request, id
10786, seq 1, length 64

== /etc/olsrd.conf ==

Nur Interface geändert, HNA eingetragen und Dyngw aktiviert. Btw: Im
installierten config steht olsrd_dyn_gw.so.0.3, das muss man selbst noch
ändern.

DebugLevel      2
IpVersion       4
FIBMetric "flat"
ClearScreen     yes
Hna4
{
   0.0.0.0      0.0.0.0
}
Hna6
{
}
AllowNoInt      yes
IpcConnect
{
     MaxConnections  0
     Host            127.0.0.1
}
UseHysteresis   no
LinkQualityLevel        2
Pollrate        0.05
NicChgsPollInt  3.0
TcRedundancy    2
MprCoverage     3
LoadPlugin "olsrd_dyn_gw.so.0.4"
{
   PlParam     "Interval"   "40"
   PlParam     "Ping"       "141.1.1.1"
   PlParam     "Ping"       "194.25.2.129"
}
Interface "wlan0"
{
    HelloInterval    2.0
    HelloValidityTime   20.0
    TcInterval        5.0
    TcValidityTime      30.0
    MidInterval 5.0
    MidValidityTime     30.0
    HnaInterval 5.0
    HnaValidityTime     30.0
}


hth, soma

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 197 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.berlin.freifunk.net/pipermail/berlin/attachments/20081125/30ad3d06/attachment.pgp>



Mehr Informationen über die Mailingliste Berlin