====== Voice QoS ======
* **Delay** - zpoždění paketu při průchodu sítí
* **Jitter** - proměnlivé zpoždění paketů, pakety přicházejí s různým zpožděním (fázové chvění)
* **Loss** - ztráta paketů v síti
Typy QoS:
* Best-effort
* Integrated Services model
* Differentiated services model
QoS musí být implementován na všech zařízeních v síti, jimiž citlivý provoz prochází, aby měl smysl.
Best-effort
* ve skutečnosti se nejedná o nástroj QoS
* routery a switche přenášejí pakety tak rychle jak je to možné, nerozlišují druh provozu
* pakety jsou odbavovány v takovém pořadí v jakém přišly
* analogie k dopravě na silnici: Sanitka i přes zapnuté majáky se musí řídit všemi předpisy jako ostatní - na křižovatkách musí stát na červenou, musí stát v koloně jako ostatní apod.
Integrated Services model
* IntServ
* RSVP Resource Reservation Protocol (RFC1633)
* spočívá v předrezervaci šířky pásma pro daný provoz (per-flow)
* analogie k dopravě na silnici: Pro sanitku Policie uzavře křižovatky na celé trase a vyhradí pro ni zvláštní jízdní pruh
Differentiated services model
* DiffServ
* IntServ není vhodný pro mnoho toků
* u DiffServ každé zařízení vyhodnocuje jednotlivé pakety individuálně (per-hop)
* závisí na informacích v IP hlavičce
* analogie k dopravě na silnici: na každé křižovatce stojí policajt, který jakmile spatří záchranku zastaví (upraví) provoz, aby mohla projet
Layer 2 QoS
* L2 rámce samy o sobě nenesou žádnou informaci o jejich prioritě, jsou tedy přepínány dle metody Best-effort
* jakmile jsou přenášeny v trunku je v jejich záhlaví kromě informace o vlan také pole CoS
* jakmile rámec "vypadne" na switchi z trunku, ztratí i informaci CoS
* IEEE 802.1Q
* 12-bit VLAN ID
* User Field obsahuje 3-bity 802.1p CoS
* CoS 0 - nejnižší priorita
* CoS 7 - nejvyšší priorita
* CoS se nepřenáší v rámcích nativní VLAN!!!, tyto rámce jsou přepínány dle default CoS nakonfigurovaného na přijímajícím switchi
* ISL
* 15-bit VLAN ID
* 4-bit User Field
* 3-bity z User Field jsou CoS
* Cisco switche mapují 802.1Q CoS do ISL rámců
Layer 3 QoS
* všechny pakety obsahují pole ToS (1 byte)
* 3-bity = IP precedence
* 4-bity = ToS
* DiffServ využívá celý byte ToS => DS Differentiated Services Field
* 6-bitů DS = DSCP (Differentiated Service Code Point)
* DSCP je zpětně kompatibilní s IP precedence
* 3-bity Class Selector
* 3-Bity Drop Precedence
{{:wiki:site:cisco:14-3.png|}}
^IP Precedence (3 Bits)^^^DSCP (6 Bits)^^^^^
|**Name**|**Value**|**Bits**|**Per-Hop\\ Behavior**|**Class\\ Selector**|**Drop\\ Precedence**|**Code-\\ point\\ Name**|**DSCP Bits\\ (Decimal)**|
|Routine|0|000|Default| | |Default|000 000 (0)|
|Priority|1|001|AF|1|1:Low|AF11|001 010 (10)|
| |||||2:Medium|AF12|001 100 (12)|
| |||||3:High|AF13|001 110 (14)|
|Immediate|2|010|AF|2|1:Low|AF21|010 010 (18)|
| |||||2:Medium|AF22|010 100 (20)|
| |||||3:High|AF23|010 110 (22)|
|Flash|3|011|AF|3|1:Low|AF31|011 010 (26)|
| |||||2:Medium|AF42|100 100 (36)|
| |||||3:High|AF43|100 110 (38)|
|Flash Override|4|100|AF|4|1:Low|AF41|100 010 (34)|
| |||||2:Medium|AF42|100 100 (36)|
| |||||3:High|AF43|100 110 (38)|
|Critical|5|101|EF| ||EF|101 110 (46)|
|Internetwork Control|6|110| ||||(48-55)|
|Network Control|7|111| ||||(56-63)|
* IP precedence 5 (DSCP EF) odpovídá rozsahu DSCP 101000 - 101111 (40-47), pro EF se však nejčastěji používá jen DSCP 101110 (46)
* Class 0 = best-effort
* Class 1 - 4 = AF, čím vyšší AF tím větší priorita (AF pakety mohou být zahozeny v případě nutnosti)
* Class 5 = EF, "prémiová" priorita, menší šance zahození, obvykle se používá pro hlas/video
* Class 6 a 7 = použití pro protokoly řízení sítě (STP, routing, apod.)
* Drop Precedence:
* Low (1) - menší šance zahození
* Medium (2)
* High (3) - větší šance zahození v případě potřeby
//Př. AF21 = AF level 2 s drop precedence 1 (low)//
====== Implementing QoS for Voice ======
* klasifikace provozu = přidělení priorit paketům dle nějakých pravidel (např ACL)
* QoS může být přenášen v poli ToS jako IP precedence nebo DSCP, dále mezi switchi v truncích v poli CoS
* na switchi lze nastavit zda poli CoS v přicházejících rámcích důvěřovat, to má zabránit uživatelům podvrhovat CoS a získávat tak "lepší" službu
* nedůvěryhodné CoS hodnoty mohou být překlasifikovány
* uvnitř podnikové sítě jsou obvykle QoS hodnoty "trusted"
* na hranici s jinými sítěmi jsou QoS hodnoty "untrusted"
* "trust boundary" - hranice důvěryhodnosti (obvykle access switche a WAN demarkační body s jinými ISP)
* je-li jasně definována hranice důvěryhodnosti, vše uvnitř sítě může hodnotám QoS slepě důvěřovat
{{:wiki:site:cisco:14-4.png|}}
====== Konfigurace trust boundary ======
* def. je QoS na switchi vypnuto
* po zapnutí QoS jsou všechny porty "untrusted"
>Switch(config)# **mls qos**
>Switch(config)# **interface** //type mod/num//
>Switch(config-if)# **mls qos trust** {**cos** | **ip-precednce** | **dscp**}
* může být zvolena jen jedna důvěryhodná hdnota (cos / ip precedence / dscp)
* pro Cisco tel. musí být **cos**
>Switch(config-if)# **mls qos trust device cisco-phone**
* Port bude trust jen v případě, že je pomocí CDP detekován Cisco telefon
>Switch(config-if)# **switchport priority extend** {**cos** //value// | **trust**}
* def. telefon přepisuje CoS v PC datech na CoS 0
* **trust** - důvěřovat CoS v PC datech
* **cos** - říká telefonu na co CoS PC dat přepsat
Konfigurace důvěryhodného uplinku:
>Switch(config)# **interface** //type mod/num//
>Switch(config-if)# **mls qos trust cos**
* Cisco switche umějí mapovat CoS -> DSCP, mají na to nějaký def. algorytmus, který lze změnit
====== Auto-QoS ======
* slouží k zjednodušení konfigurace QoS
* funguje na základě macro příkazu (je v něm schováno více jiných příkazů)
* je dobré používat jen na switchích s def. QoS nastavením, jinak hrozí, že subpříkazy makra přepíší některé již nastavené parametry QoSu!
Makro obstará:
* zapnutí QoS
* CoS-to-DSCP mapping
* nastavení vstupních a výstupních front
* nastavení priority pro voice provoz
* nastavení "trust boundary"
>Switch(config)# **interface** //type mode/num//
>Switch(config-if)# **auto qos voip** {**cisco-phone** | **cisco-softphone** | **trust**}
* cisco-phone - není-li na portu cisco tel. je port untrusted
* cisco-softphone - pouze pakety s DSCP 24, 26 a 46 jsou trusted, ostatní jsou intrusted a je jim nastaveno DSCP 0
* trust - nastavuje se na uplinku s důvěryhodným zařízením
* Změna Auto-QoS se provede pomocí **no auto qos voip** a pak zadáním nového příkazu
* **debug auto qos** - zobrazí vykonávané příkazy makra, je-li spuštěno
Switch# debug auto qos
AutoQoS debugging is on
Switch# config term
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet 0/37
Switch(config-if)# auto qos voip cisco-phone
Switch(config-if)#
*Sep 7 04:14:41.618 EDT: mls qos map cos-dscp 0 8 16 26 32 46 48 56
*Sep 7 04:14:41.622 EDT: mls qos min-reserve 5 170
*Sep 7 04:14:41.622 EDT: mls qos min-reserve 6 85
*Sep 7 04:14:41.622 EDT: mls qos min-reserve 7 51
*Sep 7 04:14:41.626 EDT: mls qos min-reserve 8 34
*Sep 7 04:14:41.626 EDT: mls qos
*Sep 7 04:14:42.598 EDT: interface FastEthernet0/37
*Sep 7 04:14:42.598 EDT: mls qos trust device cisco-phone
*Sep 7 04:14:42.602 EDT: mls qos trust cos
*Sep 7 04:14:42.606 EDT: wrr-queue bandwidth 10 20 70 1
*Sep 7 04:14:42.610 EDT: wrr-queue min-reserve 1 5
*Sep 7 04:14:42.618 EDT: wrr-queue min-reserve 2 6
*Sep 7 04:14:42.626 EDT: wrr-queue min-reserve 3 7
*Sep 7 04:14:42.634 EDT: wrr-queue min-reserve 4 8
*Sep 7 04:14:42.642 EDT: no wrr-queue cos-map
*Sep 7 04:14:42.646 EDT: wrr-queue cos-map 1 0 1
*Sep 7 04:14:42.650 EDT: wrr-queue cos-map 2 2 4
*Sep 7 04:14:42.654 EDT: wrr-queue cos-map 3 3 6 7
*Sep 7 04:14:42.658 EDT: wrr-queue cos-map 4 5
*Sep 7 04:14:42.662 EDT: priority-queue out
Switch(config-if)# interface gigabitethernet 0/1
Switch(config-if)# auto qos voip trust
Switch(config-if)#
*Sep 7 15:05:50.943 EDT: interface GigabitEthernet0/1
*Sep 7 15:05:50.947 EDT: mls qos trust cos
*Sep 7 15:05:50.951 EDT: wrr-queue bandwidth 10 20 70 1
*Sep 7 15:05:50.955 EDT: wrr-queue queue-limit 50 25 15 10
*Sep 7 15:05:50.959 EDT: no wrr-queue cos-map
*Sep 7 15:05:50.963 EDT: wrr-queue cos-map 1 0 1
*Sep 7 15:05:50.967 EDT: wrr-queue cos-map 2 2 4
*Sep 7 15:05:50.971 EDT: wrr-queue cos-map 3 3 6 7
*Sep 7 15:05:50.975 EDT: wrr-queue cos-map 4 5
*Sep 7 15:05:50.979 EDT: priority-queue out
Show příkazy:
>Switch# **show mls qos interface** //type mode/num//
Switch důvěřuje CoS z připojeného telefonu:
Switch# show mls qos interface fastethernet 0/1
FastEthernet0/1
trust state: trust cos
trust mode: trust cos
trust enabled flag: ena
COS override: dis
default COS: 0
DSCP Mutation Map: Default DSCP Mutation Map
Trust device: none //vztah k CoS PC dat
>Switch# **show interface** //type mod/num// **switchport**
Switch# show interface fastethernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
[output deleted...]
Voice VLAN: 2 (VLAN0002)
Appliance trust: none //vztah k CoS PC dat
Konfigurace portu s telefonem:
Switch# show running-config interface fastethernet 0/47
Building configuration...
Current configuration : 219 bytes
!
interface FastEthernet0/47
switchport access vlan 10
switchport trunk encapsulation dot1q
switchport mode access
switchport voice vlan 100
mls qos trust device cisco-phone
mls qos trust cos
no mdix auto
end
Switch#
IP telefon není připojen:
Switch# show mls qos interface fastethernet 0/1
FastEthernet0/1
trust state: not trusted
trust mode: trust cos
trust enabled flag: dis
COS override: dis
default COS: 0
DSCP Mutation Map: Default DSCP Mutation Map
Trust device: cisco-phone
Switch#
Po připojení tlefonu:
6d18h: %ILPOWER-7-DETECT: Interface Fa1/0/1: Power Device detected: Cisco PD
6d18h: %ILPOWER-5-POWER_GRANTED: Interface Fa1/0/1: Power granted
6d18h: %LINK-3-UPDOWN: Interface FastEthernet1/0/1, changed state to up
6d18h: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0/1, changed state to up
6d18h: %SWITCH_QOS_TB-5-TRUST_DEVICE_DETECTED: cisco-phone detected on port Fa1/0/1, port trust enabled.
Switch# show mls qos interface fastethernet 1/0/1
FastEthernet1/0/1
trust state: trust cos
trust mode: trust cos
trust enabled flag: ena
COS override: dis
default COS: 0
DSCP Mutation Map: Default DSCP Mutation Map
Trust device: cisco-phone
Switch#
Switch# show auto qos interface fastethernet 0/37
FastEthernet0/37
auto qos voip cisco-phone