Toto je vyrovnávacia pamäť Google pre http://wiki.cnl.tuke.sk/QoSProjekt/Optimalization. Je to snímka stránky, ako sa zobrazila dňa 20. feb. 2009 14:45:44 GMT. Aktuálna stránka sa odvtedy mohla zmeniť. Viac informácií

Len textová verzia
 
Optimalization < QoSProjekt < TWiki
r6 - 23 May 2007 - 14:29:06 - MartinKusnirikYou are here: TWiki >  QoSProjekt Web  > Optimalization

Class-Based Weighted Fair Queuing (CBWFQ) aneb CBWTF

Weighted Fair Queuing (WFQ) bolo impelementové pre linky s malou rýchlosťou (ako napr sériové) aby zabezpečilo spravodlivé rozdeľovanie, pre každý druh trafficu. Pre túto potrebu, WFQ klasifikuje traffic do rôznych flowov na základe pridružených Layer 3 a Layer 4 informácií (IP addresses, TCP ports, atď). Aby toto fungovalo, nie je potrebné definovať access-list. S WFQ, low bandwidth traffic má efektívnu prioritu nad high bandwidth traffic. High bandwidth traffic zdieľa prenosové médium proporcionálne podľa pridelených váh.

WFQ má nasledujúce limitácie:

  • Ak sa traffic flow značne zvýši, WFQ to nemôže upraviť, lebo nieje škálovateľné.
  • WFQ sa nedá uplatniť na high speed rozhraniach, ako ATM.

Nový druh, Class-Based Weighted Fair Queuing (CBWFQ) bolo vyvinuté, aby odstránilo limitácie WFQ. Narozdiel od WFQ, CBWFQ umožňuje definovať triedy trafficu. Po definovaní tried, možu byť aplikované parametre. Tieto parametre zahrňujú bandwith a queue-limit.

Pri používaní CBWFQ, váha špecifikovaná pre treidu, sa stáva váhou pre každý packet, ktorý spĺňa kritéria treidy. Táto váha je odvodená od bandwidthu, priradenému triede. WFQ sa potom uplatní na tieto triedy, namiesto toho aby bol uplatnený na samotné flowy. Triedy môžu obsahovať viacero flowov.

CBWFQ má tri základné časti. Prvou časťou je definovanie flowov pre špecifické vzory trafficu (class-map príkaz). Existuje mnoho rôznych spôsobov ako určiť takéto flowy. Druhou časťou je rozhodnutie ako zaobchádzať s každým flowom (policy-map príkaz). Zvyčajne sa pri každom flowe nastavujú minimálne a/alebo maximálne požiadavky na bandwith. Poslednou časťou je priradenie tejto metódy na interface (service-policy príkaz). CBWFQ sa taktiž dá použiť aj na Frame Relay DLCI. Nasledujúce tri časti popisujú každý komponent v poradí.

The following three sections describe each of these components in turn. The actual configuration and verification commands are then described.

The class-map Command

Prvou konfiguračnou časťou CBWFQ je definovanie individuálnych flowov tečúcich cez "queuing system". Class-map príkaz, ktorý sa používa na vytvorenie týchto flowov, vyberá pre CBWFQ špecifický traffic. Je možné mať viacero class-map príkazov a každý môže mať až 64 zodpovedajúcich podmienok.

Príklad vytvorenia class-map

Router(config)#class-map match-all bcran-class

Uvedený class-map príkaz definuje pomenovaný class (s menom bcran-class), ktorý sa využíva na výber trafficu. Pri definovaní class-map existujú dve možnosti. Uvedený príklad používa možnosť match-all. To znamená, že všetky príkazy zhody musia byť pravdivé pre túto triedu aby "uspela" => logický operátor AND. Alternatívnym príkazom je match-any. To znamená, že akýkoľvek z príkazov zhody spôsobí, že táto trieda "uspeje". => ogický operátor OR.

V rámci class mapu, match príkazy sa používajú na selectovanie packetov pre selekciu paketov pre danú triedu. Ďalší príklad ilistruj triedu s jedným match príkazom

Router(config)#class-map match-all bcran-class

Router(config-cmap)#match access-group 101

Všetky pakety, ktoré prejdú cez IP access list 101, sú zaradené do class mapu bcran-class. Pretože je použitý iba jeden match príkaz, nezáleží na tom, či je class map match-all, č match-any.

V ďalšom príklade iba pakety, ktoré prejdú cez oba IP access listy 101 and 102 budú zaradené do class mapu. Taktiež je rozhodujúce použitie príkazu match-any resp. match-all.

Router(config)#class-map match-all bcran-class

Router(config-cmap)#match access-group 101

Router(config-cmap)#match access-group 102

Match príkaz možno použiť na overovanie širokej škály rôznych kritérii. IP traffic v class-mapoch može byť overovaný pomocou access listov, taktiež podľa hodnoty IP precence, IP DSCP hodnoty, IP RTP portov, COS bitov, QoS? čísel skupín, MPLS experimentálnych bitov a hodnôt protokolov.

The policy-map Command

Class map pozostáva z jedného alebo viacerých match príkazov na výber packetov pre danú triedu. Policy-map zhromažďuje jeden alebo viac class-mapov a definuje akcie, ktoré sú vykonané pre každý class-map. Takže pre správnu funkciu policy-map, class-map už musí existovať. Príklad ilustruje ako sa vytvára policy-map

Router(config)#policy-map bcran-policy

Router(config-pmap)#class bcran-class

Router(config-pmap-c)#bandwidth 48

Príklad najprv vytvára policy-map s menom bcran-policy. Potom mapuje class-map s menom bcran-class(vytvorená predtým) a všetky pakety, ktore sú oficiálne členom triedy bcran-class dostávajú minimálny bandwidth 48 kbps. Je treba si všimúť, že bandwidth neje vynucovaný, kým sa rozhranie nepreplní. Takže nezrobiť chybu akú som sprvoti robil ja a umiestniť policy-map na správne rozhranie.

V skutočnosti, class-map môže použiť viac bandwidthu (ak je voľný), ale ak rozhranie, na ktorom je táto policy aplikovaná, zaneprázdnené, tento konkrétny class-map dostane 48 kbps.

Ďalší príklad ilistruje vytvorenie policy-map s viacerými class-mapami.

Router(config)#policy-map bcran-policy

Router(config-pmap)#class bcran-class

Router(config-pmap-c)#bandwidth 48

Router(config-pmap)#class other-class

Router(config-pmap-c)#bandwidth 24

Router(config-pmap)#class class-default

Router(config-pmap-c)#fair-queue

Dva z class príkazov sa odkazujú na už definovanné class-mapy. Prvá trieda, bcran-class, dostane minimálne 48 kbps. Druhá trieda, other-class, dostane minimálne 24 kbps. Všetko ostatné, čo prechádza cez rozhranie, kde je táto policy aplikovaná používa WFQ. Funkciou class-default je odchytiť všetok traffic, ktorý nespĺňa podmienky špecifických class-mapov v rámci policy-map.

Horeuvedená kofigurácia alokuje špecifickú hodnotu bandwidthu pre každý class-map. Bandwidth môže byť tiež alokovaný ako precento celkového dostupného bandwidthu na rozhraní, alebo ako percento zostávajúceho bandwidthu, neobsadeného inými class-mapmi. Ďlašie konfiguračné možnosti zahŕňajú policing traffic na percento bandwidthu alebo na špecifickú hodnotu bandwidthu, shaping traffic (buffering), nastavenie rôznych markerov a úprava queue limitov, kvôli vyhnutiu sa tail dropom.

The service-policy Command

Teraz, keď už je vytvorená CBWFQ polilitka, musí sa aplikovať na rozhranie. Service-policy príkaz sa používa na namapovanie existujúceho policy-map na rozhranie. Je potrebné si všimúť, že CBWFQ policies možno aplikovať buď na vstupujúce, aelbo vystupujúce traffic flowy.

Nasledujúci príkaz ilustruje umiestnenie policy-map na rozhranie.

Router(config)#interface serial 0/0

Router(config-if)#service-policy output bcran-policy

Iba jedna policy-class sa môže aplikovať na rozhranie v jednom smere. Zvyčajne sa uplatňuje na východzí traffic, pretože oblasť nízkeho bandwidthu sa nachádza za rozhraním.

Príklad kompletnej konfigurácie CBWFQ

Overenie CBWFQ

Keď je CBWFQ nakonfigurované, jednotlivé časti môžu byť odkontrolované z príkazového riadku. Prvá vec, ktorá by m,ala byť odkontrolovaná je queueing policy rozhrania. CBWFQ je rozširenie k WFQ. Preto overenie qeue-ov je veľmi podobné ako pri WFQ. Nasleduje výpis rozhrania s nakonfigurovaným WFQ

Router# show queue serial 0/0

Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: weighted fair

Output queue: 0/1000/64/0 (size/max total/threshold/drops)

Conversations 0/0/256 (active/max active/max total)

Reserved Conversations 0/0 (allocated/max allocated)

Available Bandwidth 1158 kilobits/sec

! Ďalej je výpis toho istého rozhrania s CBWFQ

Router# show queue serial 0/0

Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: weighted fair

Output queue: 0/1000/64/0 (size/max total/threshold/drops)

Conversations 0/1/256 (active/max active/max total)

Reserved Conversations 2/2 (allocated/max allocated)

Available Bandwidth 1086 kilobits/sec

