Imparare la sintassi e` complicato e bisogna entrare un po' per cosi` dire nella forma mentis del traffic control, ma e` fattibile...
Mentre stai imparando considera che esiste il qdisc
HTB che fa circa le stesse cose ma e` decisamente piu` facile del
CBQ che viene di solito spiegato per primo nelle guide.
Inoltre se sai gia` usare benino iptables puoi tranquillamente ignorare tutte le parti relative al sistema di selezione e filtering di tc, tanto c'e` il target CLASSIFY di iptables che permette di assegnare i pacchetti selezionati da iptables alle classi di tc.
Per il tuo caso, che comunque e` minimale quindi semplice, ti serve un qdisc classful qualsiasi per creare 2 classi di traffico, nfs e "tutto il resto".
Ci sono varie possibilita`, la piu` banale e` usare un PRIO(+TBF), altrimenti c'e` HTB che e` concettualmente piu` complesso ma da` una funzionalita` ottimale.
Con PRIO puoi creare una semplice suddivisione, in cui nfs -tramite TBF- avra` inflessibilmente fino a 1 mega e l'altra classe avra` automaticamente tutto il resto.
Il fatto che PRIO assegni priorita` alle classi e` irrilevante in questo caso, basta che la classe di nfs sia la prioritaria sull'altra (tanto e` limitata). Ho scelto PRIO perche` e` il qdisc classful piu` semplice!
Invece con HTB si puo` anche far si` che nfs sia limitato soltanto nel caso in cui gli altri 9 mega siano effettivamente utilizzati dall'altra classe. Altrimenti, se la rete e` libera, anche nfs puo` avere tutta la banda. In altre parole HTB permette che le classi abbiano la loro banda garantita, ma non imponendo a nessuno un limite assoluto in caso di banda libera, cosi` in sostanza la banda si sfrutta sempre al massimo.
Codice: Seleziona tutto
tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit burst 15k #banda totale
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 9mbit ceil 10mbit burst 15k #default
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1mbit ceil 10mbit burst 15k #nfs
Non includo il codice per selezionare il flusso nfs perche` avendolo usato molto poco non ricordo le caratteristiche della connessione. Principalmente se usa una porta fissa o meno.