In passato Alan Cox aveva già introdotto un meccanismo piuttosto semplice per controllare e limitare il traffico in uscita.
E' stato aggiunto e funziona correttamente a partire dai kernel versione 2.0.36 (stabile) e 2.1 (sviluppo).
Esiste inoltre anche un pacchetto rshaper-1.07.tar.gz disponibile all'indirizzo ftp.systemy.it che dovrebbe permettere di controllare anche il traffico in ingresso.
Per gestire lo shaping è necessario in questo caso compilare il driver come modulo (shaper.o) e utilizzare il programma shapecfg per la configurazione.
Nota: la velocità di trasmissione minima che si può impostare è di 9600 baud, quella massima è di 256K.
Esempio
#!/bin/bash # --------------------------------------------------------- # velocità di trasmissione 64Kbits (min. 9600, max. 256000) # --------------------------------------------------------- SPEED=64000 # --------------------------------------------------------- # Variabili riguardanti gli indirizzi della rete # --------------------------------------------------------- IPADDRESS=192.168.0.1 NETMASK=255.255.255.0 BROADCAST=192.168.0.255 RETE=... NETMASK_RETE=... echo "shaping ..." # --------------------------------------------------------- # inserire prima di tutto il modulo shaper.o # --------------------------------------------------------- insmod shaper # --------------------------------------------------------- # selezionare l'interfaccia utilizzata per lo shaping, in # questo caso eth0 # --------------------------------------------------------- shapecfg attach shaper0 eth0 # --------------------------------------------------------- # impostare la velocitò di invio dei dati # --------------------------------------------------------- shapecfg speed shaper0 $SPEED # --------------------------------------------------------- # impostare i parametri come una qualsiasi interfaccia # --------------------------------------------------------- ifconfig shaper0 $IPADDRESS netmask $NETMASK broadcast $BROADCAST up # --------------------------------------------------------- # impostare l'instradamento (rotte) affinché i pacchetti # diretti verso la rete $RETE utilizzino il device shaper0 # appena creato (qui si possono vagliare diverse soluzioni). # --------------------------------------------------------- route add -net $RETE netmask $NETMASK_RETE dev shaper0
Questo sistema è molto semplice e permette di gestire il traffico anche se in modo molto limitato. Sono comunque disponibili dei pacchetti che permettono di ampliarlo.