Na prvý pohľad sa môže zdať, že tieto dva sa zobrazujú identicky. Obe tvrdia, že rozhranie je konfigurované pre WFQ. No bližší pohľad ukazuje, že druhý výpis ma dva rezervované konverzácie. Tieto rezervácie reprezentujú dva class-mapy z policy-map, ktorý je aplikovaný na rozhraní. No tu neexistuje odkaz, ktorý konkrétny policy-map je aplikovaný na toto rozhranie. Preto sa musí zobraziť aktuálny policy-map, aby sme mohli vidieť aktuálne class-mapy.

Router# show policy-map

Policy Map bcran-policy

class other-class

Weighted Fair Queueing

Bandwidth 24 (kbps) Max Threshold 64 (packets)

Class bcran-class

Weighted Fair Queueing

Bandwidth 48 (kbps) Max Threshold 64 (packets)

Class class-default

Weighted Fair Queueing

Flow based Fair Queueing

Bandwidth 0 (kbps) Max Threshold 64 (packets)

V tomto príklade other-class alokuje 24 kbps paketom, bcran-class dáva paketom 48 kbps a class-default neslubuje ostávajúcim paketom žiaden bandwidth. O všetky ostatné pakety sa stará WFQ. Ale pakety, ktoré spĺňajú podmienky jednotlivých class-mapov, možno spoznať len kontrolou class-mapov.

Router# show class-map

Class Map match-any other-class (id 3)

Match access-group 103

Class Map match-any class-default (id 0)

Match any

Class Map match-any bcran-class (id 2)

Match access-group 101

Match access-group 102

class-mapa other-class ma jeden match príkaz a pozerá iba do ACL 103. bcran-class má dva match príkazy pre dva rôzne ACL-ka. ACL ka sú spojené logickým OR, kvôli match-any príkazu. class-default, prijíma všetko čo sa inde nezmestilo.

Router# show access-lists

Extended IP access list 101

permit tcp 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255 eq telnet

Extended IP access list 102

permit ip 172.16.2.0 0.0.0.255 192.168.2.0 0.0.0.255 precedence critical

Extended IP access list 103

permit ip 172.16.3.0 0.0.0.255 192.168.3.0 0.0.0.255 precedence critical

Príkaz show access-lists zobrazí obsah všetkých access listov na danom routri.

Zoznam dostupnosti Per-VC CBWFQ na 7200, 3600, and 2600 routroch:

  • 7200: Cisco IOS® versions 12.0(5)T, 12.0(5)XE, 12.1(1), 12.1(1)T, 12.1(1)E and later using a PA-A3.
  • 7200 with NSE: Cisco IOS version 12.1(7)E and later.
  • 7200 with NSE-1 Services Accelerator: Cisco IOS version 12.2(4)B1.
  • 2600/3600 with NM-1A-T3/E3 modules support LLQ / CBWFQ on Cisco IOS version 12.1(5)T and later.
  • 2600/3600 with DS3/E3 network modules: Cisco IOS version 12.1(2)T.

Poznámka : Cisco express forwarding (CEF) byť použité, pretože CBWFQ monitoruje iba CEF-switched pakety.

http://www.ciscopress.com/articles/article.asp?p=102233&seqNum=4&rl=1

Príklad kompletnej konfigurácie CBWFQ

! ACL 101 povoľuje telnet z 172.16.1.0/24 to 192.168.1.0/24

access-list 101 permit tcp 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255 eq telnet

! ACL 102 povoľuje traffic s prioritou 5 z 172.16.2.0/24 to 192.168.2.0/24

access-list 102 permit ip 172.16.2.0 0.0.0.255 192.168.2.0 0.0.0.255 precedence critical

! ACL 103 povoľuje traffic s prioritou 5 z 172.16.3.0/24 to 192.168.3.0/24

access-list 103 permit ip 172.16.3.0 0.0.0.255 192.168.3.0 0.0.0.255 precedence critical

! class-map bcran-class1 zahŕňa všetko z ACL 101 alebo 102

class-map match-any bcran-class

match access-group 101

match access-group 102

! class-map bcran-class2 zahŕňa všetko z ACL 103

class-map match-any other-class

match access-group 103

! policy-map bcran-policy povoľuje class-mapu bcran-class 48Kbps,

! class-map other-class 24Kbps, a ostatný traffic je WFQ

policy-map bcran-policy

class bcran-class

bandwidth 48

class other-class

bandwidth 24

class class-default

fair-queue

! policy-map bcran-policy je aplikovaný na východzí traffic na serial 0/0

interface serial 0/0

service-policy output bcran-policy

-- MartinKusnirik - 16 Mar 2007

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r6 < r5 < r4 < r3 < r2 | More topic actions
QoSProjekt.Optimalization moved from QoSProjekt.OptimalizáciaSieťovejPrevádzky on 16 Mar 2007 - 09:55 by MartinKusnirik - put it back
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback