Otevřít/R: Otevřete směrování pro moderní sítě – Facebook Inženýrství

  • Jsme open-sourcing Otevřít/R, rozšiřitelný síťový routing platformu, která umožňuje rychlé inovace v síťové funkce a aplikace.
  • Open / R se používá v páteřních sítích Facebook a datových center.
  • platforma podporuje různé síťové topologie (jako Wan, datová centra tkaniny a bezdrátové sítě), stejně jako několik základních hardwarových a softwarových systémů (FBOSS, Arista EOS, Juniper JunOS, Linux, routing, atd.).,
  • Open / R poskytuje platformu pro šíření stavu v síti a umožňuje na ní stavět nové aplikace. Poskytuje také northbound rozhraní umožňující integraci s externími řadiči.
  • Open / R podporuje funkce jako automatické přidělování prefixů IP, metriky nákladů založené na RTT, elegantní restart, rychlá konvergence a operace drain/undrain.,
  • pracujeme s externími partnery a subjekty pro podporu a využití Open/R, a zveme další operátoři, Poskytovatelé internetových služeb, dodavatelé, systémoví integrátoři, a vědci využít Open/R jako platforma pro realizaci nových síťové směrování myšlenek a aplikací.

Open-sourcing Otevřít/R

Jak více lidé přicházejí on-line a konzumovat bohatší obsah, složitost sítí, základní tok informací také roste., Zatímco tradiční směrovací protokoly za posledních 30 let fungovaly dobře, může být náročné a časově náročné rychle tlačit rozšíření nebo zcela nové protokoly do síťových zařízení. Nové pokroky ve směrování často vyžadují pečlivé rozšíření stávajícího protokolu nebo navrhování nových rozšíření překrytí. Dále, většina protokolů byla původně navržena na základě omezených předpokladů hardwarového a softwarového prostředí z doby před desítkami let. Chcete-li pokračovat v poskytování bohatých, real-time a vysoce poutavých uživatelských zkušeností v sítích, je důležité urychlit inovace v oblasti směrování.,

dnes jsme open-sourcing Open/R, směrovací platforma, která umožňuje rychlou inovaci síťových funkcí. Otevřít/R byl původně postaven pro Terragraph bezdrátové páteřní sítě, ale rychle jsme viděli jeho potenciální využití pro Facebook je páteř, kde poskytuje více efektivní a přesné řízení globální síť z optických vláken. Teď jsme se dokonce začínají rozválejte do našeho datového centra tkaniny, běží uvnitř FBOSS a na naše Open Compute Project síťový hardware, jako Klín 100., Open / R je jediná platforma, která pokrývá širokou škálu síťových domén a návrhů a snažíme se ji aplikovat v ještě více případech použití.

Facebook má vzít software-centric přístup k budoucnosti naší sítě, a v posledních několika letech jsme byli sdílení naše poznatky se sítí společenství. Například, máme sdílené kód z Facebook otevřené spínací systém (FBOSS); podrobnosti o našem návrhu sítě, řízení a sledování nástroje, jako je Robotron, FCR, a fbflow; a návrhy naše inteligentní systémy řízení dopravy, jako jsou Expresní Páteří a Okrajem Tkaniny., Nyní, uvolněním moderní, snadno rozšiřitelné a dobře testované Open/R platformy, máme v úmyslu dále tlačit nejmodernější v síťové komunitě.

V tomto duchu, jsme rádi, oznamujeme, že jsme pracovali s několika externími partnery přinést Otevřít/R do výroby, a to jak uvnitř Facebook sítě a externě. Open / R nyní běží na platformách Arista switching, integrující se s open source EOS SDK, stejně jako na platformách Juniper QFX a PTX routing pomocí API založených na gRPC., WiLine Networks, bezdrátový ISP, spolupracoval s Tieto na nasazení Open / R do výroby ve své komerční síti. Zveme ostatní prodejci, operátoři, Poskytovatelé internetových služeb, systémových integrátorů, a vědci využít Open/R jako platforma pro realizaci nových směrování domény nápady, aby se příští generace sítí, efektivnější, inteligentnější a jednodušší na ovládání.

Použitelnost v různých síťových domén

