mldonkey und LANCOM DSL/1610 Office funktioniert nicht:

Forum zu aktuellen Geräten der LANCOM Router/Gateway Serie

Moderator: Lancom-Systems Moderatoren

Antworten
Dirk
Beiträge: 27
Registriert: 09 Jul 2005, 18:14

mldonkey und LANCOM DSL/1610 Office funktioniert nicht:

Beitrag von Dirk »

Hallo Leute,

ich beobachte hier momentan ein Problem mit mldonkey (MLNet 2.5-16w3) unter Debian Sarge Linux, bei dem ich nicht so richtig weiterweiß:

Der Rechner, auf welchem der Esel läuft, hängt direkt hinter einem LANCOM DSL/1610 Office Router. Da passiert folgendes:

Problem ist, daß, wenn ich den mldonkey "wie vorgesehen" via kill tasknummer beende, mein Router den Esel-Port dichtmacht. Nach einiger Beobachtung habe ich folgendes herausgefunden:
Der Router läßt in der Standardkonfiguration ja nur
maximal 100 "halboffene Ports" zu, alles darüber wird als DoS angesehen und verworfen. Ist die Grenze von 100 erreicht, läuft ein 30s-timer, und Ports werden erst wieder abgebaut, wenn keine Anfragen kommen. So weit, so mittelgut. Dieses Verfahren funktioniert bei einem Freund mit LANCOM 1611 (und einem anderen mit einem größeren Modell, Name ist mir entfallen) Router und identischer Konfiguration problemlos, _allerdings_ nutzt er Windows-Eselsoftware.

Ich kenne mich damit jetzt nicht so wirklich aus, aber für mich sieht es wie folgt aus:
Wenn ich nun den mldonkey kille, dann beendet dieser die ganzen Verbindungen nicht korrekt, sondern ist einfach "weg". Also kommen von außen immer weiter Anfragen über Anfragen, und der genannte Schutzmechanismus tritt in Kraft. Problem dabei ist, das ich danach den mldonkey zwar wieder starten kann, er aber erst wieder mit den Servern connectet, wenn ich vorher eine Neueinwahl des DSL-Anschlußes mache, da ja die Esel-Ports "dicht" sind. Da das Ganze bei Windows nicht auftritt (wir haben es unter Beobachtung des Router-Status ausprobiert, dort kommen nach Beendigung der Eselsoftware höchsten noch 10 oder 15 Anfragen, die ins leere laufen), muß es IMO am
verwendeten mldonkey oder an den Router-Einstellungen liegen.

Außerdem ist mir dabei noch aufgefallen, daß dieser Counter den Router auch nach ca. 10 Std. Betrieb "dichtmachen" läßt, sprich dann sind so viele Anfragen aufgekommen, das nix mehr geht (in der Zwischenzeit habe ich bestimmte Files aus dem sharing gelöscht, vermutlich sind es Anfragen bzgl. dieser nicht vorhandenen files).

Ach ja: löse ich z.B. per ssh einen disconnect aus (wobei der Router sich hernach automatisch wieder verbindet) geht das ganze Spiel wieder von vorne los, da ich dann ja auch eine neue IP bekomme.

Aktuelles LCOS 5 ist drauf.

Any hints!?

Gruß

Dirk

EDIT: Standardeinstellung für max. Verbindungen im download ist bei mldonkey 200. Ich könnte die jetzt natürlich verringern, aber das kann ja nicht die Lösung sein, zumal ich da ja die upload-Verbindungen hinzurechnen muß. Und ich hatte nicht vor, insgesamt so schlecht dazustehen, wie wenn ich insgesamt nur 100 Verbindungen erlaube.
Dirk
Beiträge: 27
Registriert: 09 Jul 2005, 18:14

Beitrag von Dirk »

