Avanti Indietro Indice

4. Shaper device

4.1 Introduzione

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.

4.2 Esempio

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.


Avanti Indietro Indice