Newsgroup: it.comp.os.linux.sys
Titolo: Shaping con TOS

Sto tentando di capire il funzionamento di tc per prioritizzare la banda.
 
Sono partito dalla coda prio che dovrebbe essere la pi� semplice.
 
Sulla documentazione di tc, viene detto che la coda di default �
pfifo_fast, nel mio caso per� � mq.
 
Quindi imposto la prio con:
 
tc qdisc add dev eth0 root handle 1: prio
 
e tc qdisc mi dice:
 
qdisc prio 1: dev eth0 root refcnt 6 bands 3 priomap  1 2 2 2 1 2 0 0 1
1 1 1 1 1 1 1
 
Ora imposto sul "server", due TOS diverse per due host (il primo un pc
fisico, il secondo una vm dentro al server).
 
iptables -A OUTPUT -t mangle -d 192.168.10.6 -j TOS --set-tos Minimize-Delay
iptables -A OUTPUT -t mangle -d 192.168.10.5 -j TOS --set-tos Minimize-Cost
 
Lanciando un wget di un'iso da i due client in contemporanea, mi aspetto
che l'host .6 vada alla massima velocit�, mentre il .5 dovrebbe
scaricare solo quando ha finito il .6 o andare ad una velocit� minima.
 
Di fatto, il .5 va a banda piena intorno ai 100 MB/s, mentre il .6
intorno ai 20 MB/s.
Se cancello le regole di iptables non cambia nulla.
 
Se lancio i wget singolarmente nei due client, ho in entrambi i casi
velocit� superiori ai 100 MB/s.
 
Su entrambi i client ho provato con tcpdump e vedo che il campo TOS
viene impostato a 0x2 e 0x10.

 scaricare solo quando ha finito il .6 o andare ad una velocità minima.
 
Sbagli ricetta.
Usa CLASSIFY di iptables e una disciplina htb.
 


Ok, provo anche questa.
Ho a che fare con una linea internet pessima e stavo tentando di vedere
se con un po' di shaping si riusciva a prioritizzare alcuni tipi di
connessione.
 
Avevo pensato di partire dall'inizio e provare un po' tutti i tipi di
shaping per vedere quello che andava meglio, ma mi sto rendendo conto
che è una guerra, anche per gli scheduler più semplici.
 
 

 connessione.
 
Sì, ci si riesce, ottimamente.
Se vuoi darmi delle tracce di esempio (ip sorgente e destinazione, protocolli eccetera) possiamo
vedere un esempio pratico insieme.


Purtroppo al lavoro sta settimana e le prossime sono da suicidio, quindi
non riuscirò a fare prove con calma se non nel fine settimana a casa.
Ti spiego la mia situazione, con i relativi desideri e vediamo che salta
fuori:
- linea adsl 4 mbit down quando va bene e 256 kbit up quando va bene
(stiamo trattando con telecom per una nuova linea, ma sembra che
dall'ultimo colloquio che ha avuto il capo, dai 256 kbit dopo le
verifiche in centrale ci garantiscono solo 40 kbit..., l'aria sopra il
tetto è satura di ponti radio di vari wisp e non c'è possibilità di
connettività in fibra);
 
- un server linux direttamente attaccato al router adsl che fa da vpn
server (pptp + openvpn) con un proprio ip pubblico;
 
- lan con vari client che tramite firewall esce con un altro ip pubblico;
 
Devo fare in modo che siano prioritarie le connessioni in rdp che
passano attraverso il server vpn oppure dai pc dei colleghi che si
collegano direttamente ai clienti con altri tipi di vpn (cisco,
sonicwall, altri accrocchi strani), ma questi ultimi li posso
identificare in base all'ip di destinazione che è statico.
 
Subito dopo devo vengono le connessioni ssl del pc in amministrazione
(ogni tanto ha problemi con il collegamento ai siti di home banking).
 
Normale nagivazione.
 
Ed infine dropbox, google drive.
 
Purtroppo con così poca banda in upload non posso dividerla in "fascie"
di banda minima garantita per i vari servizi.
Inoltre può succedere che chi è collegato in rdp possa uploadare file
tramite l'rdp, quindi vorrei fare che quando un pc impegna troppa banda
in rdp per un po' di secondi (un minuto), poi scatti una "limitazione"
in modo da non inchiodare gli altri. Presumo andrebbe bene il TBF.
Questo lo farei in ogni caso per tutte le tipologie di connessione in
modo da favorire gli usi sporadici di banda a discapito di chi
trasferisce file.
 
Questa limitazione, dovrebbe scattare però soltanto se ci sono altri che
usano la banda, altrimenti no. Per fare questo potrebbe avere senso
monitorare il tempo di ping del primo router dopo il router adsl?

 verifiche in centrale ci garantiscono solo 40 kbit...
 
IMHO con solo 40 kbit o poco più non ci sono margini di intervento per 
tutto quello che vuoi fare.
 
 

 tutto quello che vuoi fare.
 
Va ben, questo ï¿œ quello che dice di garantire telecom.
Di norma 100/200 kbit di upload e 2/3 mbit in download li abbiamo.
Quello che vorrei fare ï¿œ evitare che mentre lavoriamo ci pestiamo i
piedi l'uno con l'altro ed ogni volta che c'ï¿œ un rallentamento andare ad
indagare chi sta uploadando o downloadando cosa.

 indagare chi sta uploadando o downloadando cosa.
 
La mia esperienza (ma non mi sono messo a giocare con codel, sto aspettando
wheezy...) è che l'unica strada possibile è controllare anche l'ingress in
modo stretto, e l'unico modo per farlo è usare ad oggi 'ifb'.
 
Fatto questo, le cose migliorano, ma è chiaro che se non c'è banda, non c'è
banda. ;-)
 
-- 
  Una volta qualcuno chiese al Mahatma Gandhi cosa ne pensasse della civiltà
  in occidente. «Credo che sarebbe una buona idea», rispose.