Jsme byli docela rádi, aby zjistil, že Open/R je flexibilní a rozšiřitelný dost, aby zvládnout mnoho typů síťových technologií a topologií., Všechno to začalo s Terragraph, což představuje výzvu pro tradiční síťové protokoly: tisíce bezdrátových uzlů komunikaci venku se počasí, listí a jiných překážek neustále zasahoval s připojení. Velká vrstva 2 mesh by nebyla tak efektivní a pružná, zatímco tradiční protokoly Layer 3, určené většinou pro základní připojení a dosažitelnost, jsou špatně vhodné pro vysoce variabilní a dynamické venkovní podmínky., „Ovládání vše centrálně“ se zdálo jako snadné konstrukční řešení, ale nepraktické vzhledem k nedostatku správy mimo pásmo a velké velikosti bezdrátové sítě. Proto jsme navrhli Open / R jako distribuovanou síťovou platformu na vrcholu sítě Terragraph, která by se dokázala vypořádat s velkým rozsahem a rychlými změnami a umožnila rychlou rozšiřitelnost.

Když jsme zpočátku sdíleli, že vyvíjíme Open / R, několik členů síťové komunity oslovilo další informace, zejména v bezdrátovém prostoru., Návrháři bezdrátových sítí čelí stejné výzvě: jak rychle a často šířit informace o základní síti, vzhledem k tomu, jak rychle se bezdrátové sítě mohou měnit. WiLine Sítí začal se snaží upravit stávající protokoly jako základ pro svou platformu, ale když zástupci se dozvěděli o Otevřených/R, se a Tieto zasnoubená s Facebook vidět, jestli Open/R by mohl uspokojit jejich potřeby. Jejich konkrétní návrh sítě měl několik nových, zajímavých výzev pro Open / R, ale společně jsme byli schopni rozšířit Open/R tak, abychom vyhověli novým požadavkům., Open / R je nyní součástí jejich výrobní sítě. V podobném duchu viděli další poskytovatelé sítí příští generace milimetrových vln přímou použitelnost Open / R a zahájili jsme diskuse se členy projektu Telecom Infra (TIP).

interně jsme viděli, že Open / R může řešit některé výzvy v páteřní síti Facebook. Zatímco páteř je zcela jiné doméně od metra bezdrátové sítě (páteř má tisíce mil vlákniny, která span kontinenty, přes oceány, a kruh celém světě), od sítí pohledu čelí podobným problémům., Naše nová Expresní páteř vyžadovala kontrolu provozu a směrování po mnoha široce odlišných cestách a rychlou reakci na selhání. Namísto použití tradičního směrovacího protokolu, jako je IS-IS, jsme se rozhodli zavést Open / R do Expresní páteře jako distribuovanou řídicí rovinu pro síť, kde by spolupracovala s centralizovaným ovladačem. Zde Open / R poskytuje základní připojení v síti, rychlé reakce na síťové události a“ distribuovanou informační sběrnici “ pro export nových informací do řadiče a agentů v síťových uzlech.,

v poslední době, obrátili jsme naši pozornost na Facebook datové centrum textilie — opět, domény, velmi odlišné od Terragraph a globální páteřní. Podle návrhu je tkanina vysoce jednotná a hustě síťovaná,s mnoha možnými cestami, které je třeba zohlednit a využít. Facebook již mnoho let provozuje tyto rozsáhlé tkaniny výhradně pomocí protokolu Border Gateway Protocol (BGP). Zatímco BGP přináší své silné stránky, zejména pokud jde o prosazování politiky a rozsah, viděli jsme příležitosti ke zlepšení a zjednodušení návrhu tím, že jsme společně pracovali s Open/R a BGP., Open/R v této části sítě běží na vrcholu FBOSS a na našem vlastním síťovém hardwaru OCP, jako je Wedge 100.

směrování v moderním hardwarovém a softwarovém prostředí

v minulosti bylo navrženo mnoho tradičních směrovacích protokolů se silným zaměřením na optimalizaci pro hardwarově omezené vestavěné systémy, jako jsou CPU a RAM. Kromě toho, protokoly byly navrženy jako účelové řešení, jak vyřešit konkrétní problém směrování pro připojení, spíše než jako flexibilní softwarová platforma k vytváření nových aplikací v síti.,

omezení CPU a RAM dnes již nejsou hlavním problémem; současně se požadavky na aplikace a případy použití, které musí sítě uspokojit, rychle vyvíjejí. Tyto změny posunuly zaměření síťové inženýry z optimalizace protokolů k budování nové aplikace rychle, což může být náročné na vrcholu stávající protokoly. Platforma Open / R umožňuje rychlou inovaci potřebnou k podpoře moderních návrhů sítí a zároveň ke snížení provozní složitosti.

Navrhli jsme Open / R pro spuštění na více hardwarových platformách., Všechny hardwarově a systémově závislé kusy byly abstrahovány prostřednictvím rozhraní RPC (například programování tras a vyhledávání odkazů/adres). To nám umožnilo spustit stejnou implementaci Open / R na různých druzích hardwarových zařízení, s různými Asics nebo dokonce různými rodinami CPU. Tato flexibilita poskytuje vrstvu homogenity na heterogenních síťových zařízeních, což usnadňuje ovládání a správu sítě.,

navrhování pro rychlou iteraci umožnilo zahrnout robustní testovací postupy, které poskytují důvěru a jasnost kolem každé změny kódu a vydání nových funkcí. Snažíme se mít 100 procent pokrytí kódu ověřit každý řádek logiky kódu a chytit chyby co nejdříve. Samotné jednotkové testy však zjevně nestačí. Pro každou změnu kódu testujeme skutečné chování Open/R ve Velké emulované topologii sítě tisíců uzlů, provádíme regresní testy a kontrolujeme celou sadu funkcí, abychom zajistili zpětnou kompatibilitu., Za tímto účelem jsme vytvořili rámec pro spin up velké virtuální topologie pomocí lehkých kontejnerů jako uzlů na více fyzických strojích. Budeme také open-sourcing tento emulační rámec spolu s platformou Open/R.

open / R design updates

jak jsme již dříve popsali, Open/R využívá stávající open source codebases pro dvě základní funkce. Za prvé, kódování a dekódování datových struktur řídicí roviny se provádí pomocí šetrnosti. Za druhé, logika výměny dat mezi síťovými uzly je implementována pomocí ZeroMQ., Tato volba designu nám pomohla eliminovat spoustu technických režií a rychle se rozvíjet Open / R, soustředit se spíše na funkce vyšší úrovně než na instalatérské práce na nízké úrovni. Kromě toho, použití stávající technologie nám umožnila vytvořit nástroje a knihovny v jiných jazycích než C++ komunikovat s Open/R. příklad je Vánek CLI nástroj, který je napsán v jazyce Python a nabízí způsoby, jak komunikovat s různými Otevřít/R moduly.

od našeho počátečního příspěvku popisujícího architekturu Open / R bylo přidáno několik vylepšení a nových funkcí., Jedním z hlavních architektonických zlepšení je zavedení modulu platformy. Abstrahuje části závislé na systému a vystavuje API pro podávání informací na nízké úrovni jiným modulům nebo pro naprogramování konkrétního základního hardwaru. Pro vanilla Linux uzly s software směrování, poskytuje výchozí obslužné rutiny k řešení forwarding information base (FIB) programování a rozhraní změna stavu oznámení pro Otevřené/R., Pro systémy, které jsou schopny provádět přesměrování paketů přímo v hardwaru (například naše terragraph uzly nebo expresní páteřní směrovače), modul implementuje FIB Handlery, které interagují s konkrétními hardwarovými SDK. Například v naší platformě Wedge 100 agent FBOSS přímo implementuje programovací rozhraní Open/R FIB.

následující diagram shrnuje Otevřít/R je na vysoké úrovni architektury:

  • KV-STORE: funkce jako replikované klíč-hodnota, obchod, které umožňuje distribuované komunikace a stavu replikace.,
  • Spark: provádí zjišťování sousedů na rozhraních pomocí link-Local Multicast a hlásí sousedské aktivity.
  • LinkMonitor: monitoruje systémová rozhraní prostřednictvím platformy, spravuje jiskrové relace na nich a inzeruje objevené sousedy v KV-STORE.
  • PrefixManager: provádí automatické předpony subalokace pro konfiguraci ad hoc.
  • rozhodnutí: vypočítá informace o směrování na základě topologických informací získaných prostřednictvím KV-STORE.
  • FIB: slouží jako proxy pro programování vypočítaných tras přes platformu, udržuje stav předávání (vypočítané trasy).,
  • platforma: implementuje programování tras a logiku zjišťování rozhraní pro cílovou hardwarovou platformu.

Emulace a CLI

