QoS je velice obsáhlá oblast. Já se v této sérii článků snažím shrnout základní teorii spolu s příkazy Cisco IOSu. Poslední díl bude věnovat praktickým příkladům konfigurace. Většinu věcí okolo Cisca jsem se naučil samostudiem, ale na QoS jsem absolvoval školení u AlefNula, které mohu vřele doporučit všem, kteří se chtějí o QoSu dozvědět více.
Co je to QoS
Quality of Service, dále jen QoS, je soubor řady technologií, který řeší hned několik problémů okolo traffic management (nebo traffic engineering). Cílem QoSu je umožnit nastavení určité kvality přenosu pro data přenášená sítí. Navíc QoS dokáže rozlišovat mezi jednotlivými přenosy a každému typu nastavit jinou kvalitu. Zjednodušeně můžeme říci, že QoS zajišťuje, aby se důležitý provoz doručil v pořádku a včas.
QoS je problematika značně rozsáhlá a ne zrovna jednoduchá (z teoretického hlediska, vlastní konfigurace nemusí být složitá). Skládá se z celé řady oblastí, v praxi nám často stačí použít pouze určitou část. Na druhou stranu některé příkazy v Cisco IOSu konfigurují najednou více oblastí. Pouze jednou částí QoSu je využití normy IEEE 802.1p (potažmo 802.1q).
Pozn.: Já se v tomto článku zaměřuji na to, co v současnosti používá Cisco na svých zařízeních (a převážně se věnuji ethernetu). Teorii se snažím minimalizovat, takže některé věci zde budou chybět.
QoS je v současnosti hodně populární díky přenosu hlasu (VoIP) či videa přes IP protokol, kdy je potřeba zajistit určité vlastnosti/parametry provozu. Primárně můžeme říci, že potřebujeme prioritizovat určitý provoz (upřednostnit nějaký provoz před ostatním, aby nedocházelo ke zpoždění). QoS ale nabízí i další užitečné a používané funkce. Jedná se o omezování přenosového pásma (nastavení maximálního pásmo, které může být použito) a vyhrazování přenosového pásma (nastavení minimálního pásma, které bude pro daný provoz vždy k dispozici).
Pozn.: Obecně se QoS příliš neřeší na switchích (LAN), protože jsou zde vysoké rychlosti. Hlavní nasazení je pro routery a pomalé linky do 768 kbps, pro určité účely ještě linky do 2 Mbps. Samozřejmě nějaká základní nastavení se provádí i v případě třeba IPT na LAN.
Základní problémy při přenosu dat
Zde je seznam hlavních věcí, které mohou nastat při přenosu paketů. Tyto oblasti se snaží upravovat QoS.
- delay - zpoždění - data dorazí do cíle příliš pozdě, skládá se z propagace (jak rychle se šíří signál médiem), serializace (jak rychle můžeme data vkládat na linku, musí jít za sebou), zpracování (routery na cestě), zdržení ve frontách, dejitter buffer a další
- jitter - variace zpoždění - pakety dosáhnou rozdílného zpoždění, hlavně záleží na frontách po cestě
- packet loss - ztrátovost - paket se ztratí cestou (error) nebo je zahozen (kvůli propustnosti, dropped packet), pokud se ztratí, tak se musí vyslat znovu, navíc se změní pořadí
- out-of-order delivery - doručení mimo pořadí - pakety mohou putovat různou cestou nebo se vysílají znovu
- bandwidth - šířka pásma - je využíváno nárazově a nehospodárně (stahování velkého souboru může vzít pásmo telefonii), můžeme komprimovat hlavičky paketů (které mohou být větší než datový obsah)
Požadavky pro VoIP
Zde jsou uvedeny doporučené hodnoty, kterých by se mělo v praxi dosáhnout, pro optimální nasazení IP telefonie.
- latence - koncové zpoždění (doba mezi vysláním paketu a jeho doručením) < 150 ms
- jitter - kolísání zpoždění (rozdíl v intervalech mezi přijímanými pakety) < 30 ms
- ztráta paketů - podíl přijatých a vyslaných paketů za čas < 1%
- šířka pásma - souvisí s propustností - 12 - 106 kbit/s v závislosti na vzorkování, kodeku a L2 režii
QoS mechanismy - implementace QoSu
- Best-effort service - znamená žádný QoS, klasický TCP/IP provoz, bitrate a doba doručení je proměnlivá a nespecifikovatelná a mění se podle zatížení sítě
- Integrated services - IntServ -dnes málo používaná technologie garantovaného QoS, musí být podpora u aplikace a všech routerů na cestě, nejprve se vyjedná a rezervuje cesta, pak se posílají data, používá Resource ReSerVation Protocol (RSVP) pro rezervace cesty, je značně náročné na zdroje
- Differentiated services - DiffServ - dnešní hlavní metoda, řeší se per router, pakety se rozdělí do tříd podle typu při příchodu na router, tato klasifikace se může zaznamenat do hlavičky paketu, s třídami se zachází podle konfigurovaných parametrů
Pozn.: Veškerý další popis se týká DiffServ implementace QoSu.
DiffServ - Differentiated services
- klasifikace se provádí na hranici sítě a nastavuje Differentiated Services Code Point (DSCP)
- vše se děje na aktivních prvcích a ne v aplikaci (i když i to je možné)
- protože se řeší na každém hopu (routeru), tak projde i přes router, který QoS nepodporuje, ale nejedná se pak o ucelené QoS řešení
- používá se několik front a odbavuje se podle určitého algoritmu
Základní body aplikace DiffServ jsou
- identifikace provozu
- rozdělení do tříd
- definování politik pro jednotlivé třídy
Základní oblasti/akce
- Classification and Marking - rozlišení a označení provozu
- Traffic Rate Management - Shaping and Policing - správa datového toku, omezování a vyhrazování
- Congestion Management - Queuing - správa zahlcení pomocí front
- Congestion Avoidance - zabránění zahlcení pomocí řízeného zahazování
- Signaling - vyjednávání end-to-end spojení, IntServ RSVP
- Link Efficiency Management - správa efektivního využití (pomalé) linky, komprese, fragmentace
Pozn.: Posledním dvěma oblastem se zde nebudu věnovat.
Určité akce se aplikují na vstupu a určité na výstupu. Detaily závisí na zařízení (počet front, algoritmy, akce). Následující obrázek ukazuje možné akce na Cisco switchi.
Detailnější zobrazení (pochází z webu cisco.com)
Obecný princip je takový, že se nejprve datový tok (paket) rozliší (klasifikuje). Poté se označí pro další pohyb v síti. Zajišťuje se, aby odpovídal konfigurovanému využití zdrojů (politiky a výběr) a definovanému chování (fronty a plánování). U výstupního profilu se ještě zajišťuje, aby odpovídal definovanému profilu (shaping).
Akce na vstupním portu (ingress action)
- classifying - rozlišuje typ trafiku podle ACL či konfigurace a přiřadí mu QoS label.
- policing - určuje, zda paket spadá do profilu policeru, ten limituje pásmo pro trafik a výsledek předá do markeru
- marking - vyhodnotí údaje z policeru a rozhoduje podle profilu. Následně se buď zahodí, sníží priorita nebo pošle dál
- queuing - vyhodnotí QoS label (a odpovídající CoS nebo DSCP) paketu a určí, do které ze dvou vstupních front (jedna je prioritní) se zařadí. Je rozšířeno o WTD (weighted tail-drop) algoritmus, který zabraňuje zahlcení. Pokud se překročí práh, tak se paket zahodí.
- scheduling - obsluhuje fronty pomocí nakonfigurované váhy - Shaped Round Robin (SRR)
Akce na výstupním portu (egress action)
- queuing - vyhodnotí QoS label (a odpovídající CoS nebo DSCP) paketu a určí, do které výstupní fronty (ze 4) se zařadí. Protože může dojít k zahlcení, když několik vstupních portů posílá data na stejný výstupní port, používá se WTD pro rozlišování třídy paketu. Pokud se překročí práh, tak se paket zahodí.
- scheduling - obsluhuje fronty pomocí váhy - SRR nebo shaped weights. Jedna fronta může být jako expresní a ta je obsluhována dokud není prázdná, pak se teprve obsluhují ostatní.
Co k tomu? Akurat dakujeme :) pekny clanok obsazny a naucny
Fakt dobrej web, jen tak dál Do školy jsem potřeboval něco o QoS, tak jsem si pěkně početl Díky