Malá učebnice OpenFlow (5) – hybridní služby

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

Výchozí režim HP kontroleru je hybridní, tedy mix klasických a SDN přístupů. Co to znamená a jak to funguje?

Čisté OpenFlow – prvky bez mozku

Klasické čisté OpenFlow vzniklo za velkého přispění HP na Standfordské univerzitě v roce 2007. Prvotním záměrem (tenkrát projektu pojmenovaného Ethane) bylo najít kompromis mezi výrobci (kteří chtějí přinášet přidanou hodnotu a tu prodávat) a univerzitami. Přímé programování ASIC komponent v hardware má k dispozici pouze výrobce čipu a prvku a navíc sestavení přepínače není nic jednoduchého. Pokud chtěla univerzita přímo programovat chování zařízení, musela používat softwarovou simulaci (problém s výkonem) nebo používat speciální FPGA síťové karty (velmi nákladné a extrémně programátorsky složité). Jak by si mohli uživatelé vytvořit například vlastní směrovací protokol nebo jiným způsobem zásadně ovlivnit chování sítě? Jak by mohli centralizovat control plane a přímo programovat jednotlivé prvky? Tímto kompromisem bylo OpenFlow – kontroler dokáže v krajním případě převzít inteligenci zařízení a přitom to není složité (OpenFlow není nijak komplikovaný jazyk) a současně umožňuje výrobcům realizovat přidanou hodnotu.

Klasické OpenFlow funguje tak, že pokud není naprogramován na zpracování konkrétního typu komunikace, tak požádá kontroler o pomoc. Výchozí pravidlo je OUTPUT CONTROLLER, tedy nevíš-li, pošli to do kontroleru (paket se zabalí a odešle v rámci OpenFlow komunikace, případně se uloží do bufferu a pošle se jen část spolu s číslem obsazeného bufferu prvku). Kontroler rozhodne co s tím (jakýmkoli způsobem na základě znalosti topologie sítě) a naprogramuje síť. Pro další pakety v rámci této komunikace už je síť naprogramována a tak se zpracovávají přímo v hardware a kontroler dále neobtěžují.

Možná vám to připadá extrémistické a v praxi nepoužitelné – ve skutečnosti ale většina overlay SDN v datových centrech funguje právě takhle. V takovém případě totiž není problém upgradovat šmahem celou síť na OpenFlow (vSwitch je jen software), virtuální prvky mají vysoké kapacity pravidel (opět – je to jen software a paměti je dost) a většina informací je dopředu známá a kontroler programuje pravidla ještě před tím, než vůbec někdo začne komunikovat (při vytvoření VM už se ví kde je a kde tedy očekávat budoucí komunikaci).

Čisté OpenFlow je podporováno na HP prvcích 2920, 3500, 3800, 5400, 5400R, 8200, 5500 EI, 5500 HI, 5130, 5900, 10500, 11900, 12500, 12900, 7900 a v průběhu roku 2015 se může objevit v HP routerech a WiFi řešeních.

OpenFlow OUTPUT NORMAL

Čisté OpenFlow má několik zásadních omezení – každé nové spojení musí počkat na rozhodnutí kontroleru. To může činit problém ve škálovatelnosti (zejména na straně prvku jehož CPU nebylo designováno na masivní provoz a OpenFlow komunikace, kterou řeší CPU, může být v takovém případě docela náročná), zvyšuje latenci (první paket v komunikaci je zpožděný) a je komerčně obtížně nasaditelný (vyžaduje přístup všechno nebo nic). OpenFlow proto definuje pravidlo OUTPUT NORMAL. Pakety, které sedí na toho pravidlo (L1-L4 klasifikace) nejsou řešeny v rámci SDN přístupu, ale prvek použije svůj lokální control plane. Jinak řečeno pro tento provoz se zachová klasicky – switchuje, směruje, vyhodnocuje STP, LACP, OSPF a všechny další běžné protokoly. OUTPUT NORMAL vám tedy umožní uvnitř jednoho prvku (nebo VLAN) kombinovat klasické a SDN chování. Hybridní prvek obvykle funguje tak, že jako výchozí pravidlo je OUTPUT NORMAL, tedy není-li řečeno jinak, zpracuj pakety běžným způsobem.

OpenFlow s OUTPUT NORMAL je podporováno na HP prvcích 2920, 3500, 3800, 5400, 5400R, 8200, 5500 EI, 5500 HI, 5130, 5900, 10500, 11900, 12500, 12900, 7900 a v průběhu roku 2015 se může objevit v HP routerech a WiFi řešeních.

Hybridní služby kontroleru

HP VAN SDN kontroler nabízí aplikacím některé služby – například znalost topologie (jak je síť zapojena) a také informace o připojených koncových zařízeních. Jak to dělá? HP kontroler vstřikuje do sítě discovery pakety (příkaz PACKET_OUT umožní vložit libovolný paket na libovolné místo sítě) a ty následně odchytává. Formátem je to podobné LLDP protokolu, ale je použito jiného EtherType, aby nedocházelo ke konfliktům mezi klasickou a SDN sítí – tento typ paketu je označován jako BDDP. A jak přijít na to kde jsou jaké stanice? Kontroler se bude učit a ideální k tomu jsou protokoly DHCP a ARP. Chceme tedy, aby kontroler dostával tyto pakety k sobě, aby věděl kdo kde je.

V čistém OpenFlow to není problém – každé nové spojení jde přes kontroler tak jak tak, čili informace se tam dostávají v pořádku. Pokud je ale výchozí pravidlo OUTPUT NORMAL, kontroler oslepne. Ano, dalo by se přidat pravidlo, že veškerý DHCP a ARP provoz teče výhradně přes kontroler, pak ale vzniká závislost sítě na SDN (u některých prvků to dokonce zničí klasický learning, protože pak zase oslepne samotný prvek), což opatrný zákazník nechce. Rádi bychom přidali SDN aplikace, ale neovlivnili činnost sítě.

Řešením je kombinace dvou pravidel – DHCP a ARP pakety chceme současně zpracovat klasickým způsobem (OUTPUT NORMAL) a zároveň je poslat kontroleru (OUTPUT CONTROLLER). To je pro prvky docela oříšek. Z HP portfolia to dnes umí 2920, 3500, 3800, 5400, 5400R, 8200 a 5500 HI (ale podpora se připravuje i u dalších).

Ve výchozím stavu je zapnutý právě tento režim, ale můžete to změnit.

of-hybridonoff

HP VAN SDN kontroler drží přehled o tom, co která aplikace nebo služba bude v síti dělat (podobně jako Android při instalaci aplikace říká jaká práva bude potřebovat). To si můžete prohlédnout v záložce OpenFlow Classes (kliknutím se vám obrázek zvětší):

of5-classes

Všimněte si zejména třídy pro BDDP, která říká STEAL (tedy vstříknuté BDDP pakety chceme ze sítě odchytávat, neboli přesměrovat do kontroleru). Naopak pakety DHCP a ARP chceme COPY, tedy zpracovat lokálně v prvku, ale kopii poslat do kontroleru. Je tam také vidět, že výchozí chování pro ostatní pakety je OUTPUT NORMAL (slova GOTO si zatím nevšímejme, souvisí s implementací vícero tabulek v prvcích).

Takhle pak vypadají pravidla v praxi:

of5-table

Všechno potřebné už víme, kontroler máme nainstalovaný – v příštím díle se naučíme vytvářet vlastní skripty nad kontrolerem.

Series Navigation<< Malá učebnice OpenFlow (4) – připojení prvků ke kontroleruMalá učebnice OpenFlow (6) – porty >>
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 *