Malá učebnice OpenFlow (12) – metering a rate limit

Část 12 z celkových 15 v seriálu Malá učebnice OpenFlow

Minule jsme dokázali omezovat propustnost klientům a použili OpenFlow Meters… ty ovšem dokážou víc.

Meter vs. Fronta

Na začátek bychom si měli vyjasnit rozdíl mezi měřákem a frontou. Fronta je entita, které je spojena s výstupním portem. Zařízení odesílá výstupním portem pakety určitou rychlostí (danou rychlostí linky nebo příjemce). Občas se může stát, že na linku se nic poslat nedá, protože se zrovna vysílá nějaký jiný paket. Pak je tedy nutno ten druhý zařadit do fronty a odeslat o chvilku později. Jak ale zajistit, že některé kritické pakety nebudou dlouze čekat ve frontě, tedy že dostanou přednost? A jak na druhou stranu vyřešit situaci, kdy nadměrné množství vysoce prioritních paketů zcela odstaví ostatní provoz? Právě z těchto důvodů vzniklo frontování a existuje mnoho různých řešení a variant. Například striktní priorita (nejvyšší fronta má vždy přednost), různé formy vážených vyprazdňování front (WRR, DWRR, WFQ) apod. Navíc je někdy možné v těchto frontách provádět občasné zahazování paketů poměrovým způsobem pokud se délka fronty přiblíží určité hranici tak, aby TCP dokázalo dříve reagovat (WRED). Nic z toho OpenFlow nezahrnuje, to pouze umí přiřadit konkrétní flow do nějaké fronty. Zbytek záleží na implementaci v zařízení a jeho nastavení mimo OpenFlow působnost (například přes NETCONF).

Měřák je naproti tomu vztažen ke konkrétní třídě paketů, flow. Je to jedna z instrukcí, kterou lze flow pravidlu přiřadit. Nemá tedy přímý vliv na frontování a to, co se děje na výstupním portu. Nepřímo ale ano, protože dokáže měnit DSCP provozu, který je „přes čáru“, což se se ve finále může projevit na frontě, v které skončí.

Měřáky a pásma

OpenFlow meter má identifikátor (číslo), podle kterého se na něj lze odkazovat ve flow pravidlech. Kromě toho obsahuje ještě čitač paketů a pak především definici pásem. Specifikace neomezuje jejich počet a odkazuje na dva typy – drop a DSCP pásmo. To první jako svůj výsledek aplikuje zahození paketů (tedy rate limit), to druhé poznačí změnu v DSCP (tedy potažmo jiné zacházení z pohledu frontování). Funguje to tak, že pokud je provoz nižší, než jakékoli definované pásmo, Meter nic neprovede. Pokud není, tak provede operaci, která přísluší nejvyššímu pásmu, které je ještě nižší, než aktuální provoz. Tedy pokud dáme pásmo 256 Kbps a 512 Kbps nebudeme u provozu 100 Kbps nic měnit, u paketů přicházejících přes 256 Kbps provedeme operaci prvního pásma atd.

3 color 2 rate

Jaká je reálná implementace meteringu v hardware? Levnější produkty mají mnohdy možnost přiřadit pravidlu jen jedno pásmo, například rate limit. Sofistikovanější mají princip tří stavů (barev) – méně než pásmo, více než pásmo (pakety přetečou z hlavního zásobního kbelíku) a přetečení i druhého vědra. Druhou možností je to, co docela dobře odpovídá představě OpenFlow Meters a sice 3 color 2 rate. Takový systém umožňuje nastavit primární rate (CIR, třeba 256 Kbps) a peak rate (PIR, třeba 512 Kbps). Zelená akce (například vysoká priorita) se aplikuje pro provoz pod CIR, mezi CIR a PIR se aplikuje žlutá akce (například už jen best effort) a nad PIR červená akce (například rate limit). Takže dokážete video konferencím zajistit vysokou prioritu, ale při překročení jisté hranice, která by už ohrožovala zbytek sítě, se k přebytečnému provozu zachováte jinak a přes určitou hranici už budete omezovat propustnost.

Definujete tedy Match s Instrukcí pro provoz pod CIR. Dále uděláte Meter, přiřadíte ke stejnému Match, s DSCP pásmem na 256 Kbps a drop pásmem 512 Kbps.

Mimochodem není nikde řečeno, že nutně musíte do měřáku poslat jen pakety z jednoho Match – klidně se dá i víc, ale žádné flow pravidlo nesmí směřovat do víc jak jednoho měřáku. A nezapomeňte také, že měřák je ve skutečnosti specifický hardwarový obvod a jejich počet je tak omezen a málokdy se uvádí v běžném datasheetu (na rozdíl od ACL TCAM kapacit, ale to je něco jiného).

Příště opět teorie opustíme a něco si vyzkoušíme, odhalíme tajemství tabulek v pipeline.

Series Navigation<< Malá učebnice OpenFlow (11) – omezujeme propustnostMalá učebnice OpenFlow (13) – tabulky v praxi OpenvSwitch >>
Similar posts
  • L3 a kontejnery bez overlay: Project ... Část 6 z celkových 6 v seriálu L3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico prakticky (1) – architekturaL3 a kontejnery bez overlay: Project Calico prakticky (2) – rozjezdL3 a kontejnery bez overlay: Project Calico prakticky (3) – BGPL3 a kontejnery bez [...]
  • L3 a kontejnery bez overlay: Project ... Část 5 z celkových 6 v seriálu L3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico prakticky (1) – architekturaL3 a kontejnery bez overlay: Project Calico prakticky (2) – rozjezdL3 a kontejnery bez overlay: Project Calico prakticky (3) – BGPL3 a kontejnery bez [...]
  • HPE Networking na GitHub – skri... Zaměstnanci HPE publikovali zajímavé skripty a celé knihovny jako open source v licenci Apache2, tedy k volnému použití včetně jakýchkoli modifikací. https://github.com/HPENetworking/scriptsonly Obsah se bude jistě dost rozšiřovat… přidejte si záložku [...]
  • L3 a kontejnery bez overlay: Project ... Část 4 z celkových 6 v seriálu L3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico prakticky (1) – architekturaL3 a kontejnery bez overlay: Project Calico prakticky (2) – rozjezdL3 a kontejnery bez overlay: Project Calico prakticky (3) – BGPL3 a kontejnery bez [...]
  • L3 a kontejnery bez overlay: Project ... Část 3 z celkových 6 v seriálu L3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico praktickyL3 a kontejnery bez overlay: Project Calico prakticky (1) – architekturaL3 a kontejnery bez overlay: Project Calico prakticky (2) – rozjezdL3 a kontejnery bez overlay: Project Calico prakticky (3) – BGPL3 a kontejnery bez [...]

No Comments Yet

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *