+ All Categories
Home > Documents > Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1...

Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1...

Date post: 24-Jan-2020
Category:
Upload: others
View: 8 times
Download: 1 times
Share this document with a friend
62
Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa Il seguente documento presenta le mie considerazioni sul QoS utilizzato da ZeroShell. Le prove sono state effettuate con un generatore di traffico software ( www.ostinato.org ). Effettuerò più prove cambiando le condizioni iniziali di traffico entrante e le configurazioni di ZeroShell per verificare come il QoS influisce sul traffico uscente. Il documenti di riferimento sono: LARC How To e HTB Linux queuing discipline manual - user guide ”. In genere non vi è nessun motivo per un flusso di dati di ricevere un trattamento differente rispetto ad un altro nell’attraversamento di una interfaccia di rete. L’unica condizione che ne può cambiare il comportamento è il flusso per unità di tempo. Le tipologie di traffico con una portata maggiore in ingresso verranno riportate in uscita in maniera proporzionale. Questo comportamento lo ritroviamo anche nel QoS di ZeroShell quando non vi è nessuna impostazione di “banda massima” e di “banda assegnata”, sino a quando la banda totale in ingresso non supera la Global assegnata. Superata la Global dal traffico in ingresso il QoS comincerà ad eseguire il drop dei pacchetti per mantenere il traffico sotto la soglia imposta dalla Global. Le verifiche sono effettuate sempre – a meno di eccezioni volute - in condizione di saturazione della portata massima. Il flusso in ingresso è sempre maggiore o uguale al valore di banda massima configurato tramite GUI di ZeroShell. Per avere un’idea della differenza tra il traffico generato da Ostinato e quello misurato dalle statistiche di ZeroShell, riportate in seguito, effettuiamo una prima serie di test. Definiamo su ZeroShell una banda massima, una classe di traffico oltre a quella di default. A questo punto generiamo con Ostinato un volume di traffico al di sotto della banda massima e vediamo come questo traffico imposto venga registrato dalle statistiche di ZeroShell.
Transcript
Page 1: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 1

Analisi del QoS di ZeroShell mediante il generatore di trafficoOstinatoPremessaIl seguente documento presenta le mie considerazioni sul QoS utilizzato da ZeroShell. Le provesono state effettuate con un generatore di traffico software (www.ostinato.org). Effettuerò più provecambiando le condizioni iniziali di traffico entrante e le configurazioni di ZeroShell per verificarecome il QoS influisce sul traffico uscente. Il documenti di riferimento sono: LARC How To e“HTB Linux queuing discipline manual - user guide”.

In genere non vi è nessun motivo per un flusso di dati di ricevere un trattamento differente rispettoad un altro nell’attraversamento di una interfaccia di rete. L’unica condizione che ne può cambiareil comportamento è il flusso per unità di tempo. Le tipologie di traffico con una portata maggiore iningresso verranno riportate in uscita in maniera proporzionale. Questo comportamento loritroviamo anche nel QoS di ZeroShell quando non vi è nessuna impostazione di “banda massima”e di “banda assegnata”, sino a quando la banda totale in ingresso non supera la Globalassegnata. Superata la Global dal traffico in ingresso il QoS comincerà ad eseguire il drop deipacchetti per mantenere il traffico sotto la soglia imposta dalla Global.

Le verifiche sono effettuate sempre – a meno di eccezioni volute - in condizione di saturazionedella portata massima. Il flusso in ingresso è sempre maggiore o uguale al valore di banda massimaconfigurato tramite GUI di ZeroShell.

Per avere un’idea della differenza tra il traffico generato da Ostinato e quello misurato dallestatistiche di ZeroShell, riportate in seguito, effettuiamo una prima serie di test. Definiamo suZeroShell una banda massima, una classe di traffico oltre a quella di default. A questo puntogeneriamo con Ostinato un volume di traffico al di sotto della banda massima e vediamo comequesto traffico imposto venga registrato dalle statistiche di ZeroShell.

Page 2: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 2

Classe Default Classe RDP Traffico complessivo (Kbps)

Traffico generato 1024 Kbps 1024 Kbps 2048

Traffico misurato 977376 bps 978872 bps 1956

Differenza 92

Potremmo ipotizzare questa differenza di 100 Kbps come un errore introdotto dalle varieapprossimazioni tra bit e Kbit tra i vari strumenti (tc, ZeroShell, Ostinato, Task Manager). Per avereun’idea di misura considereremo questa differenza come un errore da introdurre nelle misure.Considererò un errore nelle misure pari al 5% del valore del traffico in ingresso.

Il task manager di Windows dove è installato Ostinato riporta un flusso complessivo di 2,1 Mbps.

Le statistiche grafiche di ZeroShell, così come il risultato del comando tc, riportano un ratemisurato complessivo differente pari a di 1956 Kbps per il comando tc e 1962 Kbit per le statistichegrafiche.

root@ZeroShell ~> tc -s -d class show dev ETH00 class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 47654749 bytes 792604 pkt (dropped 0, overlimits 0 requeues 0) rate 977376bit 2036pps backlog 0b 0p requeues 0 lended: 9 borrowed: 792595 giants: 0 tokens: -248182838 ctokens: 62570

Page 3: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 3

class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 95520121 bytes 1585055 pkt (dropped 0, overlimits 0 requeues 0) rate 1956Kbit 4072pps backlog 0b 0p requeues 0 lended: 1585037 borrowed: 0 giants: 0 tokens: 58517 ctokens: 58517

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 47865372 bytes 792451 pkt (dropped 0, overlimits 0 requeues 0) rate 978872bit 2036pps backlog 0b 0p requeues 0 lended: 9 borrowed: 792442 giants: 0 tokens: -248183477 ctokens: 62127

La tabella precedente la possiamo riformulare indicando il numero di pacchetti per secondo, inquesto modo osserviamo che il numero di pacchetti complessivo è proprio pari alla somma deipacchetti per secondo della classe default con la classe RDP

Classe Default Classe RDP Traffico complessivo

Traffico generato 1024 Kbps 1024 Kbps 2048 Kbps

Traffico misurato 2036 pps 2036 pps 4072 pps

Come ulteriore esempio raddoppiamo il traffico generato entrante per entrambe le tipologie ditraffico

Illustration 1: QoS Statistics

Page 4: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 4

Il traffico misurato dal Task Manager di Windows indica un valore di 4,2 Mbps,

Page 5: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 5

Il comando tc restituisce come valore complessivo un rate di 2926 Kbps, direttamente connesso alvalore limite della banda globale, e le singole classi registrano un flusso identico pari a 1463 Kbit

root@ZeroShell ~> tc -s -d class show dev ETH00 class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 10344286 bytes 172200 pkt (dropped 53678, overlimits 0 requeues 0) rate 1463Kbit 3043pps backlog 0b 127p requeues 0 lended: 4 borrowed: 172196 giants: 0 tokens: -612919001 ctokens: 63350

class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1mpu 0b overhead 0b level 7 Sent 20690011 bytes 344382 pkt (dropped 0, overlimits 0 requeues 0) rate 2926Kbit 6091pps backlog 0b 0p requeues 0 lended: 344374 borrowed: 0 giants: 0 tokens: -1809 ctokens: -1809

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 10345785 bytes 172183 pkt (dropped 53656, overlimits 0 requeues 0) rate 1463Kbit 3047pps backlog 0b 118p requeues 0 lended: 4 borrowed: 172179 giants: 0 tokens: -740507768 ctokens: 63595

class sfq 10:34a parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 28:3c7 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7200b 120p requeues 0

Con questi primi esempi abbiamo la conferma che il traffico si suddivide in proporzione al flussoentrante e che il valore della banda massima viene rispettata.

Page 6: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 6

Traffico con stessa priorità

Generiamo per ogni classe a pari priorità la stessa quantità di traffico circa - 768 Kbps - tale dasaturare la massima banda consentita (768*4=3072Kbps). Il traffico è generato tramite il softwareOstinato (www.ostinato.org) che è presente su di un server Windows.

Page 7: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 7

Le statistiche riportano come il traffico si ripartisce.

Maggiori dettagli li ritroviamo attraverso il comando tc eseguito direttamente su una shell di “ZeroShell”. In evidenza i campi che consentono l’interpretazione dei risultati del QoS.