Hmm. Weiß denn keiner was dazu? Sind meine Angaben zu dürftig :?: :( :?:
backslash
Moderator
Moderator
Beiträge: 7126
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Beitrag von backslash »

Hi Dirk,
Problem ist, daß, wenn ich den mldonkey "wie vorgesehen" via kill tasknummer beende, mein Router den Esel-Port dichtmacht. Nach einiger Beobachtung habe ich folgendes herausgefunden:
genau das dürfte dein Problem sein...
Offenbar wird dabei der TCP-Listener dabei nicht korrekt gelöscht und einkommende TCP-SYN Pakete werden nicht rejectet sondern der Listener versucht die gekillte Anwendung zu erreichen. Da diese aber nicht mehr existiert wartet der Listener ewig auf eine Antwort und schickt somit weder ein SYN-ACK noch ein RST zurück, was als halboffene Verbindung gezählt wird. Sobald die konfigurierte Grenze (100) überschritten wird, werden weitere Verbindungsversuche auf diesen Port geblockt - und zwar solange bis 30 Sekunden lang keine weitere Anfrage mehr kommt.
Da das Ganze bei Windows nicht auftritt (wir haben es unter Beobachtung des Router-Status ausprobiert, dort kommen nach Beendigung der Eselsoftware höchsten noch 10 oder 15 Anfragen, die ins leere laufen), muß es IMO am verwendeten mldonkey oder an den Router-Einstellungen liegen.
Beim normalen Beenden der Windowsversion, wird auch automatisch der Listener gelöscht (wenn du sie über den Taskmanager abschießt, dann dürfte das gleiche passieren, wie beim "kill"). Desweiteren meldet sich der Windowsclient beim korrekten Beenden offenbar auch wieder beim Indexserver ab, weshalb kaum noch Anfragen reinkommen.

Versuch doch mal mldonkey auf korrekte Weise zu beenden - also nicht mit "kill". Dann sollte auch Ruhe sein...
Außerdem ist mir dabei noch aufgefallen, daß dieser Counter den Router auch nach ca. 10 Std. Betrieb "dichtmachen" läßt, sprich dann sind so viele Anfragen aufgekommen, das nix mehr geht (in der Zwischenzeit habe ich bestimmte Files aus dem sharing gelöscht, vermutlich sind es Anfragen bzgl. dieser nicht vorhandenen files).
was meinst Du mit im Betrieb "dichtmachen"? Wenn der mldonkey läuft, dann werden keine halboffenen Verbindungen erzeugt - auch nicht für Anfragen für gelöschte Files, da die TCP-Verbindung ja komplett aufgebaut werden muß, um diese Anfrage überhaupt stellen zu können...

Gruß
Backslash
Dirk
Beiträge: 27
Registriert: 09 Jul 2005, 18:14

Beitrag von Dirk »

Hallo,

es liest also doch jemand mein Problem 8)
backslash hat geschrieben:
Problem ist, daß, wenn ich den mldonkey "wie vorgesehen" via kill tasknummer beende, mein Router den Esel-Port dichtmacht. Nach einiger Beobachtung habe ich folgendes herausgefunden:
genau das dürfte dein Problem sein...
Offenbar wird dabei der TCP-Listener dabei nicht korrekt gelöscht und einkommende TCP-SYN Pakete werden nicht rejectet sondern der Listener versucht die gekillte Anwendung zu erreichen. Da diese aber nicht mehr existiert wartet der Listener ewig auf eine Antwort und schickt somit weder ein SYN-ACK noch ein RST zurück, was als halboffene Verbindung gezählt wird. Sobald die konfigurierte Grenze (100) überschritten wird, werden weitere Verbindungsversuche auf diesen Port geblockt - und zwar solange bis 30 Sekunden lang keine weitere Anfrage mehr kommt.
Da habe ich aber keine Eingriffsmöglichkeit. Nach meiner bisherigen Erkenntnis ist ein kill unter Linux für den mldonkey die korrekte Beendigungsweise. Man kann ihn auch via HTML-GUI beenden, da gibt man aber auch nur "kill" bzw. "kill core" ein...

Läßt sich das Verhalten evtl. durch eine (wieauchimmergeartete) zusätzliche iptables-Regel auf dem Debian-Rechner ändern? Eine Verhaltensänderung bei mldonkey ist mir momentan nicht bekannt. Leider.
Beim normalen Beenden der Windowsversion, wird auch automatisch der Listener gelöscht (wenn du sie über den Taskmanager abschießt, dann dürfte das gleiche passieren, wie beim "kill"). Desweiteren meldet sich der Windowsclient beim korrekten Beenden offenbar auch wieder beim Indexserver ab, weshalb kaum noch Anfragen reinkommen.
Hmm. Kannst Du das mal ausführlicher erläutern? Mit den Begriffen "listener" und "Indexserver" kann ich nicht wirklich viel anfangen. Ich habe das mit dem "listener" aus dem ersten Zitat oben nicht verstanden: läßt sich das Verhalten von mir bzw. durch den Router beeinflussen, oder liegt das an der Gegenseite und ich kann da nix machen?
Versuch doch mal mldonkey auf korrekte Weise zu beenden - also nicht mit "kill". Dann sollte auch Ruhe sein...
Wie gesagt -soweit ich weiß *ist* das die korrekte Terminierungsart.
Außerdem ist mir dabei noch aufgefallen, daß dieser Counter den Router auch nach ca. 10 Std. Betrieb "dichtmachen" läßt, sprich dann sind so viele Anfragen aufgekommen, das nix mehr geht (in der Zwischenzeit habe ich bestimmte Files aus dem sharing gelöscht, vermutlich sind es Anfragen bzgl. dieser nicht vorhandenen files).
was meinst Du mit im Betrieb "dichtmachen"? Wenn der mldonkey läuft, dann werden keine halboffenen Verbindungen erzeugt - auch nicht für Anfragen für gelöschte Files, da die TCP-Verbindung ja komplett aufgebaut werden muß, um diese Anfrage überhaupt stellen zu können...
Momentan (der Rechner mit dem Esel läuft grad 1d10h15m, der Esel dürfte so ca. 4Std. weniger laufen, Zwangstrennung war um 0300 morgens, also besteht die Verbindung inkl. Esel jetzt 17Std.) habe ich laut Status 45 HO-Verbindungen. Ich habe im Laufe des Tages öfter mal reingeschaut, heute morgen so gegen 10 waren es ca. 20, der Wert steigt schwankend. Irgendwo müssen die ja herkommen...

Dirk
backslash
Moderator
Moderator
Beiträge: 7126
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Beitrag von backslash »

Hi Dirk,
Hmm. Kannst Du das mal ausführlicher erläutern? Mit den Begriffen "listener" und "Indexserver" kann ich nicht wirklich viel anfangen. Ich habe das mit dem "listener" aus dem ersten Zitat oben nicht verstanden: läßt sich das Verhalten von mir bzw. durch den Router beeinflussen, oder liegt das an der Gegenseite und ich kann da nix machen?
mldonkey öffnet auf deinem Rechner einen Port und wartet darauf, daß irgendwer ihn kontaktiert. Dazu "installiert" er auf diesem Port einen Listener, der ihn informiert, wenn jemand auf diesem Port eine Verbindung aufbauen will. Wenn der Listener beim Beenden nicht wieder "deinstalliert" wird, dann bleibt der Port offen, nimmt aber keine Verbindungen mehr an bzw. lehnt die Anfragen auch nicht ab, weshalb sich daraufhin die halboffenen Verbindungen ansammeln.

Der Indexserver ist der Server auf dem deine IP-Adresse abgelegt wird während der Esel läuft, damit andere dich überhaupt finden können...
Momentan (der Rechner mit dem Esel läuft grad 1d10h15m, der Esel dürfte so ca. 4Std. weniger laufen, Zwangstrennung war um 0300 morgens, also besteht die Verbindung inkl. Esel jetzt 17Std.) habe ich laut Status 45 HO-Verbindungen. Ich habe im Laufe des Tages öfter mal reingeschaut, heute morgen so gegen 10 waren es ca. 20, der Wert steigt schwankend. Irgendwo müssen die ja herkommen...
Da hast du dann vermutlich jede Menge Anfragen und du schaust halt auf eine Momentaufnahme - jede Verbindung ist erstmal halboffen, bis das dritte Paket (SYN -> SYN-ACK -> ACK) gelaufen ist. Versuch doch einfach mal die Schwelle etwas höher zu setzen - vielleicht hilft das

Gruß
Backlsash
Antworten