Konfigurácia QoS na Cisco Small Business prepínačoch (switchoch)

Peter Filo

Senior Systems Engineer

peter.filo@alef.com

Kvalita služby (Quality of Service - QoS) je schopnosť siete poskytovať lepšie služby vybraným používateľom a aplikáciám na úkor iných používateľov a aplikácií. Zároveň umožňuje mať pod kontrolou zahadzovanie menej prioritných dát pred viac prioritnými v tých častiach siete, kde dochádza k agregácii a preťaženiu.

Väčšina LAN prepínačov disponuje podporou pre QoS, rozdiel medzi výrobcami a produktovými radami je však v implementácii. Inak sa bude správať v sieti prepínač, ktorý má podporu pre QoS nejako prednastavenú a zapnutú a inak prepínač, ktorý QoS síce podporuje, ale túto vlastnosť má štandardne vypnutú.

V tomto článku vysvetlím aké možnosti konfigurácie QoS sú podporované na Cisco SMB prepínačoch Sx300, pričom popísané princípy a pravidlá sú spoločné aj pre Sx500, SG350X a SG550X prepínače.
Produktový rad Sx300 podporuje tri možnosti QoS konfigurácie:

  • Disabled mode
  • Basic mode
  • Advanced mode

Výber módu je globálny parameter a ovplyvňuje správanie celého prepínača.

Disabled mode

V tomto móde nedochádza k prioritizácii vybraných dátových tokov na úkor ostatných, všetky dátové toky sú z pohľadu prepínača rovnocenné a na každom výstupnom switchporte sú všetky pakety mapované do jedného spoločného výstupného radu (queue) per switchport, z ktorého sú pakety vyberané a posielané ďalej do siete FIFO (First-In-First-Out) spôsobom.

Konfigurácia tohto módu je jednoduchá:

Switch(config)#no qos
Switch#show qos
Qos: disabled

Basic mode

Basic mode štandardne funguje na princípe dôvery, kedy na vstupných switchportoch prepínač číta a dôveruje nastaveným QoS hodnotám v prichádzajúcich paketoch (buď hodnote DSCP v IP hlavičke alebo hodnote CoS vo VLAN tagu).

Na základe týchto vstupných QoS hodnôt prepínač zaraďuje pakety na výstupných switchportoch do štyroch radov (queues), z ktorých sú pakety vyberané a posielané ďalej buď pomocou PQ (Priority Queueing) alebo WRR (Weighted Round Robin) mechanizmu.

Mapovanie QoS hodnôt do výstupných radov (queues) je prednastavené nasledovne:

Output Queue 1 2 3 4
Hodnota CoS 0,1 2 3,4 5,6,7
Hodnota DSCP 0-15 16-23 24-39, 48-63 40-47

Mapovanie sa dá skontrolovať štandardne cez WebGui rozhranie, v prípade DSCP aj pomocou CLI rozhrania:

Switch#show qos map dscp-queue 
Dscp-queue map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
-------------------------------------
0 : 01 01 01 01 01 01 01 01 01 01
1 : 01 01 01 01 01 01 02 02 02 02
2 : 02 02 02 02 03 03 03 03 03 03
3 : 03 03 03 03 03 03 03 03 03 03
4 : 04 04 04 04 04 04 04 04 03 03
5 : 03 03 03 03 03 03 03 03 03 03
6 : 03 03 03 03


Cisco SMB prepínače majú štandardne zapnutý práve tento mód a dôverujú DSCP hodnotám v IP hlavičke, čo sa dá skontrolovať nasledovne:

	Switch#show qos
	Qos: Basic mode
	Basic trust: dscp

a prípadne nastaviť pomocou:

	Switch(config)#qos basic
	Switch(config)#qos trust dscp

Konfiguračne je možné nastaviť akým QoS hodnotám prepínač dôveruje ( tzv. basic trust) a k dispozícii sú tri možnosti:

