[linux] download snelheid beperken?

Pagina: 1
Acties:

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Hoi

Ik heb op een debian woody machine een programma draaien wat HTTP pagina's served en een bepaald soort binaire audio bestanden. Omdat van dit programma de authenticatie niet echt super is, heb ik apache en mod_proxy gebruikt om de boel te proxy-en met ProxyPass en ProxyPassReverse:

localhost:999 <-> apache+mod_proxy <-> eth0:80

Dit werkt perfect, en ik kan alle authenticatie dingen van apache nu gebruiken.
Alleen blijkt nu dat de inhoud van de server leeg geleeched wordt, en aangezien hij een gigabit uplink heeft gaat dat nogal erg snel :(

Ik heb mod_throttle geprobeerd en mod_bandwidth, dat werkt heel mooi, maar het werkt dus alleen met files die door apache zelf geserved worden.
mod_proxy doet zijn eigen ding en files van mijn achterliggende app gaan dus nog fijn met full speed de deur uit...

Wat ik wil is dat per connectie een bandbreedte ingesteld wordt. Dus er mogen wel ongelimiteerd users connecten, maar iedere connectie naar een uniek IP mag dan maximaal x kbit/sec zijn.

Ik heb ook al veel gelezen over ToS en tig leuke scriptjes die tc/ip gebruiken, maar die gaan allemaal uit van een standaard LAN enzo. Bovendien gaan die allemaal uit van een vooraf vaststaande IP adressen enzo.

Iemand dit wiel al eens eerder uitgevonden?

  • decramy
  • Registratie: December 2001
  • Laatst online: 13:39

decramy

root@birdie:~#

in je kernel:
CONFIG_SHAPER

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 Linux Kernel v2.6.0 Configuration
 Traffic Shaper (EXPERIMENTAL) 
  &#9474; CONFIG_SHAPER:                                                            &#9474;
  &#9474;                                                                           &#9474;
  &#9474; The traffic shaper is a virtual network device that allows you to         &#9474;
  &#9474; limit the rate of outgoing data flow over some other network device.      &#9474;
  &#9474; The traffic that you want to slow down can then be routed through         &#9474;
  &#9474; these virtual devices. See                                                &#9474;
  &#9474; <file:Documentation/networking/shaper.txt> for more information.          &#9474;
  &#9474;                                                                           &#9474;
  &#9474; An alternative to this traffic shaper is the experimental                 &#9474;
  &#9474; Class-Based Queueing (CBQ) scheduling support which you get if you        &#9474;
  &#9474; say Y to "QoS and/or fair queueing" above.                                &#9474;
  &#9474;                                                                           &#9474;
  &#9474; To set up and configure shaper devices, you need the shapecfg             &#9474;
  &#9474; program, available from <ftp://shadow.cabi.net/pub/Linux/> in the         &#9474;
  &#9474; shaper package.                                                           &#9474;
  &#9474;                                                                           &#9474;
  &#9474; To compile this driver as a module, choose M here: the module             &#9474;
  &#9474; will be called shaper.  If unsure, say N.                                 &#9474;

[ Voor 49% gewijzigd door decramy op 11-02-2004 22:12 ]

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • eth0
  • Registratie: Mei 2002
  • Laatst online: 15-09-2025
Voor beginers wil cbq nog al complex overkomen

Hier is een wrapper script om cbq heen, werkt erg goed gebruik het zelf ook op een aantal 100 Mbit routers: http://freshmeat.net/projects/cbq.init

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Voor beginers wil cbq nog al complex overkomen

Hier is een wrapper script om cbq heen, werkt erg goed gebruik het zelf ook op een aantal 100 Mbit routers: http://freshmeat.net/projects/cbq.init
Ja coolio dat werkt, alleen nu nog uit zien te vogelen hoe ik het opzet dat er een limit wordt gezet per connectie.... En niet op de totale bandbreedte.
Dat moet volgens mij dan met iptables marks. Maar die houden weer geen connecties bij. Dus...?
In /proc/net/ip_conntrack staan wel de opgezetten connecties, misschien daar een scripje voor maken die af en toe naar de connecties kijkt? en dan voor iedere socket-socket paar een limit opzet :?