class htb : HTB - Hierarchy Token Bucketprio: In the round-robin process, classes with the lowest priority field are tried for packets first. rate : Maximum rate this class and all its children are guaranteedceil : Maximum rate at which a class can send, if its parent has bandwidth to spare. Defaults to the configured rate, which implies no borrowing.pps: pacchetti per secondodropped: numero di pacchetti eliminati

Page 8: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 8

La suddivisione gerarchica delle classi è riportata nel grafico seguente.

La classe root rappresenta l’interfaccia virtuale su cui viene fissata la banda globale massima e al di sotto le varie classi di traffico che condividono la banda messa a disposizione dalla classe root.

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 39151455 bytes 649722 pkt (dropped 0, overlimits 0 requeues 0) rate 2940Kbit 6107pps backlog 0b 0p requeues 0 lended: 649707 borrowed: 0 giants: 0 tokens: 50588 ctokens: 50588

class htb 1:10 (default) parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 9805274 bytes 162638 pkt (dropped 0, overlimits 0 requeues 0) rate 739400bit 1531pps backlog 0b 0p requeues 0 lended: 3 borrowed: 162635 giants: 0 tokens: -172851655 ctokens: 62596

class htb 1:28 (RDP) parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 9867306 bytes 162436 pkt (dropped 188, overlimits 0 requeues 0) rate 735768bit 1525pps backlog 0b 0p requeues 0 lended: 2 borrowed: 162434 giants: 0 tokens: -162906730 ctokens: 62140

class htb 1:30 (LPR) parent 1:1 leaf 30: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 9739380 bytes 162323 pkt (dropped 0, overlimits 0 requeues 0) rate 732192bit 1525pps backlog 0b 0p requeues 0

1:1root

1:10default

1:26SMB

1:28RDP

1:30LPR

Page 9: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 9

lended: 5 borrowed: 162318 giants: 0 tokens: -888130102 ctokens: 62206

class htb 1:26 (SMB) parent 1:1 leaf 26: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 9739495 bytes 162325 pkt (dropped 0, overlimits 0 requeues 0) rate 732200bit 1525pps backlog 0b 0p requeues 0 lended: 5 borrowed: 162320 giants: 0 tokens: -888129002 ctokens: 62177

Il traffico viene suddiviso in parti uguali. Il numero di pacchetti per secondo - pps - di ciascunaclasse è confrontabile ed inoltre, la loro somma, coincide con il valore conteggiato dalla “ rootclass”. Il comando tc “fotografa” il traffico nel momento in cui viene eseguito il comando stesso.

Traffico con la stessa priorità ma con valori di flusso differenti

Raddoppiamo il traffico generato da una classe e vediamo come questa cresce rispetto alle altre. Generiamo 1536 Kbps di traffico RDP mantenendo invariata la priorità High e il traffico generato sulle altre classi ( DEFAULT=LPR=SMB 768Kbps)

Vediamo che la classe RDP è solo leggermente in vantaggio rispetto alle altre. Dobbiamoconsiderare che il volume di traffico è tale da saturare il limite di banda imposto all’interfaccia

Page 10: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 10

ETH00 dal QoS. Il dettaglio lo si scorge osservando il valore di pacchetti “ dropped” nella classe1:28 corrispondente al traffico RDP.

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 266506196 bytes 4398517 pkt (dropped 0, overlimits 0 requeues 0) rate 2982Kbit 6202pps backlog 0b 0p requeues 0 lended: 4398454 borrowed: 0 giants: 0 tokens: -2414 ctokens: -2414

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 65785110 bytes 1093487 pkt (dropped 135, overlimits 0 requeues 0) rate 736352bit 1530pps backlog 0b 18p requeues 0 lended: 18 borrowed: 1093469 giants: 0 tokens: -792334792 ctokens: 62985

class htb 1:28 (RDP) parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 69635666 bytes 1120273 pkt (dropped 688413, overlimits 0 requeues 0) rate 780704bit 1620pps backlog 0b 116p requeues 0 lended: 15 borrowed: 1120258 giants: 0 tokens: -120820900 ctokens: 62782

class htb 1:30 parent 1:1 leaf 30: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 65541960 bytes 1092366 pkt (dropped 0, overlimits 0 requeues 0) rate 732424bit 1526pps backlog 0b 33p requeues 0 lended: 15 borrowed: 1092351 giants: 0 tokens: -86399504 ctokens: 61396

class htb 1:26 parent 1:1 leaf 26: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 65543460 bytes 1092391 pkt (dropped 0, overlimits 0 requeues 0) rate 732504bit 1526pps backlog 0b 9p requeues 0 lended: 15 borrowed: 1092376 giants: 0 tokens: -86277930 ctokens: 63276

class sfq 10:17c parent 10: (dropped 0, overlimits 0 requeues 0) backlog 1080b 18p requeues 0 class sfq 30:61 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 1980b 33p requeues 0 class sfq 28:207 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 6840b 114p requeues 0 class sfq 26:3fa parent 26:

Page 11: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 11

(dropped 0, overlimits 0 requeues 0) backlog 540b 9p requeues 0

La spiegazione che mi sono dato è la seguente:

le classi che compongono il traffico concorrono alla pari al raggiungimento della banda massimama in maniera proporzionale al loro flusso nell’unità di tempo. Raggiunta la banda massima iltraffico in uscita sarà regolato dal QoS che scarterà i pacchetti in eccesso per mantenere il flussocostante e in proporzione scarterà i pacchetti che sono più numerosi.

Page 12: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 12

Traffico con priorità differenti

Eseguiamo una prova di traffico mantenendo lo stesso traffico iniziale - 768Kbps - per ciascunaclasse ma con la priorità diverse. Per la DEFAULT e LPR imponiamo un valore Low e per RDP eSMB un valore High. Ci aspettiamo che le classi a più alta priorità si contendano la maggior partedel traffico in parti uguali. Questo perché avendo una priorità più alta vengono servite prima dalQoS rispetto alle classi a bassa priorità. Il risultato sarà visibile nel throughput delle classi.

I valori ottenuti riportano scostamenti molto piccoli e non apprezzabili da un traffico generato di768Kbps. Le due classi a bassa priorità registrano un rate che oscilla tra 715 Kbps e 720 Kbpsmentre quelle ad alta priorità presentano valori leggermente superiori – 722Kbps - ed un un casopari a quello a bassa priorità – 715 Kbps -.Per rendere evidente il comportamento del QoS aumentiamo per tutte le classi il valore del trafficoprodotto da Ostinato a 868 Kbps ed osserviamo i valori che si ottengono.

Questi valori possono essere compresi se prendiamo in considerazione il dettaglio fornito dalcomando tc. Dove le classi ad alta priorià (prio 0) non presentano nessun packetto “dropped” alcontrario delle classi a bassa priorità (prio 2).

Page 13: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 13

root@ZeroShell ~> tc -s -d class show dev ETH00

class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 210275838 bytes 3497758 pkt (dropped 0, overlimits 0 requeues 0) rate 2982Kbit 6202pps backlog 0b 0p requeues 0 lended: 3497709 borrowed: 0 giants: 0 tokens: -1950 ctokens: -1950

class htb 1:10 parent 1:1 leaf 10: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 48870148 bytes 811370 pkt (dropped 125765, overlimits 0 requeues 0) rate 661984bit 1373pps backlog 0b 122p requeues 0 lended: 12 borrowed: 811358 giants: 0 tokens: -697631587 ctokens: 63113

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 56443515 bytes 937018 pkt (dropped 0, overlimits 0 requeues 0) rate 830320bit 1726pps backlog 0b 1p requeues 0 lended: 11 borrowed: 937007 giants: 0 tokens: -755541332 ctokens: 64156

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 48779340 bytes 812989 pkt (dropped 123263, overlimits 0 requeues 0) rate 661816bit 1379pps backlog 0b 124p requeues 0 lended: 13 borrowed: 812976 giants: 0 tokens: -574702020 ctokens: 64156

class htb 1:26 parent 1:1 leaf 26: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 56182835 bytes 936381 pkt (dropped 0, overlimits 0 requeues 0) rate 827920bit 1725pps backlog 0b 0p requeues 0 lended: 13 borrowed: 936368 giants: 0 tokens: -574641854 ctokens: 64114