Otevřít/R testování spoléhá na schopnost rychle nastavit velké virtuální sítě bez nutnosti skutečného hardware. Pro usnadnění tohoto, jsme postavili generic emulace knihovna — lehký obal nad systemd-nspawn — a emulace nástroj, který začne tisíce Linuxových kontejnerů a tvoří spleť tunelů, mezi nimi pomocí jediného příkazu., Chcete-li emulovat ztrátu paketů, zpoždění nebo chvění, nástroj podporuje vytváření různých síťových prostředí, jako jsou WAN nebo bezdrátové sítě, konfigurací kondicionérů provozu. To usnadňuje testování chování Open / R v různých scénářích, a pomáhá rozjet vývojáře nové otevřít/R, poskytuje bezpečný způsob, jak experimentovat.

platforma je dodávána s breeze CLI, nástrojem rozhraní příkazového řádku pro síťové inženýry pro interakci se sítí instancí Open / R., To umožňuje kontrolu chodu státu informace, jako adjacencies, uzly, předpony, trasy, čítače, a poslední konvergence statistiky, jakož i provádění kontrolních operací, jako jsou vypouštění a undraining uzlů, nastavení vlastní metriky na odkazy, a oznámení a odebrání předpony., Například, užitečná funkce je schopnost provádět real-time kontrola platforma replikované databáze stavu (KV-STORE), který umožňuje inženýrům zkontrolujte, zda nějaké aktivity v celé síti (uzlech blíží, adjacencies stržení, nebo metrické jednotky změna) pouhým připojením do jednoho uzlu.

Open / R a centralizované řízení

distribuovaný aspekt je důležitý pro spolehlivost sítě. Inteligentní rozhodnutí jsou však optimálně prováděna, když jsou vyložena centralizovanému ovladači, například pro účely dopravního inženýrství., Za to, Otevřít/R poskytuje Api umožňující vzdálené agenty naučit odkaz státu, nebo se přihlásit k odběru aktualizací databáze, jako je například upozornění na odkaz změna kapacity. Například by to mohlo být použito k výpočtu tras přepínaných štítků a jejich programování v síti z centrálního umístění. Tato funkce umožňuje kombinaci“ lokálního “ (síťového) zpracování událostí s centralizovanou logikou, jak jsme úspěšně implementovali v našem expresním páteřním projektu.,

souhrn funkcí

zatímco Open / R implementuje mnoho funkcí podobných těm, které se nacházejí v tradičních protokolech, jako jsou IS-IS a OSPF,přináší také několik jedinečných vlastností.

zde je rychlé shrnutí:

  • IPv6 první, využití IPv6 link-místní adresy pro dosažení konfigurace s nulovým dotykem. Nevyžaduje se žádná speciální konfigurace sítě.
  • Podpora nativního směrování IPv4 v případě potřeby.
  • alokace předpony ad hoc sítě a konfigurace IP pro uzly v síti z větší agregované předpony.,
  • elegantní restart, který umožňuje živé aktualizace softwaru bez narušení přesměrování provozu.
  • podpora pro vypouštění a undraining pro uzly a odkazy.
  • Dynamic link RTT metriky vypočítané a vyhlazené z aktivních sond.
  • schopnost nastavit vlastní metrické hodnoty staticky nebo dynamicky.
  • rychlá konvergence sítě s inteligentními časovači pro selhání odkazů nebo uzlů.
  • nepřetržitá kontrola stavu sítě prostřednictvím živého snímání dosažitelnosti.
  • API pro integraci s centralizovanými řadiči.,
  • Knihovna Pythonu pro interakci se všemi hlavními procesy Open / R.
  • schopnost rozšířit platformu pro šíření všech druhů doplňkových informací, a dokonce zavést vylepšení nebo variace na logiku výpočtu cesty.

Závěr

Zatímco tradiční směrovací protokoly byly předpokladem k pokroku technologií v posledních několika desetiletích, blížíme se k bodu, kde sítí je třeba vyvinout ještě rychlejší., Open / R je otevřená platforma, která usnadňuje rychlé testování a nasazení nových nápadů v měřítku, což činí naše sítě efektivnější, rychlejší nasazení a snadnější správu.

důrazně doporučujeme provozovatelům sítí, výzkumným pracovníkům, dodavatelům, inženýrům a celkové komunitě sítí používat Open/R k realizaci svých nápadů a vytváření moderních sítí, které jsou otevřenější a mohou se vyvíjet rychleji než kdy jindy.

a konečně, obrovské poděkování patří mnoha týmům, které pracovaly se základní vývojovou skupinou, aby se otevřely / R tomuto důležitému milníku., To zahrnuje tým Terragraph, Expresní páteřní tým, síťové inženýrství datových Center, tým FBOSS, tým partnerství v oblasti infrastruktury Facebook a naše externí partnery.

Share

Napsat komentář

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