CoS/802.1p – prichádzajúce ethernetové rámce sú mapované do výstupných radov na základe CoS hodnôt v 802.1Q hlavičke. V prípade že na vstupný port dorazí ethernetový rámec bez VLAN hlavičky (napríklad rámec v tzv. default VLAN), tak sa na neho uplatní tzv. default hodnota CoS, ktorá sa konfiguruje zvlášť pre každý switchport a štandardne je prednastavená na nulovú hodnotu.

	Switch#show qos interface FastEthernet 1
	Ethernet fa1
	Default CoS: 0
	Trust mode: enable 

DSCP – prichádzajúce pakety sú zaraďované do výstupných radov na základe DSCP hodnoty v IP hlavičke. V prípade že na vstupný switchport dorazí iný paket ako IP, tak sa na neho uplatní default hodnota CoS, na základe ktorej je paket zatriedený do výstupného radu.

CoS/802.1p – DSCP – ide o kombináciu oboch možností, v prípade že na vstupný switchport dorazí IP paket tak je zatriedený podľa nastavenej hodnoty DSCP, ak na vstupný port dorazí nejaký iný paket ako IP, tak je zatriedený na základe CoS hodnoty vo VLAN hlavičke. Ak je ethernetový rámec bez VLAN hlavičky, tak sa na neho uplatní default hodnota CoS.

Zmenu default CoS je možné zmeniť v konfiguračnom móde switchportu:

	Switch(config-if)#qos cos 1

Basic mode je možné nastaviť aj tak, aby nedôveroval QoS hodnotám v prichádzajúcich paketoch. Vypnutie dôvery sa môže vykonať v konfigurácii switchportu:

	Switch(config-if)#no qos trust

V takomto prípade sa na všetky prichádzajúce pakety cez tento switchport bude uplatňovať default hodnota CoS, podľa ktorej budú pakety zaradené do výstupného radu.

Tak isto existuje možnosť prepisovať DSCP hodnoty v prichádzajúcich IP paketoch. Táto možnosť sa zapína globálne pre celý switch a prepisovanie sa deje pomocou tzv. DSCP Override Table, ktorá je len jedna a je spoločná pre všetky switchporty.

Príklad zápisu do DSCP Override Table:

	Switch(conf)#qos dscp-mutation
	Switch(conf)#qos map dscp-mutation 20 to 10

DSCP Override Table sa dá zobraziť pomocou príkazu:

Switch#show qos map dscp-mutation
Dscp-mutation map:
	d1 : d2 0  1  2  3  4  5  6  7  8  9
	-------------------------------------
	0 :   00 01 02 03 04 05 06 07 08 09
	1 :   10 11 12 13 14 15 16 17 18 19
	2 :   10 21 22 23 24 25 26 27 28 29
	3 :   30 31 32 33 34 35 36 37 38 39
	4 :   40 41 42 43 44 45 26 47 48 49
	5 :   50 51 52 53 54 55 56 57 58 59
	6 :   60 61 62 63

Pakety zo štyroch výstupných radov (queues) je možné vyberať pomocou PQ (Priority Queueing) alebo WRR (Weighted Round Robin) mechanizmu. V prípade WRR ide o tzv. Shaped Deficit WRR mechanizmus. Výber PQ alebo WRR mechanizmu má globálny význam a je spoločný pre všetky switchporty. Prednastaveným mechanizmom je PQ, pričom najvyššiu prioritu ma queue 4 a najnižšiu queue 1.

Ak sa použije WRR mechanizmus, tak jednotlivé rady majú pridelené váhy nasledovne:
Queue1 – 1/15 šírky pásma výstupného switchportu
Queue2 – 2/15 šírky pásma
Queue3 – 4/15 šírky pásma
Queue4 – 8/15 šírky pásma

Hodnotu váh si možno predstaviť ako množstvo paketov, ktoré viem vybrať z každého radu v jednom cykle, teda z queue1 jeden paket, z queue2 dva pakety, z queue3 štyri pakety a z queue4 8 paketov. Hodnoty váh je samozrejme možné konfiguračne zmeniť, tak isto je možné kombinovať PQ a WRR mechanizmus pre jednotlivé rady.

Množstvo PQ výstupných radov sa mení nasledovne:

	Switch(config)# priority-queue out num-of-queues 1

Váhy WRR radom sa dajú zmeniť nasledovne:

	Switch(config)# wrr-queue bandwidth 1 1 1

Príklad PQ na výstupnom switchporte:

	Switch#show qos interface queuing FastEthernet 24
	Ethernet fa24
	wrr bandwidth weights and EF priority:
	qid-weights      Ef - Priority
	1 - N/A          ena- 1
	2 - N/A          ena- 2
	3 - N/A          ena- 3
	4 - N/A          ena- 4

Príklad WRR na výstupnom switchporte:

	Switch#show qos interface queuing FastEthernet 24
	Ethernet fa24
	wrr bandwidth weights and EF priority:	
	qid-weights      Ef - Priority
	1 - 1            dis- N/A
	2 - 2            dis- N/A
	3 - 4            dis- N/A
	4 - 8            dis- N/A

Príklad kombinácie PQ (queue 4) a WRR na výstupnom switchporte:

	Switch#show qos interface queuing  FastEthernet 24
	Ethernet fa24
	wrr bandwidth weights and EF priority:
	qid-weights      Ef - Priority
	1 - 1            dis- N/A
	2 - 2            dis- N/A
	3 - 4            dis- N/A
	4 - N/A       	ena- 4

Advanced Mode
Advanced mode umožňuje oproti Basic mode na vstupnom switchporte nakonfigurovať navyše policy-mapu, pomocou ktorej sa dá nastaviť maximálna šírka pásma pre vybrané dátové toky. Pomocou policy-mapy sa dajú taktiež filtrovať prichádzajúce dátové toky a zároveň je policy-mapu možné využiť na nastavovanie DSCP/CoS hodnôt v prichádzajúcich paketoch. Takto nastavené QoS hodnoty sa následne používajú na zatriedenie paketov do výstupných radov.

V Advanced mode existuje tak isto možnosť globálne vypnúť dôveru v QoS hodnoty v prichádzajúcich paketoch. Aký dopad majú takéto konfiguračné kombinácie na dátové toky a ich zaraďovanie do výstupných radov bude vysvetlené na nasledovných príkladoch:

Zapnutie Advanced mode:

	Switch(config)#qos advanced
	!
	Switch#show qos
	Qos: Advanced mode
	Advanced mode trust type: dscp
	Advanced mode ports state: Not trusted
	

V globálnom “Not trusted” stave sú všetky pakety na vstupných switchportoch mapované na výstupných switchportoch do queue 1 a neuplatňuje sa na default CoS ako je tomu v Basic Mode. Toto správanie je možné zmeniť nakonfigurovaním policy-mapy na vstupný switchport, pomocou ktorej sa dajú nastavovať DSCP/CoS hodnoty v prichádzajúcich paketoch.

V Advanced mode je štandardne prednastavený “Not trusted” stav. Zapnutie dôvery v QoS hodnoty v prichádzajúcich paketoch je možne vykonať nasledovne:

	Switch(config)#qos advanced ports-trusted
	Switch(config)#qos advanced-mode trust cos-dscp
	!
	Switch#show qos
	Qos: Advanced mode
	Advanced mode trust type: cos-dscp
	Advanced mode ports state: Trusted

V globálnom “Trusted” stave sú všetky pakety na vstupných switchportoch mapované na výstupných switchportoch do queue 1 až 4 na základe DCSP/CoS hodnoty v prichádzajúcich paketoch. Toto správanie je možné zmeniť nakonfigurovaním policy-mapy na vstupný switchport, pomocou ktorej sa dajú nastavovať a meniť DSCP/CoS hodnoty v prichádzajúcich paketoch.

Nasleduje zopár príkladov čo dokáže spôsobiť policy-mapa na vstupnom switchporte:

	!
	Switch#show qos
	Qos: Advanced mode
	Advanced mode trust type: cos-dscp
	Advanced mode ports state: Not trusted
	!
	!
	ip access-list extended test
	permit tcp any any any 1521 ace-priority 20
	!
	class-map class match-any
	match access-group test
	!
	policy-map policy
	class class
	!
	interface fastethernet12
	service-policy input policy
	!
	!
	Switch#show qos interface FastEthernet 12
	Ethernet fa12
	Default CoS: 0
	Trust mode: enable
	Policy applied: policy
	Default ACE action: deny-all
	!

