Newsgroup: it.comp.os.linux.sys
Titolo: Limitare la banda per una rete (Non il solito quesito)

Premetto che sto studiando come si deve i seguenti howto:
Adv-Routing-HOWTO
Bandwidth-Limiting-HOWTO
So come funzionano le QoS e Iptables.
Il problema è questo, voglio limitare il traffico in entrata e uscita da un
server in modo da:
1) Far si che i dati provenienti da internet (ippp0 o eth1) siano ripartiti
2) Non limitare il traffico dei servizi, file o altro di server locali posti
in quel server (esempio ftp)
Ora il problema è il seguente:
Internet<-->ippp0 o eth1<-->server<-->rete locale
Se imposto la coda in modo da ripartire la banda massima che può arrivare da
internet ho come triste conseguenza che anche il traffico verso la rete dei
server sul pc "server" subisce tale limitazione.
Se imposto come classe principale la banda massima della scheda di rete e
imposto un kbp/s relativo alla banda internet (sempre con la possibilita' di
usare la banda libera della classe padre), non noto particolari differenze,
bene o male il traffico viene "succhiato" da chi è "più" veloce... (o forse
ho sbagliato io?). Senza contare che basta che un host contatti un server
locale che si gioca il pezzetto di banda che scombina tutto.
Una maniera fattibile è quella nell'Bandwidth-Limiting-HOWTO, il problema è
che non sembra che squid sia così dinamico a capire quando può usare più
banda o no, e impostare i limiti per ogni tipo di richiesta penso che sia un
casino.
Qualcuno ha fatto sperimenti o propone qualcosa che non sia un pc destinato
a fare unicamente da firewall router? ;)
Ricordo che il problema risiede nel fatto che il server che fornisce la
connessione agli host ha dentro di se programmi server, che non vorrei che
fossero soggetto alle limitazioni della banda verso la rete locale.
--
| /
| \Byte - Andrea Briganti - 
kbyt...@tin.it
http://digilander.iol.it/kbytesystem
ICQ: 40872731 - C6: andreakbyte
Activelist Sentimenti: 47103807

Mi rispondo da solo. Molto è basato sull'Bandwidth HowTo, solo che esso non
dice alcune cosette utili per potere risolvere il problema! ;))
Procediamo per gradi: le classi possono essere scritte in modo che, come nel
caso di iptables, venga selta una sdrada e non valutate tutte.
Per cui la mia idea di ripartire la connessione internet, dietro masquerade,
è stata questa:
1) Creare una classe principale che descriva la banda che il server locale
può spingere verso la rete.
2) Creare una classe con ID maggiore, sottoclasse della prima, che
gestisca il traffico direttamente verso i nodi di uscita ma con un bount del
traffico uguale alla velocità della connessione
3) Creare le sottoclassi relativi ai singoli pc o sottoreti.
Ho usato il file cbq-init versione 6.2 (vedi l'howto per l'indirizzo), e ho
creato i seguenti file di classi:
cbq-2.server-client
-----------------------------
DEVICE=eth0,10Mbit,1Mbit
RATE=10Mbit
WEIGHT=1Mbit
BOUNDED=no
PRIO=5
RULE=10.0.0.1,
10.0.0.0/24
RULE=
10.0.0.0/24,10.0.0.1
cbq-3.internet-rete
-----------------------------
DEVICE=eth0,10Mbit,1Mbit
RATE=65Kbit
WEIGHT=6Kbit
BOUNDED=yes
PARENT=2
PRIO=5
cbq-4.aristide
-----------------------------
DEVICE=eth0,10Mbit,1Mbit
RATE=30Kbit
WEIGHT=3Kbit
PARENT=3
BOUNDED=no
PRIO=5
RULE=10.0.0.3
RULE=10.0.0.3,
cbq-5.kbyte
-----------------------------
DEVICE=eth0,10Mbit,1Mbit
RATE=35Kbit
WEIGHT=3Kbit
PARENT=3
BOUNDED=no
PRIO=5
RULE=10.0.0.2
RULE=10.0.0.2,
In questo modo solo il traffico proveniente dal server (o da indirizzi e
sottoreti a piacimento) non subiscono limitazioni, solo il traffico
proveniente da internet lo è.
O meglio sto sperimentando e sembra funzionare.
| /
| \Byte - Andrea Briganti - 
kbyt...@freemail.it