class sfq 10:1d5 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7320b 122p requeues 0 class sfq 30:287 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7440b 124p requeues 0 class sfq 26:2a6 parent 26: (dropped 0, overlimits 0 requeues 0) backlog 120b 2p requeues 0

Riportiamo i risultati in formato tabellare

Page 14: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 14

CLASSE Rete int priorità Descrizione pps dropped Rate out(bit)

Rate out Kbit

htb 1:1 3,6 Mbps ROOT 6202 pps 2982 Kbit

htb 1:10 868 Kbps 2 DEFAULT 1373 pps 125765 661984 646,47

htb 1:28 868 Kbps 0 RDP 1726 pps 0 830320 810,86

htb 1:30 868 Kbps 2 LPR 1379 pps 123263 661816 646,3

htb 1:26 868 Kbps 0 SMB 1725 pps 0 827920 808,52

La spiegazione che mi sono dato è la seguente:i pacchetti a bassa priorità entrando – o meglio uscendo - della coda per ultimi vengono“dropped” dal QoS per mantenere il valore della banda pari ai 3 Mbps.

hbt 1:10 p2

htb 1:30 p2

htb 1:26 p0

htb 1:28 p0

0 100 200 300 400 500 600 700 800 900 1000

rate in

rate out

Page 15: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 15

Ora enfatizziamo il traffico ad alta priorità raddoppiandolo e riportando il flusso delle altre due classi a 768 Kbps:

- rate RDP è pari al rate SMB con un valore di 1536Kbps- rate DEFAULT è pari al rate LPR con un valore di 768 Kbps

Il traffico complessivo a monte generato è ora di 4.7Mbps

CLASSE Rate in priorità Descrizione pps dropped Rate out Rate out (Kbit)

htb 1:1 4.7 Mbps ROOT 6108 2982 Kbit

htb 1:10 768 Kbps 2 DEFAULT 44 914149 21776 21,27

htb 1:28 1536 Kbps 0 RDP 2966 25473 1473 Kbit

htb 1:30 768 Kbps 2 LPR 45 912091 21736 21,23

htb 1:26 1536 Kbps 0 SMB 3053 0 1465 Kbit

Page 16: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 16

Osserviamo un valore elevato di pacchetti “dropped” per le classi a bassa priorità e con rate basso mentre un valore di pacchetti “dropped” inferiore per le classi ad alta priorità e con un rate tale da saturare la banda disponibile.

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 640631794 bytes 10585968 pkt (dropped 0, overlimits 0 requeues 0) rate 2982Kbit 6108pps backlog 0b 0p requeues 0 lended: 10585843 borrowed: 0 giants: 0 tokens: -2097 ctokens: -2097

class htb 1:10 parent 1:1 leaf 10: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 104530686 bytes 1735763 pkt (dropped 914149, overlimits 0 requeues 0) rate 21776bit 44pps backlog 0b 127p requeues 0 lended: 31 borrowed: 1735732 giants: 0 tokens: -563569595 ctokens: 62406

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 217901668 bytes 3546881 pkt (dropped 25473, overlimits 0 requeues 0) rate 1473Kbit 2966pps backlog 0b 1p requeues 0 lended: 30 borrowed: 3546851 giants: 0 tokens: -560561611 ctokens: 64009

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0

htb 1:10 p2

htb 1:30 p2

htb 1:28 p0

htb 1:26 p0

0 200 400 600 800 1000 1200 1400 1600 1800

rate in

rate out

Page 17: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 17

Sent 104168520 bytes 1736142 pkt (dropped 912091, overlimits 0 requeues 0) rate 21736bit 45pps backlog 0b 127p requeues 0 lended: 32 borrowed: 1736110 giants: 0 tokens: -522237110 ctokens: 64156

class htb 1:26 parent 1:1 leaf 26: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 214030920 bytes 3567182 pkt (dropped 0, overlimits 0 requeues 0) rate 1465Kbit 3053pps backlog 0b 2p requeues 0 lended: 32 borrowed: 3567150 giants: 0 tokens: -522214810 ctokens: 63776

class sfq 10:394 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 52b 1p requeues 0 class sfq 10:3b8 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0 class sfq 30:48 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 28:213 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 120b 2p requeues 0 class sfq 26:fe parent 26: (dropped 0, overlimits 0 requeues 0) backlog 120b 2p requeues 0 root@ZeroShell ~>

Page 18: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 18

Nelle stesse condizioni di traffico, RDP=SMB 1536Kbps e DEFAULT=LPR a 768 Kbps , cambiamo in “Medium” la priorità della classe SMB e vediamo i risultati nelle statistiche.

CLASSE Rate in priorità

Descrizione

pps dropped Rate Rate in Kbit

htb 1:1 4.7 Mbps ROOT 6535 2982 Kbit

htb 1:10 768 Kbps 2 DEFAULT 8 809658 21320 20,82

htb 1:28 1536 Kbps 0 RDP 3045 352 1529 Kbit

htb 1:30 768 Kbps 2 LPR 43 802277 20664 20,18

htb 1:26 1536Kbps 1 SMB 2939 45455 1411 Kbit

htb 1:10 p2

htb 1:30 p2

htb 1:26 p1

htb 1:28 p0

0 200 400 600 800 1000 1200 1400 1600 1800

rate in

rate out

Page 19: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 19

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 202680303 bytes 3311824 pkt (dropped 0, overlimits 0 requeues 0) rate 2982Kbit 6035pps backlog 0b 0p requeues 0 lended: 3311776 borrowed: 0 giants: 0 tokens: -2432 ctokens: -2432

class htb 1:10 parent 1:1 leaf 10: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 1528717 bytes 18017 pkt (dropped 809658, overlimits 0 requeues 0) rate 21320bit 8pps backlog 0b 126p requeues 0 lended: 12 borrowed: 18005 giants: 0 tokens: -529169833 ctokens: 64156

class htb 1:28 (RDP) parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 103069946 bytes 1659113 pkt (dropped 352, overlimits 0 requeues 0) rate 1529Kbit 3045pps backlog 0b 0p requeues 0 lended: 12 borrowed: 1659101 giants: 0 tokens: -657630442 ctokens: 63128

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 1506780 bytes 25113 pkt (dropped 802277, overlimits 0 requeues 0) rate 20664bit 43pps backlog 0b 127p requeues 0 lended: 12 borrowed: 25101 giants: 0 tokens: -658225845 ctokens: 64156

class htb 1:26 (SMB) parent 1:1 leaf 26: prio 1 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 96574860 bytes 1609581 pkt (dropped 45455, overlimits 0 requeues 0) rate 1411Kbit 2939pps backlog 0b 4p requeues 0 lended: 12 borrowed: 1609569 giants: 0 tokens: -657643140 ctokens: 64156

class sfq 10:117 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 104b 2p requeues 0 class sfq 10:18c parent 10: (dropped 0, overlimits 0 requeues 0) backlog 2894b 3p requeues 0 class sfq 10:1c6 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 4256b 4p requeues 0 class sfq 10:2de parent 10: (dropped 0, overlimits 0 requeues 0) backlog 200b 2p requeues 0 class sfq 10:2f6 parent 10: (dropped 0, overlimits 0 requeues 0)

Page 20: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 20

backlog 8583b 9p requeues 0 class sfq 10:30d parent 10: (dropped 0, overlimits 0 requeues 0) backlog 110b 1p requeues 0 class sfq 10:3fb parent 10: (dropped 0, overlimits 0 requeues 0) backlog 6300b 105p requeues 0 class sfq 30:1a0 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 26:101 parent 26: (dropped 0, overlimits 0 requeues 0) backlog 180b 3p requeues 0 root@ZeroShell ~>

Page 21: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 21

In questo caso la classe RDP con priorità massima mantiene un rate - 1529 Kbps - pari a quellogenerato, poi segue la classe SMB con priorità Medium e con un rate paragonabile a quellogenerato. Infine a seguire le due classi a priorità più bassa che presentano un elevato valore dipacchetti “dropped” che vanno a saturare la banda resa disponibile dalle altre due classi.

L’interpretazione attraverso il numero di pacchetti per secondo (pps) mette in evidenza la relazionepriorità e flusso che attraversa la ETH00

CLASSE Rate in priorità Descrizione pps Rate

htb 1:1 4.7 Mbps ROOT 6035 2982 Kbit

htb 1:10 768 Kbps 2 DEFAUT 8 21320 bit

htb 1:28 1536 Kbps 0 RDP 3045 1529 Kbit

htb 1:30 768 Kbps 2 LPR 43 20664 bit

htb 1:26 1536Kbps 1 SMB 2939 1411 Kbit

Page 22: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 22

Infine ridistribuiamo banda e priorità delle classi come segue:

- aumentiamo il traffico LPR a bassa priorità raddoppiandolo- riduciamo il flusso della classe SMB con priorità Medium- manteniamo invariato il flusso della classe RDP.

CLASSE Rate in input

priorità

Descrizione pps Rate in output Rate out in Kbit

htb 1:1 4.7 Mbps ROOT 6179 2981Kbit

htb 1:10 768 Kbps 2 DEFAUT 795 388448 379,34

htb 1:28 1536 Kbps 0 RDP 3053 1473 Kbit

htb 1:30 1536 Kbps 2 LPR 808 388048 378,95

htb 1:26 768 Kbps 1 SMB 1523 730928 713,8

Il traffico complessivo a monte generato da Ostinato è di 4.7 Mbps

Page 23: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 23

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 3000Kbit ceil 3000Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 326687166 bytes 5354987 pkt (dropped 0, overlimits 0 requeues 0) rate 2981Kbit 6179pps backlog 0b 0p requeues 0 lended: 5354915 borrowed: 0 giants: 0 tokens: -2005 ctokens: -2005

class htb 1:10 (DEFAULT) parent 1:1 leaf 10: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 11787751 bytes 187900 pkt (dropped 1147402, overlimits 0 requeues 0) rate 388448bit 795pps backlog 0b 125p requeues 0 lended: 18 borrowed: 187882 giants: 0 tokens: -29364790 ctokens: 64156

class htb 1:28 (RDP) parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 165419495 bytes 2675755 pkt (dropped 352, overlimits 0 requeues 0) rate 1473Kbit 3053pps backlog 0b 0p requeues 0 lended: 18 borrowed: 2675737 giants: 0 tokens: -282823205 ctokens: 64036

class htb 1:30 (LPR) parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 11764140 bytes 196069 pkt (dropped 1455211, overlimits 0 requeues 0) rate 388048bit 808pps backlog 0b 127p requeues 0 lended: 18 borrowed: 196051 giants: 0

htb 1:10 p2

htb 1:30 p2

htb 1:26 p1

htb 1:28 p0

0 200 400 600 800 1000 1200 1400 1600 1800

rate in

rate out

Page 24: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 24

tokens: -282893839 ctokens: 64156

class htb 1:26 (SMB) parent 1:1 leaf 26: prio 1 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 137715780 bytes 2295263 pkt (dropped 58182, overlimits 0 requeues 0) rate 730928bit 1523pps backlog 0b 1p requeues 0 lended: 18 borrowed: 2295245 giants: 0 tokens: -282829490 ctokens: 64156

class sfq 10:182 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7500b 125p requeues 0 class sfq 30:271 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 26:5f parent 26: (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 root@ZeroShell ~>

Esaminiamo nel dettaglio: La presenza del QoS risulta evidente, a fronte di un traffico doppio della classe LPR –1536 Kbps- la differenza di priorità fa in modo che il flusso SMB uscente sia paragonabile a quello generato daOstinato.

CLASSE Rate in input priorità Descrizione pps Rate in output

htb 1:1 4.7 Mbps ROOT 6179 2981Kbit

htb 1:10 768 Kbps 2 DEFAUT 795 379 Kbit

htb 1:28 1536 Kbps 0 RDP 3053 1473 Kbit

htb 1:30 1536 Kbps 2 LPR 808 379 Kbit

htb 1:26 768 Kbps 1 SMB 1523 714 Kbit

Page 25: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 25

class htb 1:26 (SMB) parent 1:1 leaf 26: prio 1 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 139377120 bytes 2322952 pkt (dropped 0, overlimits 0 requeues 0) rate 732584bit 1526pps backlog 0b 2p requeues 0 lended: 18 borrowed: 2322934 giants: 0 tokens: -91998852 ctokens: 64156

Il flusso del traffico con priorità inferiore LPR risulta minore di quello generato da Ostinato (1536 Kbps) e presenta un numero elevato di pacchetti “dropped”

CLASSE Rate in input priorità Descrizione pps Rate in output

htb 1:1 4.7 Mbps ROOT 6179 2981 Kbit

htb 1:10 768 Kbps 2 DEFAUT 795 379 Kbit

htb 1:28 1536 Kbps 0 RDP 3053 1473 Kbit

htb 1:30 1536 Kbps 2 LPR 808 379 Kbit

htb 1:26 768 Kbps 1 SMB 1523 714 Kbit

class htb 1:30 (LPR) parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 13789140 bytes 229819 pkt (dropped 1485272, overlimits 0 requeues 0) rate 390408bit 813pps backlog 0b 127p requeues 0 lended: 18 borrowed: 229801 giants: 0 tokens: -91524080 ctokens: 63625

Page 26: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 26

Infine la classe RDP con priorità più elevata, prio 0, mantiene il rate generato e non presenta alcun dropped

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 8bit ceil 3000Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 219952466 bytes 3658618 pkt (dropped 0, overlimits 0 requeues 0) rate 1467Kbit 3053pps backlog 0b 0p requeues 0 lended: 24 borrowed: 3658594 giants: 0 tokens: -895400816 ctokens: 63824

Page 27: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 27

Banda garantita

Uno dei valori aggiunti del QoS e anche quello più ricercato è quello di assicurare un valore dibanda garantita ad una determinata classe. Per come può essere configurato il QoS medianteZeroShell e a meno di una mia cattiva interpretazione, la parola garantita è da intendere in questamaniera:

fissando un valore di banda garantita per una classe questa viene ad essere imposta (Assigned) dalQoS quando si verificano le seguenti condizioni:

- Il flusso che attraversa la classe garantita deve essere maggiore o uguale a quella imposta comegarantita

- Le altre classi devono essere a loro volta attraversate da un flusso di traffico maggiore o uguale diquello assegnato e/o garantito

- Il valore complessivo del traffico deve essere maggiore o uguale a quello massimo assegnato allaclasse ROOT

Se queste condizioni vengono tutte rispettate ritroveremo la parola “ garantita” rispondente all’ideache questa ci suggerisce: il traffico per ciascuna classe sarà garantita e pari a quella assegnata.

Quando le condizioni precedenti non sono tutte rispettate e in particolare quando non tutte le classihanno una banda assegnata, la banda in eccesso viene suddivisa tra le altre classi che ne fannorichiesta.

La domanda è come questa banda in eccesso viene suddivisa.

Page 28: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 28

Primo scenario:

Ad una classe assegniamo un valore di banda garantita che è minore di quella che è generataattraverso Ostinato. Generiamo inoltre traffico per un’altra classe che non ha valorizzato ilparametro garantito e il traffico generato, ma tale da saturare la banda massima. Nota: se non vienevalorizzato il parametro di banda garantita, attraverso la GUI di ZeroShell, il comando tc riporta ilvalore di 8bps per il rate “assegnato”. Eseguiamo un test aumentando di volta in volta il trafficogenerato sino ad un valore quattro volte superiore e ne prendiamo i dati. Concentriamo l’attenzionesolo su due classi di traffico.

In tabella riportiamo i valori che compongono il flussi. In particolare il rate in input così comeprodotto da Ostinato e i valori di rate in output come registrato dalle statistiche del comando tc

CLASSEx1

Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 3,3 Mbps ROOT 2700 2684 Kbit 5586 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 2443 Kbit 5088 pps

htb 1:28 250Kbps 0 RDP 2700 500 Kbps 241144 bit 498 pps

htb 1:30

htb 1:26

Page 29: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 29

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 337455586 bytes 3837562 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5586pps backlog 0b 0p requeues 0 lended: 2799137 borrowed: 0 giants: 0 tokens: -2366 ctokens: -2366

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 110864651 bytes 1840211 pkt (dropped 870248, overlimits 0 requeues 0) rate 2443Kbit 5088pps backlog 0b 126p requeues 0 lended: 605 borrowed: 1839606 giants: 0 tokens: -856346033 ctokens: 71269

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 226590935 bytes 1997351 pkt (dropped 3405, overlimits 0 requeues 0) rate 241144bit 498pps backlog 0b 0p requeues 0 lended: 1037820 borrowed: 959531 giants: 0 tokens: 371657 ctokens: 70164

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

htb 1:28

htb 1:10

0 500 1000 1500 2000 2500 3000 3500

generato

assegnato

misurato

Page 30: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 30

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class sfq 10:33e parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0

Page 31: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 31

Ora generiamo per la classe garantita un flusso triplo di quello assegnato CLASSEx3

Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 3,7 Mbps ROOT 2700 2684 Kbit 5589 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 1967 Kbit 4098 pps

htb 1:28 750 Kbps 0 RDP 2700 500 Kbps 716888 bit 1491 pps

htb 1:30

htb 1:26

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 597816547 bytes 8169279 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5589pps backlog 0b 0p requeues 0 lended: 6488777 borrowed: 0 giants: 0

htb 1:28

htb 1:10

0 500 1000 1500 2000 2500 3000 3500

generato

assegnato

misurato

Page 32: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 32

tokens: -1896 ctokens: -1896

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 319165929 bytes 5310570 pkt (dropped 2027128, overlimits 0 requeues 0) rate 1967Kbit 4098pps backlog 0b 126p requeues 0 lended: 618 borrowed: 5309952 giants: 0 tokens: -525946173 ctokens: 71284

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 278650618 bytes 2858709 pkt (dropped 3405, overlimits 0 requeues 0) rate 716888bit 1491pps backlog 0b 2p requeues 0 lended: 1679884 borrowed: 1178825 giants: 0 tokens: -13886 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class sfq 10:394 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 28:2cf parent 28: (dropped 0, overlimits 0 requeues 0) backlog 180b 3p requeues 0

Page 33: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 33

Infine generiamo per la classe garantita un flusso quadruplo di quello assegnato CLASSEx4

Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 4,1 Mbps ROOT 2700 2684 Kbit 3203 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 1647 Kbit 1190 pps

htb 1:28 1024 Kbps 0 RDP 2700 500 Kbps 1037 Kbit 2013 pps

htb 1:30

htb 1:26

htb 1:28

htb 1:10

0 500 1000 1500 2000 2500 3000 3500

generato

assegnato

misurato

Page 34: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 34

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 907775296 bytes 12856869 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 3203pps backlog 0b 0p requeues 0 lended: 10239626 borrowed: 0 giants: 0 tokens: -19409 ctokens: -19409

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 529692534 bytes 8415832 pkt (dropped 4435803, overlimits 0 requeues 0) rate 1647Kbit 1190pps backlog 0b 127p requeues 0 lended: 635 borrowed: 8415197 giants: 0 tokens: -885643417 ctokens: 3969

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 378082762 bytes 4441037 pkt (dropped 22842, overlimits 0 requeues 0) rate 1037Kbit 2013pps backlog 0b 5p requeues 0 lended: 2616608 borrowed: 1824429 giants: 0 tokens: -14519 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class sfq 10:103 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 3600b 60p requeues 0 class sfq 10:2f6 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 52990b 35p requeues 0 class sfq 10:38f parent 10: (dropped 0, overlimits 0 requeues 0) backlog 48448b 32p requeues 0 class sfq 28:366 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 360b 6p requeues 0 root@ZeroShell ~>

Page 35: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 35

Riassumiamo le tre tabelle

CLASSEx1

Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 3,3 Mbps ROOT 2700 2684 Kbit 5586 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 2443 Kbit 5088 pps

htb 1:28 250 Kbps 0 RDP 2700 500 Kbps 235 Kbit 498 pps

CLASSEx2

Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 3,7 Mbps ROOT 2700 2684 Kbit 5589 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 1967 Kbit 4098 pps

htb 1:28 750 Kbps 0 RDP 2700 500 Kbps 700 Kbit 1491 pps

CLASSEx3

Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 4,1 Mbps ROOT 2700 2684 Kbit 3203 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 1647 Kbit 1190 pps

htb 1:28 1024 Kbps 0 RDP 2700 500 Kbps 1037 Kbit 2013 pps

Nel primo caso il traffico entrante è minore di quello garantito e la banda in eccesso, 2700 - (500 – 250), viene messa a disposizione delle altre classi ma solo la DEFAULT ne può usufruire perché la RDP non ha un flusso entrante sufficiente.

Nel secondo caso il traffico è maggiore di quello garantito. La banda che abbiamo a disposizione è quella che si ottiene come differenza tra la massima (ceil) e quella assegnata alla classe RDP:2700 – 500 = 2200questa sarà suddivisa tra le classi in maniera proporzionale al traffico entrante. Mediante unaproporzione troviamo le percentuali di traffico che si possono suddividere le classi a patto cherichiedano la banda disponibile. Per la classe di default le percentuali sono

(3072+250):3072=100:x1 , x1= 100*3072/3322=92%(3072+750):3072=100:x2 , x2= 100*3072/3822=80%(3072+1024):3072=100:x3 , x2= 100*3072/4096=75%

le percentuali per RDP saranno il complemento a 100.

Page 36: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 36

% del flusso ditraffico a disposizione

della classe default

Banda adisposizionedella classe

default

Banda adisposizione della

classe rdp

Banda ingenerata per RDP

Bandaassegnata per RDP

Banda outmisurataper RDP

Banda outmisurata

perDEFAULT

92 2024 176 250 500 235 2443

80 1760 440 750 500 700 1967

75 1650 550 1024 500 1037 1647

Di seguito il grafico che mostra come al crescere del traffico RDP in ingresso il valore del rate di DEFAULT diminuisce.

rate in RDP rate out RDP rate out DEFAULT0

500

1000

1500

2000

2500

3000

Page 37: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 37

La crescita del flusso di una classe (RDP) si ripercuote sull’altra (DEFAULT). Il valore totale del flusso in uscita è quello imposto dalla banda massima.

Assegniamo anche all’altra classe un valore di banda garantita e vediamo i cambiamenti indotti dal QoS.

Alla classe default assegniamo 1024Kbit nelle stesse condizioni di traffico generato precedenti. CLASSE Rate in input priorità Descrizione Ceil Rate banda

garantitaRate misurato

pps

htb 1:1 4,1 Mbps ROOT 2700 2684 Kbit 5585 pps

htb 1:10 3 Mbps 0 DEFAULT 2700 1024 Kbit 1704 Kbit 3548 pps

htb 1:28 1024 Kbps 0 RDP 2700 500 Kbps 957 Kbit 2037 pps

htb 1:28

htb 1:10

0 500 1000 1500 2000 2500 3000 3500

generato

assegnato

misurato

Page 38: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 38

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 86805822 bytes 1443731 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5585pps backlog 0b 0p requeues 0 lended: 628604 borrowed: 0 giants: 0 tokens: -4807 ctokens: -4807

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 1024Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 55064058 bytes 917118 pkt (dropped 624370, overlimits 0 requeues 0) rate 1704Kbit 3548pps backlog 0b 127p requeues 0 lended: 547906 borrowed: 369212 giants: 0 tokens: -6862 ctokens: 70424

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 31741884 bytes 526615 pkt (dropped 0, overlimits 0 requeues 0) rate 979752bit 2037pps backlog 0b 3p requeues 0 lended: 267222 borrowed: 259393 giants: 0 tokens: -14876 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -2147483648 ctokens: 74062

class sfq 10:1fd parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 28:1bc parent 28: (dropped 0, overlimits 0 requeues 0) backlog 240b 4p requeues 0 root@ZeroShell ~>

Page 39: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 39

La banda che abbiamo a disposizione è quella che si ottiene come differenza tra la massima (ceil) e quella assegnata alle classi RDP e DEFAULT : 2700 – (1024+500) = 1176La banda di 1176 Kbit sarà suddivisa tra le classi in maniera proporzionale al traffico entrante. Mediante una proporzione troviamo le percentuali di traffico che si possono suddividere le classi a patto che richiedano questa banda disponibile. Per la default le percentuali sono

(3072+1024):3072=100:x1 , x1= 100*3072/4096=75%

% del flusso ditraffico a disposizione

della classe default

Banda adisposizionedella classe

default

Banda adisposizione della

classe rdp

Banda ingenerata per RDP

Bandaassegnata per RDP

Banda outmisurataper RDP

Banda outmisurata

perDEFAULT

75 882 294 1024 500 957 1704

Il grafico riporta come la banda viene ripartita fra le classi

1024 Kbps

500Kbps

500+294

1024+882

Page 40: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 40

Aggiungiamo un’altra classe con banda garantita: la classe LPR con una banda garantita pari a 500 Kbps

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

pps

htb 1:1 4,1 Mbps ROOT 2700 2684 Kbit 5585 pps

htb 1:10 2 Mbps 0 DEFAULT 2700 1024 Kit 1704 Kbit 3548 pps

htb 1:28 1024 Kbps 0 RDP 2700 500 Kbps 957 Kbit 2037 pps

htb 1:30 1024 Kbps 0 LPR 2700 500 Kbps

htb 1:26 SMB 2700

La banda in eccesso che abbiamo a disposizione è quella che si ottiene come differenza tra la massima (ceil) e quella assegnata alle classi RDP, DEFAULT, LPR : 2700 – (1024+500+500) = 652La banda di 652 Kbit sarà suddivisa tra le classi in maniera proporzionale al traffico entrante. Mediante una proporzione troviamo le percentuali di traffico che si possono suddividere le classi a patto che richiedano la banda disponibile. Per la classe di default la percentuali è

4096:2048=100:x1 , x1= 100*2048/4096 pari al 50% il restante 50% è suddiviso tra RDP e LPR

CLASSE % del flussodi traffico adisposizionedella classe

Banda a disposizione

Banda ingenerata

Bandaassegnata

Banda outmisurata

pps

DEFAULT 50 326 2048 1024 1242 Kbit 2584 pps

RDP 25 163 1024 500 704 Kbit 1497 pps

LPR 25 163 1024 500 704Kbit 1502 pps

Page 41: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 41

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 44191333 bytes 731740 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5583pps backlog 0b 0p requeues 0 lended: 183060 borrowed: 0 giants: 0 tokens: -3941 ctokens: -3941

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 1024Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 20418946 bytes 338752 pkt (dropped 195391, overlimits 0 requeues 0) rate 1242Kbit 2584pps backlog 0b 126p requeues 0 lended: 277697 borrowed: 61055 giants: 0 tokens: -6120 ctokens: 71284

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0

htb 1:28

htb 1:10

htb 1:30

0 500 1000 1500 2000 2500

generato

assegnato

misurato

Page 42: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 42

Sent 11950057 bytes 195949 pkt (dropped 71351, overlimits 0 requeues 0) rate 720736bit 1497pps backlog 0b 122p requeues 0 lended: 135120 borrowed: 60829 giants: 0 tokens: -12730 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 11822220 bytes 197037 pkt (dropped 69798, overlimits 0 requeues 0) rate 721064bit 1502pps backlog 0b 126p requeues 0 lended: 135861 borrowed: 61176 giants: 0 tokens: -14441 ctokens: 71284

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 110 bytes 2 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 2 borrowed: 0 giants: 0 tokens: 1288108648 ctokens: 71515

class sfq 10:2 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0 class sfq 30:180 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0 class sfq 28:2be parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7320b 122p requeues 0

Aggiungiamo l’ultima classe con banda garantita: la classe SMB con una banda garantita pari a 500 Kbps

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

htb 1:1 5,1 Mbps ROOT 2700 2684Kbit

htb 1:10 2 Mbps 0 DEFAULT 2700 1024Kbit 1704Kbit

htb 1:28 1024 Kbps 0 RDP 2700 500 Kbps 957Kbit

htb 1:30 1024 Kbps 0 LPR 2700 500 Kbps

htb 1:26 1024 Kbps 0 SMB 2700 500 Kbps

La banda in eccesso che abbiamo a disposizione è quella che si ottiene come differenza tra la massima (ceil) e quella assegnata alle classi RDP, DEFAULT, LPR e SMB: 2700 – (1024+500+500+500)= 176La banda di 176 Kbit sarà suddivisa tra le classi in maniera proporzionale al traffico entrante. Mediante una proporzione troviamo le percentuali di traffico che si possono suddividere le classi a patto che richiedano la banda disponibile. Per la classe default la percentuale è

Page 43: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 43

5120:2048=100:x1, x1= 100*2048/5120 apri al 40%, il restante 60% è suddiviso tra RDP, LPR e SMB in parti uguali perché hanno priorità uguale

CLASSE % del flussodi traffico adisposizionedella classe

Banda a disposizione

Banda ingenerata

Bandaassegnata

Banda out misurata

DEFAULT 40 70,4 2048 1024 1062 Kbit

RDP 20 35,2 1024 500 528 Kbit

LPR 20 35,2 1024 500 528 Kbit

SMB 20 35,2 1024 500 528 Kbit

htb 1:28

htb 1:10

htb 1:30

htb 1:26

0 500 1000 1500 2000 2500

generato

assegnato

misurato

Page 44: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 44

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 138341682 bytes 2301510 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5580pps backlog 0b 0p requeues 0 lended: 149938 borrowed: 0 giants: 0 tokens: -6255 ctokens: -6255

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 1024Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 54691925 bytes 910712 pkt (dropped 766475, overlimits 0 requeues 0) rate 1062Kbit 2203pps backlog 0b 127p requeues 0 lended: 873213 borrowed: 37499 giants: 0 tokens: -6413 ctokens: 71284

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 27945052 bytes 462386 pkt (dropped 376414, overlimits 0 requeues 0) rate 540504bit 1124pps backlog 0b 126p requeues 0 lended: 424992 borrowed: 37394 giants: 0 tokens: -14905 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 27854220 bytes 464237 pkt (dropped 374200, overlimits 0 requeues 0) rate 540768bit 1127pps backlog 0b 127p requeues 0 lended: 426711 borrowed: 37526 giants: 0 tokens: -14442 ctokens: 71284

class htb 1:26 parent 1:1 leaf 26: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 27854205 bytes 464237 pkt (dropped 374203, overlimits 0 requeues 0) rate 540792bit 1127pps backlog 0b 126p requeues 0 lended: 426711 borrowed: 37526 giants: 0 tokens: -3249 ctokens: 71284

class sfq 10:2de parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 30:150 parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 28:356 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0 class sfq 26:21a parent 26: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 root@ZeroShell ~>

Page 45: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 45

Assegniamo il 100% della banda tra le classi. Il risultato atteso è che ogni classe si attesti sulla sua banda garantita.

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

htb 1:1 5,1 Mbps ROOT 2700 2684 Kbit

htb 1:10 2 Mbps 0 DEFAULT 2700 1024 Kbit 1018 Kbit

htb 1:28 1024 Kbps 0 RDP 2700 800 Kbps 776 Kbit

htb 1:30 1024 Kbps 0 LPR 2700 500 Kbps 485 Kbit

htb 1:26 1024 Kbps 0 SMB 2700 500 Kbps 485 Kbit

Le statistiche confermano la suddivisione del traffico

htb 1:28

htb 1:10

htb 1:30

htb 1:26

0 500 1000 1500 2000 2500

generato

assegnato

misurato

Page 46: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 46

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 46412391 bytes 772336 pkt (dropped 0, overlimits 0 requeues 0) rate 2807Kbit 5838pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: -94556047 ctokens: -94556047

class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 1024Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 16828726 bytes 279844 pkt (dropped 258376, overlimits 0 requeues 0) rate 1018Kbit 2111pps backlog 0b 127p requeues 0 lended: 279844 borrowed: 0 giants: 0 tokens: -6423 ctokens: 71284

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 800000bit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 13147750 bytes 218560 pkt (dropped 50514, overlimits 0 requeues 0) rate 795152bit 1656pps backlog 0b 126p requeues 0 lended: 218560 borrowed: 0 giants: 0 tokens: -8803 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 8217960 bytes 136966 pkt (dropped 132032, overlimits 0 requeues 0) rate 496944bit 1035pps backlog 0b 126p requeues 0 lended: 136966 borrowed: 0 giants: 0 tokens: -14215 ctokens: 71284

class htb 1:26 parent 1:1 leaf 26: prio 0 quantum 1500 rate 500000bit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 8217955 bytes 136966 pkt (dropped 132032, overlimits 0 requeues 0) rate 496952bit 1035pps backlog 0b 127p requeues 0 lended: 136966 borrowed: 0 giants: 0 tokens: -14965 ctokens: 71284

class sfq 10:1fd parent 10: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0 class sfq 30:1ce parent 30: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0 class sfq 28:274 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0 class sfq 26:27b parent 26: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0

Page 47: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 47

Osserviamo che solo in questo caso il valore misurato del flusso delle varie classi di traffico è minore del valore assegnato.

Secondo scenario:

La classe di default è attraversata da un flusso di 1 Mbps e la classe RDP attraversata da una flusso di 3.2 Mb Assegniamo come banda garantita alla classe RDP tutta la banda

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

htb 1:1 4,2 Mbps ROOT 2700 2683 Kbit

htb 1:10 1 Mbps 0 DEFAULT 2700 null 1,05 Kbit

htb 1:28 3 Mbps 0 RDP 2700 3 Mbps 2683 Kbit

verifichiamo in due istanti diversi i valori delle statistiche

Illustration 2: statistiche al tempo t1

Illustration 3: statistiche al tempo t2

Page 48: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 48

root@zeroshell ~> tc -s -d class show dev ETH00 class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 124322511 bytes 1844672 pkt (dropped 7627474, overlimits 0 requeues 0) rate 1184bit 2pps backlog 0b 127p requeues 0 lended: 908 borrowed: 1843764 giants: 0 tokens: -379898365 ctokens: 71284 class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 805610618 bytes 13075354 pkt (dropped 0, overlimits 0 requeues 0) rate 2607Kbit 5430pps backlog 0b 0p requeues 0 lended: 1843764 borrowed: 0 giants: 0 tokens: -77397 ctokens: -77397 class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 3000Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 681288107 bytes 11230682 pkt (dropped 857113, overlimits 0 requeues 0) rate 2606Kbit 5429pps backlog 0b 126p requeues 0 lended: 11230682 borrowed: 0 giants: 0 tokens: 64156 ctokens: -2312 class sfq 10:1b parent 10: (dropped 0, overlimits 0 requeues 0) backlog 4380b 73p requeues 0 class sfq 10:28 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 120b 2p requeues 0 class sfq 10:2a parent 10: (dropped 0, overlimits 0 requeues 0) backlog 94b 1p requeues 0 class sfq 10:44 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 101b 1p requeues 0 class sfq 10:d1 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 1461b 2p requeues 0 class sfq 10:d2 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 101b 1p requeues 0 class sfq 10:e6 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 561b 8p requeues 0 class sfq 10:107 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 735b 7p requeues 0 class sfq 10:181 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 102b 1p requeues 0

Page 49: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 49

class sfq 10:1c3 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 977b 9p requeues 0 class sfq 10:1f7 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 188b 2p requeues 0 class sfq 10:276 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 498b 1p requeues 0 class sfq 10:2b5 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 90b 1p requeues 0 class sfq 10:2c3 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 440b 8p requeues 0 class sfq 10:2e5 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 364b 7p requeues 0 class sfq 10:384 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 53b 1p requeues 0 class sfq 10:3d9 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 62b 1p requeues 0 class sfq 10:3e3 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 97b 1p requeues 0 class sfq 28:18f parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7560b 126p requeues 0

I risultati confermano come il QoS assegni tutta la banda alla classe RDP e consente alla default il solo traffico di “sopravvivenza” anche in presenza di un suo flusso consistente in ingresso. Rendiamo pari i due flussi in ingresso e vediamo che la proporzionalità ora non viene più ad essere rispettata nel traffico di uscita e proprio per merito del QoS.

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

htb 1:1 6,6 Mbps ROOT 2700 2678 Kbit

htb 1:10 3 Mbps 0 DEFAULT 2700 null 272

htb 1:28 3 Mbps 0 RDP 2700 3 Mbps 2678 Kbit

Page 50: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 50

root@zeroshell ~> tc -s -d class show dev ETH00 class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 123150107 bytes 1842383 pkt (dropped 6415930, overlimits 0 requeues 0) rate 272bit 1pps backlog 0b 127p requeues 0 lended: 899 borrowed: 1841484 giants: 0 tokens: -364833728 ctokens: 71284 class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 726358742 bytes 11774797 pkt (dropped 0, overlimits 0 requeues 0) rate 2678Kbit 5577pps backlog 0b 0p requeues 0 lended: 1841484 borrowed: 0 giants: 0 tokens: -77427 ctokens: -77427 class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 3000Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 603208635 bytes 9932414 pkt (dropped 738993, overlimits 0 requeues 0) rate 2678Kbit 5577pps backlog 0b 124p requeues 0 lended: 9932414 borrowed: 0 giants: 0 tokens: 64156 ctokens: -2386 class sfq 10:3b parent 10: (dropped 0, overlimits 0 requeues 0) backlog 135b 3p requeues 0 class sfq 10:84 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 108b 2p requeues 0 class sfq 10:d1 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 9813b 8p requeues 0 class sfq 10:143 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 1144b 22p requeues 0 class sfq 10:24e parent 10: (dropped 0, overlimits 0 requeues 0) backlog 430b 5p requeues 0 class sfq 10:29a parent 10: (dropped 0, overlimits 0 requeues 0) backlog 86b 1p requeues 0 class sfq 10:318 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 9813b 8p requeues 0 class sfq 10:347 parent 10: (dropped 0, overlimits 0 requeues 0) backlog 360b 6p requeues 0 class sfq 10:39a parent 10: (dropped 0, overlimits 0 requeues 0) backlog 86b 1p requeues 0 class sfq 10:3eb parent 10:

Page 51: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 51

(dropped 0, overlimits 0 requeues 0) backlog 4260b 71p requeues 0 class sfq 28:e parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7380b 123p requeues 0

Anche in questo caso a fronte di un traffico in ingresso dei due flussi uguali solo il traffico “garantito” vien ritrovato in uscita.

I grafici riportano i valori delle due tabelle precedenti.

hbt 1:10 hbt 1:280

500

1000

1500

2000

2500

3000

3500

rate in

rate assegnato

rate out

Page 52: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 52

hbt 1:10 hbt 1:280

500

1000

1500

2000

2500

3000

3500

rate in

rate assegnato

rate out

Page 53: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 53

Banda garantita e priorità

Il cambio di priorità ad una classe ci dà la possibilità di assegnare attraverso il QoS la banda ineccesso seguendo questo criterio. Ci è utile nel momento in cui vogliamo privilegiare una classe chenon ha abbastanza traffico in ingresso e che quindi beneficerebbe della banda in eccesso soloproporzionalmente al suo traffico in ingresso.

La prova la facciamo nelle condizioni riportate in tabella

Ripetiamo le prove di traffico e riassumiamo i risultati nelle tabelle seguenti.

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

htb 1:1 3,6 Mbps ROOT 2700 2684 Kbit

htb 1:10 1Mbps 2 DEFAULT 2700 1000 Kbps 959 Kbit

htb 1:28 500 Kbps 2 RDP 2700 100 Kbps 402 Kbit

htb 1:30 1Mbps 2 LPR 2700 1000 Kbps 954 Kbit

htb 1:26 1Mbps 2 SMB 2700 null 305 Kbit

Page 54: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 54

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 54191891 bytes 898673 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5572pps backlog 0b 0p requeues 0 lended: 209817 borrowed: 0 giants: 0 tokens: -54506 ctokens: -54506

class htb 1:10 parent 1:1 leaf 10: prio 2 quantum 1500 rate 1000Kbit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 19784962 bytes 328169 pkt (dropped 0, overlimits 0 requeues 0) rate 982384bit 2039pps backlog 0b 0p requeues 0 lended: 327884 borrowed: 285 giants: 0 tokens: 186623 ctokens: 70130

class htb 1:28 parent 1:1 leaf 28: prio 2 quantum 1500 rate 100000bit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 8441579 bytes 137748 pkt (dropped 22530, overlimits 0 requeues 0) rate 412136bit 847pps backlog 0b 122p requeues 0 lended: 33367 borrowed: 104381 giants: 0 tokens: -41295 ctokens: 19108

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 1000Kbit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 19655940 bytes 327599 pkt (dropped 0, overlimits 0 requeues 0) rate 976760bit 2035pps backlog 0b 0p requeues 0

htb 1:28

htb 1:10

htb 1:30

htb 1:26

0 200 400 600 800 1000 1200

generato

assegnato

misurato

Page 55: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 55

lended: 327599 borrowed: 0 giants: 0 tokens: 186157 ctokens: 69663

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 6309410 bytes 105157 pkt (dropped 222318, overlimits 0 requeues 0) rate 312560bit 651pps backlog 0b 127p requeues 0 lended: 6 borrowed: 105151 giants: 0 tokens: -39800597 ctokens: 71264

class sfq 28:118 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 7320b 122p requeues 0 class sfq 26:391 parent 26: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0

Page 56: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 56

Ripetiamo la prova cambiando la priorità della sola classe RDP

CLASSE Rate in input priorità Descrizione Ceil Rate banda garantita

Rate misurato

htb 1:1 3,6 Mbps ROOT 2700 2684 Kbit

htb 1:10 1Mbps 2 DEFAULT 2700 1000 Kbps 961 Kbit

htb 1:28 500 Kbps 0 RDP 2700 100 Kbps 468 Kbit

htb 1:30 1Mbps 2 LPR 2700 1000 Kbit 954 Kbit

htb 1:26 1Mbps 2 SMB 2700 null 238 Kbit

htb 1:28 p0

htb 1:10 p2

htb 1:30 p2

htb 1:26 p2

0 200 400 600 800 1000 1200

Page 57: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 57

root@ZeroShell ~> tc -s -d class show dev ETH00class htb 1:1 root rate 2700Kbit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 7 Sent 76074844 bytes 1264389 pkt (dropped 0, overlimits 0 requeues 0) rate 2684Kbit 5575pps backlog 0b 0p requeues 0 lended: 294791 borrowed: 0 giants: 0 tokens: -6739 ctokens: -6739

class htb 1:10 parent 1:1 leaf 10: prio 2 quantum 1500 rate 1000Kbit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 27788273 bytes 461809 pkt (dropped 0, overlimits 0 requeues 0) rate 983992bit 2038pps backlog 0b 0p requeues 0 lended: 461575 borrowed: 234 giants: 0 tokens: 184355 ctokens: 69794

class htb 1:28 parent 1:1 leaf 28: prio 0 quantum 1500 rate 100000bit ceil 2700Kbit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 13671981 bytes 225670 pkt (dropped 0, overlimits 0 requeues 0) rate 479592bit 995pps backlog 0b 2p requeues 0 lended: 46580 borrowed: 179090 giants: 0 tokens: -58795 ctokens: 71284

class htb 1:30 parent 1:1 leaf 30: prio 2 quantum 1500 rate 1000Kbit ceil 2700Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 27686160 bytes 461436 pkt (dropped 0, overlimits 0 requeues 0) rate 976784bit 2035pps backlog 0b 0p requeues 0 lended: 461436 borrowed: 0 giants: 0 tokens: 186033 ctokens: 69539

class htb 1:26 parent 1:1 leaf 26: prio 2 quantum 1500 rate 8bit ceil 2700Kbit burst 4096Mb/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b overhead 0b level 0 Sent 6928430 bytes 115474 pkt (dropped 345836, overlimits 0 requeues 0) rate 243472bit 507pps backlog 0b 127p requeues 0 lended: 7 borrowed: 115467 giants: 0 tokens: -893140847 ctokens: 71284

class sfq 28:60 parent 28: (dropped 0, overlimits 0 requeues 0) backlog 60b 1p requeues 0 class sfq 26:8e parent 26: (dropped 0, overlimits 0 requeues 0) backlog 7620b 127p requeues 0

Page 58: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 58

Il cambiamento di priorità implica un aumento di più 60 Kbit di traffico RDP grazie all’eccesso di banda ripartito. In percentuale l’aumento di banda a seguito della priorità maggiore è del 16,4%

htb 1:28 p2 htb 1:28 p00

100

200

300

400

500

600

rate in

rate assigned

rate out

Page 59: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 59

Banda garantita e banda massima

La possibilità di assegnare una banda massima all’interno del QoS è utile nelle condizioni in cuivogliamo che una determinata classe non abbia la possibilità di “divorare” tutta la banda disponibilenon assegnata ad altre classi. In questo modo la crescita di una classe è limitata nell’uso della bandanon assegnata o non utilizzata dalle altre classi .

Un caso particolare

Abbiamo la necessità di “tutelare” il traffico di un’applicazione RDP che ha un traffico incapsulatoin un tunnel vpn. Assumiamo il traffico suddiviso nelle classi default ed rdp. Inoltre la quantità dibanda richiesta dall’applicazione in rdp è molto minore di quella richiesta dalla classe default.

Le classi si contendono la banda disponibile sino a saturare la banda a disposizione. Il QoS puòintervenire in questa situazione attraverso il cambio della priorità tra le due classi. Per assicurare altraffico vpn una “riserva” di banda tale da assicurare un canale privilegiato dobbiamo imporre allaclasse di default un limite massimo. In questo modo anche in assenza di traffico vpn la banda usatadalla default non potrà superare il limite imposto. Potremmo stimare questo limite da asseganre inpercentuale alla banda massima. Per esempio fissando al 80% della banda globale massima il valoredella massima banda consentita alla classe di default. In questo modo abbiamo a disposizione per laclasse rdp un valore di banda disponibile che non potrà mai essere minore di quella lasciata liberadalla classe di default. Le condizioni migliorano quanto più si riesce a categorizzare il traffico conle classi. Il vantaggio di avere più classi di traffico è la selettività: il poter decidere su qualetipologia di traffico effettuare il taglio di banda.

Il questo scenario come gestire la banda garantita ?

internet dc

client

default vpn

Page 60: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 60

Assegnare una banda garantita alla classe vpn non ha un grande vantaggio se non nella previsionedi una saturazione della banda in cui il traffico viene imposto dal QoS. Poichè il traffico rdp è digran lunga inferiore al resto del traffico di default e l’assegnare una grande banda al vpn non haeffetto. Di questa banda assegnata la classe VPN ne richiederà solo una parte e la non utilizzataverrà comunque ripartita anche alla default. La configurazione ottimale è quella che prevede unlimite nella banda massima della default e assegnare alla VPN una banda pari alla massimapossibile, in modo che in caso di saturazione abbiamo un valore imposto dal QoS. Più il trafficosarà “categorizzato” attraverso le classi di traffico, più sarà possibile effettuare un taglio selettivodella banda a vantaggio della categoria di traffico da privilegiare.

Page 61: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 61

QoS e traffico di uploadTutti gli esempi precedenti si riferiscono ad una configurazione in cui il traffico su cui è abilitato ilQoS è l’interfaccia EH00 di download. La configurazione può essere applicata anche ad un trafficodi upload attraverso una configurazione di ZeroShell in bridge tra ETH00 ed ETH01,configurazione che rimando alla documentazione di Fulvio Ricciardi. Valgono le stesseconsiderazioni fatte per il traffico di download.

Page 62: Analisi del QoS di ZeroShell mediante il generatore …Il QoS di ZeroShell di Renato Morano ®GPL3 1 Analisi del QoS di ZeroShell mediante il generatore di traffico Ostinato Premessa

Il QoS di ZeroShell di Renato Morano ®GPL3 62

Table of ContentsAnalisi del QoS di ZeroShell mediante il generatore di traffico Ostinato............................................1

Premessa.......................................................................................................................................... 1Traffico con stessa priorità...............................................................................................................6Traffico con la stessa priorità ma con valori di flusso differenti..................................................... 9Traffico con priorità differenti....................................................................................................... 12Banda garantita.............................................................................................................................. 27Banda garantita e priorità...............................................................................................................53Banda garantita e banda massima..................................................................................................59QoS e traffico di upload.................................................................................................................61


Recommended