Esempio pratico per limitare la banda in upload in Linux.

Ogni tanto in questo blog vanno messe un po’ di robe tecniche altrimenti la mia geekness se ne va a farsi benedire e la gente smette di dirmi che sono nerd.

Ultimamente ho messo su una scatoletta linux che funziona da media server per la XBOX (usando ushare) e da server samba/ssh/http.

SSH e HTTP sono esposti su internet e li uso per trasferire files.

Alcuni amici hanno accesso solo che abusano della clemenza e scaricano file in maniera un po’ troppo eccessiva πŸ˜€

Cosicche’ oggi ho messo mani a TC (traffic control) per configurare un tetto massimo di 20kbps in upload. TC e’ una CLI che permette di gestire il traffic shaping in Linux ma la sua sintassi e’ troppo arcana… cosicche’ un gruppo di giovini ha creato tcng (TC new generation).

Cosicche’ me ne sono uscito con queste poche righe di file di testo da eseguire a boot time:

root@linutop:/etc# cat /etc/rc.local 
#!/bin/sh
tc qdisc del root dev eth0
tcng -q /etc/tcng > /tmp/tc
sh /tmp/tc 
rm /tmp/tc


root@linutop:/etc# cat /etc/tcng 
#define INTERFACE  eth0 
#define IP 192.168.50.252

dev INTERFACE {
    egress { 

        class ( < $http> ) if ip_src == IP && tcp_sport == PORT_HTTP ;
        class ( < $other> )  if 1 ;

        htb () { 
            class ( rate 100Mbps, ceil 100Mbps) { 
                $http  = class ( rate 100kbps, ceil 200kbps ) { sfq; } ;
                $other = class ( rate 128kbps, ceil 100Mbps) { sfq; } ;
            }
        }
    }
}

Enjoy, vi ho dato lo spunto per iniziare.
Letture interessanti:

* http://www.faqs.org/docs/Linux-HOWTO/Traffic-Control-tcng-HTB-HOWTO.html

* http://www.faqs.org/docs/Linux-HOWTO/Traffic-Control-tcng-HTB-HOWTO.html

Comments Posted in Informatica, Linux
Tagged , , , , ,

Comments

  1. LoneStar says:

    io ho usato roba preconfezionata x fare da media server x la PS3 (Openfiler + Mediatomb), pero’ bisogna dire che la conoscenza di iproute2 e del traffic control Γ¨ largamente sottovalutata

  2. syliael says:

    non solo perchΓ¨ la gente te lo dice…nerd lo sei davvero…! πŸ˜›

  3. pallotron says:

    @antonio
    non violero’ la PRAIVASI dei diretti interessati perche’ c’ho un’etica πŸ˜›

  4. antonio says:

    Ahaha non conoscevo tcng, una volta feci una roba con tc e prima di poter partorire qualcosa ho dovuto passare mezza giornata a leggere *tutto* il manuale; cosi’ invece sembra molto piu’ semplice.

    Ma chi e’ che scarica? πŸ˜€

  5. Asbesto says:

    minchia, ma pure di notte? che palleeee πŸ™‚

  6. Zax (Andrea) says:

    interessante: io non ci azzecco con linux, ma un mio collega si ! domani gli posto il tuo lavoro.

    Grazie 1000

    Andrea