Ich habe mittlerweile im Netzwerk das Problem, das einige User so viel Downloads anwerfen (teilw. mittels Downloadmanager) das für andere Nutzer keine eingehende Bandbreite zur Verfügung steht. Das Problem ist ja nicht der ausgehende Traffic sondern der eingehende, das unsere WLAN Accesspoint, auch nur ein begrenzte Datenmenge übertragen können die weit unter der Bruttodatenmenge von 56 MBit liegt. Jetzt ist das eigentlich alles nur tagsüber ein wirkliches Problem das ich schon mittels Proxy den Verkehr ab bestimmter Dateigröße bremse.
Einige User haben aber die Möglichkeit entdeckt, das es mittlerweile WebProxys im Internet gibt die über HTTPS die Daten austauschen, dort bringt mein Proxy nichts mehr. Alles im allen bringt nur die Begrenzung auf eine bestimmte Datenrate tagsüber was. Nur wie anstellen? Sämtliche Anleitungen die man findet beziehen sich auf ausgehende Daten. Das Projekt DynShaper von Markus Schade befasst sich mit der Problematik, allerdings funktioniert das Script nur in der Uni dort und nicht bei mir zu Hause.
Traffic Shaping von Eingehenden Daten?
Traffic Shaping von Eingehenden Daten?
Computer würden LINUX kaufen.
-
- Beiträge: 1581
- Registriert: 01.05.2004 13:21:26
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DE
Es wäre von Vorteil, wenn du beschreiben kannst, in welchem Umfeld sich dein Problem befindet. Also zB welche Technik (router/switches) vorhanden ist und welchen (administrativen) Zugriff du hast. Letztlich passt natürlich wieder der bekannte Spruch, dass soziale Probleme nicht (oder nur schwer) mit Technik zu beheben sind. Sind die user identifizierbar, die den traffic verursachen? Gibt es eine policy, die Rechte und Pflichten der user regelt?
ciao, storm
ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */
Ok, dann will ich etwas genauer umschreiben. Der Router ist ein ganz normaler PC mit Debian. Switch in dem Sinne gibt es nicht, da vom Router aus direkt ein Accesspoint angeschlossen ist, der wiederrum die Bridge zu einer anderen Gegenstelle bildet. Dort ist dann der Hauptaccesspoint an dem alle angeschlossen sind. Eine Policy wurde aufgestellt, das alle User zwar theoretisch unbegrenzten Traffic haben, aber auf Grund der WLantechnik sich fair verhalten sollen und größere Downloads nachts durchführen sollen.
Aber da YouTube, Rapidshare und Co sehr beliebt sind, gehen natürlich auf Dauer die Bandbreiten in die Knie, wobei ja schon der Squid gute Dienste leistet. Alle User im Netz wissen was die Technik schafft und wo es Probleme gibt, letztendlich interessiert es doch keinen. Andererseits kann man doch nicht alles sperren. Deshalb muss eine Lösung her die allgemein die Bandbreite der "Poweruser" etwas abschwächt. Den Traffic je IP hab ich mittlerweile so erfasst, das alles mit ipcas in eine Datenbank geschrieben wird. Scripte schreiben die das dann automatisch verwalten wäre auch nicht das Problem, nur mit was drossel ich die Bandbreite eingehend und noch IP-abhängig?
Aber da YouTube, Rapidshare und Co sehr beliebt sind, gehen natürlich auf Dauer die Bandbreiten in die Knie, wobei ja schon der Squid gute Dienste leistet. Alle User im Netz wissen was die Technik schafft und wo es Probleme gibt, letztendlich interessiert es doch keinen. Andererseits kann man doch nicht alles sperren. Deshalb muss eine Lösung her die allgemein die Bandbreite der "Poweruser" etwas abschwächt. Den Traffic je IP hab ich mittlerweile so erfasst, das alles mit ipcas in eine Datenbank geschrieben wird. Scripte schreiben die das dann automatisch verwalten wäre auch nicht das Problem, nur mit was drossel ich die Bandbreite eingehend und noch IP-abhängig?
Computer würden LINUX kaufen.
-
- Beiträge: 1581
- Registriert: 01.05.2004 13:21:26
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DE
Das heisst, die Leecher hängen mit an der debian-Box und du könntest da ansetzen, richtig?hronny hat geschrieben:Ok, dann will ich etwas genauer umschreiben. Der Router ist ein ganz normaler PC mit Debian. Switch in dem Sinne gibt es nicht, da vom Router aus direkt ein Accesspoint angeschlossen ist, der wiederrum die Bridge zu einer anderen Gegenstelle bildet. Dort ist dann der Hauptaccesspoint an dem alle angeschlossen sind.
Natürlich hast du recht, wenn du sagst, das man eingehenden Verkehr nur schlecht drosseln kann. Allerdings ist aus Sicht der debian-Box der Verkehr, der in dein Netz reinkommt, auch "ausgehender" Verkehr. Also kann man da schon ansetzen. Zuerst könntest du darüber nachdenken, mit den bekannten tools aus dem iproute2-Paket und den im Kernel vorhandenen Schedulern den Verkehr zu priorisieren, Stichworte: tc, htb, sfq, etc. So könntest du p2p und Konsorten erstmal etwas ausbremsen und anderen Diensten Vorrang geben. Das funktioniert eigentlich ganz gut, ist natürlich aber keine richtige (harte) Begrenzung der Bandbreite.
Weiterhin besitzt iptables einige sinnvolle extensions, die hier helfen können (die kommen teilweise auch schon beim traffic shaping zum Einsatz). Da ist zB. limit, damit könntest du eine harte Begrenzung einbauen, die über einer erlaubten Grenze Pakete wegwirft (DROP) oder rejected, allerdings ist das allein keine wirklich saubere Variante. Dann wäre da noch die Extension iplimit, welche die Anzahl gleichzeitig offener Verbindungen regeln kann. Die macht zwar bei geringeren Bandbreiten keinen Sinn (wenige Verbindungen reichen, um die Bandbreite auszuschöpfen), aber in deinem Fall könnte sie schon sinnvoll sein. Und dann wäre da auch noch die Extension quota, mit der du ein Gesamtlimit (pro IP oder Port) setzen kannst. Die zählt einfach die Menge und wenn die Quota erreicht ist, 'match' die Regel nicht mehr - eine in der Liste dahinterstehende Regel könnte dann die Pakete droppen. Die Regel nutzt man zusammen mit einem cronjob, der in festen Intervallen den Zähler immer wieder zurücksetzt.
Du findest im Netz unzählige Beispiele, fertige Skripte und Howtos, natürlich ist da Arbeit angesagt - es gibt leider kein Patentrezept oder eine fertige Software (oder ich kenn sie nicht :). Ich hoffe, dass ich dir trotzdem ein paar Anhaltspunkte geben konnte und wenn du weitere Fragen hast: stell sie.
Guten Rutsch und ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Schau Dir vielleicht dazu mal mein Beispiel-Script aus diesem Thread an, da kannst Du wahrscheinlich schon mal ein paar Ideen sammeln.
Gruss, mistersixt.
Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE