====== 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