Takáto konfigurácia odfiltruje a zahodí na vstupnom switchporte Fa12 všetky dátové toky okrem dátového toku popísaného pomocou access-listu test a na výstupnom porte bude tento dátový tok mapovaný do queue 1.

	!
	Switch#show qos
	Qos: Advanced mode
	Advanced mode trust type: cos-dscp
	Advanced mode ports state: Not trusted
	!
	!
	ip access-list extended test
	permit tcp any any any 1521 ace-priority 20
	!
	class-map class match-any
	match access-group test
	!
	policy-map policy
	class class
	!
	interface fastethernet12
	service-policy input policy default-action permit-any
	!
	!
	Switch#show qos interface FastEthernet 12
	Ethernet fa12
	Default CoS: 0
	Trust mode: enable
	Policy applied: policy
	Default ACE action: forward-all
	!

Takáto konfigurácia prepustí všetky dátové toky prichádzajúce do switchportu Fa12 a na výstupnom porte budú dátové toky mapované do queue 1.

	!
	Switch#show qos
	Qos: Advanced mode
	Advanced mode trust type: cos-dscp
	Advanced mode ports state: Not trusted
	!
	!
	ip access-list extended test
	permit tcp any any any 1521 ace-priority 20
	!
	class-map class match-any
	match access-group test
	!
	policy-map policy
	class class
	trust
	!
	interface fastethernet12
	service-policy input policy
	!
	!
	Switch#show qos interface FastEthernet 12
	Ethernet fa12
	Default CoS: 0
	Trust mode: enable
	Policy applied: policy
	Default ACE action: deny-all
	!

Takáto konfigurácia poskytne Basic Mode funkcionalitu. Prepínač dôveruje na vstupnom switchporte Fa12 prichádzajúcim QoS hodnotám v dátovom toku ktorý je popísaný access-listom test a na základe týchto hodnôt vyberá výstupný rad. Všetky ostatné pakety nepopísané v access-liste test sú zahodené.

	!
	Switch#show qos
	Qos: Advanced mode
	Advanced mode trust type: cos-dscp
	Advanced mode ports state: Not trusted
	!
	qos map policed-dscp 26 to 24
	!
	ip access-list extended test
	permit tcp any any any 1521 ace-priority 20
	!
	class-map class match-any
	match access-group test
	!
	policy-map policy
	class class
	set dscp 26
	police 100 12500 exceed-action policed-dscp-transmit
	!
	interface fastethernet12
	service-policy input policy
	!
	!
	Switch#show qos interface FastEthernet 12
	Ethernet fa12
	Default CoS: 0
	Trust mode: enable
	Policy applied: policy
	Default ACE action: deny-all
	!

Všetkým paketom, ktoré sú popísané pomocou access-listu test sa bude nastavovať hodnota DSCP 26. Pokiaľ dátový tok presiahne rýchlosť 100kbps, tak všetky pakety budú označené hodnotou DSCP 24. Všetky ostatné pakety prichádzajúce na port Fa12 a nie sú popísané v access-liste test budú zahodené.

Hodnota DSCP ktorá sa bude nastavovať po prekročení 100kbps limitu nastaveného policerom (v tomto prípade DSCP24), musí byť mapovaná do toho istého výstupného radu (queue) ako predchádzajúca hodnota (DSCP 26).

Mapovacia tabuľka pomocou ktorej sa menia hodnoty DSCP po prekročení limitu sa dá zobraziť pomocou príkazu:

	
	Switch#show qos map policed-dscp

Táto tabuľka je iba jedna a je spoločná pre všetky switchporty, na ktorých mám povolené premapovanie DSCP hodnôt po prekročení nastavených limitov.

Okrem rôznych QoS modelov popísaných vyššie podporujú SMB prepínače aj riadenie šírky pásma, nastavovanie maximálnej šírky pásma ako v prichádzajúcom, tak aj v odchádzajúcom smere:
- Ingress Rate Limit
- Egress Shaping Rate

Nastavovanie limitov na maximálnu šírku pásma vyžaduje mať zapnutý QoS Basic mode alebo Advanced mode.

Ingress Rate Limit

Ingress Rate Limit je maximálne množstvo dát vyjadrené v bitoch za sekundu, ktoré vie prepínač prijať na vstupnom switchporte. Všetky dáta čo prichádzajú na vstupný switchport a prekračujú tento limit sú zahodené. Ingress Rate Limit sa aplikuje na switchport alebo na port-channel interface (LAG).

Príklad konfigurácie:

	!
	interface fastethernet12
	rate-limit 100 3125
	!
	Switch#show qos interface rate-limit FastEthernet 12
	   Port    rate-limit [kbps] Burst [Bytes]
	---------- ----------------- -------------
	   fa12           100            3125
	!

Všetkým dátovým tokom ktoré prichádzajú na switchport Fa12 nastavujem spoločný maximálny rate- limit na 100kbps.

Egress Shaping Rate
Egress Shaping Rate určuje maximálne množstvo dát v bitoch za sekundu ktoré prepínač dokáže odvysielať za časový interval. Všetky dáta nad tento limit sa ukladajú do výstupných radov (queues).

Príklad konfigurácie:

	!
	interface fastethernet24
	traffic-shape 64
	!
	Switch#show qos interface shapers FastEthernet 24
	Ethernet fa24
	Port shaper: enable
	Committed rate: 64 Kbps
	Committed burst: 128000 byte

                             Target            Target
	qid      Status      Committed         Committed
                             Rate [Kbps]       Burst [bytes]
	1        disable     N/A               N/A
	2        disable     N/A               N/A
	3        disable     N/A               N/A
	4        disable     N/A               N/A
	!

Egress Shaping Rate je tak isto možné aplikovať nielen na odchádzajúci switchport, ale ja na výstupný rad. Tak isto je možné nakonfigurovať kombináciu maximálnej šírky pásma per queue a per switchport.

Príklad konfigurácie:

	!
	interface fastethernet4
	traffic-shape 1000
	traffic-shape queue 3 256
	traffic-shape queue 4 64
	!
	Switch#show qos interface shapers FastEthernet 4
	Ethernet fa4
	Port shaper: enable
	Committed rate: 1000 Kbps
	Committed burst: 128000 byte

	                     Target            Target
	qid      Status      Committed         Committed
                             Rate [Kbps]       Burst [bytes]
	1        disable     N/A               N/A
	2        disable     N/A               N/A
	3        enable      256               128000
	4        enable      64                128000
	!

Cisco pri SMB prepínačoch neuvádza veľkosť alokovanej pamäte pre výstupné rady. Tak isto nie je zdokumentované ako sa dynamicky mení hĺbka jednotlivých výstupných radov a prispôsobuje sa meniacim sa požiadavkám. To čo výrobca uvádza je len celková veľkosť vyrovnávacej pamäte (buffer) pre potreby QoS. Jej veľkosť je závislá od konkrétneho produktového radu a modelu:

Model name Packet Buffer Size
all SX300 24 switchports or less 8 MB
all SX300 48 switchports or higher 2 x 8 MB
SG350XG-24T, SG35XG-24F 16 MB
SG350XG-48T 32 MB
SG350XG-2F10 8 MB
all SX500 24 switchports or less 8 MB
all SX500 48 switchports or higher 2 x 8 MB
all SX500X 24 switchports 12 MB
all SX500X 48 switchports 2 x 12 MB
SG500XG-8F8T 16 MB
SG550XG-8F8T, SG550XG-24F,SG550XG-24T 16 MB
SG350XG-48T 32 MB

Napriek tomu že Cisco Small Business prepínače sú určené pre potreby menších firiem a domácnosti, z pohľadu implementácie QoS sa podporovanými vlastnosťami bez problémov vyrovnajú aj vyšším produktovým radám. Skúsenému sieťovému administrátorovi poskytujú dostatok nástrojov aby mal kvalitu služieb v LAN sieťach pod kontrolou

Viac info o Cisco SMB prepínačoch sa dá nájsť napríklad tu:

Cisco Small Business 300 Series Managed Switches (ENG)