[glux] NetShaper 8.0 stable
Pietro Bertera
dr.iggy@iol.it
Tue, 25 Mar 2003 01:50:17 +0100
Ciao,
ho finito di testare (forse) NetShaper.
ho messo tutto su web.
http://www.makkia.net/projects/netshaper/
manca ancora la documentazione.
allo stato attuale netshaper opera traffic shaping secondo regole che si
possono creare combinando le seguenti opzioni:
-s <host> specifica un host sorgente
-d <host> specifica un host destinazione
-sport <port> specifica una porta sorgente
-dport <port> specifica una porta destinazione
-p <proto> specifica il protocollo (TCP o UDP) (default tcp)
-i <iface> specifica un'interfaccia di input
-o <iface> specifica un'inetrfaccia di output
-t <time> specifica il massimo timeout di permanenza dei pacchetti in
millisec
<bandwidth> Banda esperessa in Bytes/sec
<host> supporta sia i nomi, sia gli ip che le sottoreti (queste sia
nella forma /xxx che in notazione puntata)
La granularità minima è data dalla regola:
netshaper 1000000
che impone che tutto il traffico venga limitato a 1000000 B/s
La granularità massima è quindi:
netshaper -s 192.168.2.0/24 -d 192.168.2.10 -p tcp -i eth0 -o eth1
-sport 80 -dport 4456 -t 1500 1000000
Questa regola impone che tutti i dati provenienti dalla sottorete
192.168.2.0/24 destinati all' host 192.168.2.10 co protocollo tcp,
entranti da eth0, uscenti da eth1, con porta sorgente 80 e porta
destinazione 4456 abbiano velocità non superiore ai 1000000 B/s
e che i pacchetti non permangano nelle code + di 1500 millisecondi.
(il timeout è arrotondato alla decina di millisecondo + vicina)
Ogni volta che viene scritta una regola viene aggiornata una proc entry
(/proc/netshaper/rules) in cui sono elencate tutte le regole.
in questa entry vengono anche rappresentati quanti byes sono residenti
nelle code (per ogni singola regola) nel momento in cui si è letta la
/proc entry.
NetShaper supporta anche architetture multiprocessore (non ho ancora
testato a fondo pero'...).
Per poterlo compilare occorre avere un kernel 2.4 il supporto per il
Netfilter, il supporto per lkm, e i sorgenti dek kernel per le librerie.
per compilaro: gcc -c netshaoer_mod.c -Wall -I{percorso dei src}/include
poi installare il modulo con:
insmod netshaper_mod.o
compilare il componente in userspace:
gcc -o netshaper netshaper.c
poi usare e abusare dell'eseguibile creato.
Chiunque ha dubbi, domande proposte mi contatti.