- open-sourcing Open / R, egy bővíthető hálózati routing platform, amely lehetővé teszi a gyors innováció hálózati funkciók és alkalmazások.
- Open / R a Facebook gerinc-és adatközpont-hálózataiban használatos.
- a platform támogatja a különböző hálózati topológiák (például WANs, adatközpont Szövet, vezeték nélküli háló), valamint több mögöttes hardver és szoftver rendszerek(FBOSS, Arista EOS, Juniper JunOS, Linux routing, stb.).,a
- Open/R platformot biztosít az állapot terjesztésére a hálózaton keresztül, és lehetővé teszi, hogy új alkalmazások épüljenek rá. Azt is előírja, northbound interfészek, hogy az integráció a külső vezérlők.
- Az Open / R olyan funkciókat támogat, mint az automatikus IP-előtag-kiosztás, az RTT-alapú költségmutatók, a kecses újraindítás, a gyors konvergencia, valamint a csatorna/undrain műveletek.,
- dolgoztunk azon, hogy a külső partnerek, üzemeltetők támogatása, valamint a Nyílt/R, kérlek, több, vállalkozók, Szolgáltatók, kereskedők, rendszer integrátorok, valamint a kutatók, hogy a tőkeáttétel Nyitott/R platform végrehajtási új hálózati útválasztási ötletek, alkalmazások.
open-sourcing Open/R
mivel egyre több ember jön online és fogyaszt gazdagabb tartalmat, az információáramlás alapjául szolgáló hálózatok összetettsége is növekszik., Míg a hagyományos útválasztási protokollok jól működtek az elmúlt 30 évben, kihívást jelenthet és időigényes lehet A kiterjesztések vagy teljesen új protokollok gyors beillesztése a hálózati eszközökbe. Az Útválasztás új előrehaladása gyakran szükségessé teszi egy meglévő protokoll gondos kiterjesztését vagy új átfedési kiterjesztések tervezését. Továbbá, a legtöbb protokollt eredetileg korlátozott hardver-és szoftverkörnyezeti feltételezések alapján tervezték évtizedekkel ezelőtt. Ahhoz, hogy a hálózatokon keresztül továbbra is gazdag, valós idejű és rendkívül magával ragadó felhasználói élményt nyújtsunk, fontos felgyorsítani az innovációt a routing tartományban.,
ma nyílt forráskódú Open / R, egy útválasztási platform, amely lehetővé teszi a hálózati funkciók gyors innovációját. Az Open / R-t eredetileg a Terragraph vezeték nélküli backhaul hálózatra építették, de gyorsan láttuk annak lehetséges használatát a Facebook gerincéhez, ahol hatékonyabb és pontosabb irányítást biztosít egy globális szálhálózat felett. Most még az adatközpontba is bevezetjük, az FBOSS belsejében futunk, valamint a nyílt számítási projekt hálózati hardverén, mint például a Wedge 100., Az Open / R egy olyan platform, amely a hálózati tartományok és tervek széles skáláját öleli fel, és még több felhasználási esetben szeretnénk alkalmazni.
a Facebook szoftverközpontú megközelítést alkalmazott a hálózatunk jövőjével kapcsolatban, az elmúlt években pedig megosztottuk a tanulásainkat a hálózati közösséggel. Például, mi a közös kód a Facebook nyitva kapcsolási rendszer (FBOSS); részleteket a hálózat tervezési, gazdálkodási, valamint a monitoring eszközök, mint a Robotron, FCR, valamint fbflow; valamint tervez az intelligens közlekedési ellenőrző rendszerek, mint például az Expressz Gerincét, s Edge Szövet., Most, a modern, könnyen bővíthető és jól bevált Open/R platform felszabadításával, tovább kívánjuk tolni a legkorszerűbb technológiát a hálózati közösségben.
ebben a szellemben izgatottan jelentjük be, hogy több külső partnerrel együtt dolgozunk az Open/R gyártásának érdekében, mind a Facebook hálózaton belül, mind külsőleg. Az Open / R most Arista kapcsolóplatformokon fut, integrálva a nyílt forráskódú EOS SDK-val, valamint a Juniper QFX és PTX routing platformokon grpc alapú API-k segítségével., WiLine Networks, egy vezeték nélküli internetszolgáltató, dolgozott Tieto telepíteni Open / R a termelés a kereskedelmi hálózat. Szeretnénk meghívni más gyártók, szolgáltatók, az Isp-k, a rendszer integrátorok, valamint a kutatók, hogy a tőkeáttétel Nyitott/R platform végrehajtási új domain routing ötlet, hogy a következő generációs hálózatok hatékonyabb, több intelligens, könnyebben kezelhető.
alkalmazhatóság különböző hálózati tartományokban
örömmel tapasztaltuk, hogy az Open / R rugalmas és bővíthető ahhoz, hogy sokféle hálózati technológiát és topológiát kezeljen., Az egész a Terragraph-szal kezdődött, amely kihívást jelentett a hagyományos hálózati protokollok számára: több ezer vezeték nélküli csomópont kommunikál a szabadban az időjárással, a lombozattal és más akadályokkal, amelyek folyamatosan zavarják a kapcsolatot. Egy nagy Réteg, 2 háló nem lenne olyan hatékony, rugalmas, míg a hagyományos Layer 3 protokollok, célja főleg az alapvető kapcsolatok, valamint elérhetőség, rosszul alkalmas arra, hogy nagyon változó, dinamikus kültéri körülmények között., “Irányítsd mindezt központilag” úgy tűnt, mint egy egyszerű tervezési megoldás, de nem praktikus, mivel a hiányzó Out-of-band menedzsment, valamint a nagy méretű, a vezeték nélküli háló. Így az Open/R-t úgy terveztük, hogy az elosztott hálózati platform legyen a Terragraph hálózat tetején, amely képes megbirkózni a nagy léptékű és gyors változásokkal, és lehetővé teszi a gyors nyújthatóságot.
amikor először megosztottuk, hogy Open/R fejlesztünk, a hálózati közösség több tagja kinyújtotta a kapcsolatot, hogy többet megtudjon, különösen a vezeték nélküli térben., A vezeték nélküli hálózat tervezői mind ugyanezzel a kihívással néznek szembe: hogyan lehet gyorsan és elég gyakran terjeszteni az alapul szolgáló hálózatra vonatkozó információkat, tekintettel arra, hogy a vezeték nélküli hálózatok milyen gyorsan változnak. A WiLine Networks elkezdte a meglévő protokollok módosítását platformjának alapjaként, de amikor a képviselők tudomást szereztek az Open/R-ről, ők és Tieto a Facebook-al együtt érdeklődtek, hogy az Open/R megfelel-e az igényeiknek. Sajátos hálózati kialakításuknak új, érdekes kihívásai voltak az Open/R számára, de együtt képesek voltunk kiterjeszteni az Open/R-t az új követelmények kielégítésére., Az Open / R most a termelési hálózat része. Hasonló értelemben a következő generációs, milliméteres hullámú hálózatok más szolgáltatói is látták az Open/R közvetlen alkalmazhatóságát, és megbeszéléseket kezdtünk a Telecom Infra projekt (TIP) tagjaival.
belsőleg láttuk, hogy az Open/R képes kezelni a Facebook gerinchálózatának néhány kihívását. Míg a gerinc egy teljesen más tartomány, mint egy metró vezeték nélküli háló (a gerinc több ezer mérföldre a rost, hogy span kontinensek, cross óceánok, kör a világon), egy hálózati szempontból szembesül hasonló problémák., Az új expressz gerincünk a forgalom ellenőrzését és az útvonalválasztást tette szükségessé számos különböző útvonalon, és gyors választ adott a meghibásodásokra. Ahelyett, hogy hagyományos útválasztási protokollt használnánk, mint például az IS-IS, úgy döntöttünk, hogy az Open / R-t az expressz gerincbe vezetjük be, mint a hálózat elosztott vezérlősíkját, ahol egy központosított Vezérlővel együtt fog működni. Itt az Open / R alapvető kapcsolatot biztosít egy hálózatban, gyors reakció a hálózati eseményekre, valamint egy “elosztott információs busz”, amely új információkat exportál a hálózati csomópontokon lévő vezérlőbe és ügynökökbe.,
legutóbb a Facebook adatközpontjára fordítottuk figyelmünket-ismét egy olyan domainre, amely nagyon különbözik a Terragraphtól és a globális gerinctől. A design, a szövet rendkívül egységes, sűrűn háló, sok lehetséges utak elszámolni, valamint a tőkeáttétel. A Facebook évek óta kizárólag a Border Gateway Protocol (BGP) segítségével üzemelteti ezeket a nagyszabású szöveteket. Míg a BGP hozza erősségeit, különösen a politika érvényesítése és léptéke tekintetében, lehetőséget láttunk arra, hogy az Open/R és a BGP együttműködésével javítsuk és egyszerűsítsük a tervezést., Az Open / R a hálózat ezen részén az FBOSS tetején, valamint saját OCP hálózati hardverünkön, például a Wedge 100-on fut.
Routing egy modern hardver-és szoftverkörnyezetben
a múltban számos hagyományos routing protokollt terveztek, amelyek nagy hangsúlyt fektettek a hardver-korlátozott beágyazott rendszerek, például a CPU-k és a RAM optimalizálására. Ezenkívül a protokollokat célirányos megoldásokként tervezték, hogy megoldják a kapcsolatirányítás konkrét problémáját, nem pedig rugalmas szoftverplatformként, hogy új alkalmazásokat építsenek a hálózatba.,
ma a CPU és a RAM korlátai már nem jelentenek jelentős szűk keresztmetszetet; ugyanakkor az alkalmazás követelményei és felhasználási esetei, amelyeknek a hálózatoknak meg kell felelniük, gyorsan fejlődnek. Ezek a változások eltolták a hálózati mérnökök figyelmét a protokollok optimalizálásától az új alkalmazások gyors felépítéséig,ami kihívást jelenthet a meglévő protokollok tetején. Az Open / R platform lehetővé teszi a modern hálózati tervek támogatásához szükséges gyors innovációt, miközben csökkenti a működési összetettséget.
Az Open/R-t úgy terveztük, hogy több hardverplatformon is futhasson., Az összes hardver-és rendszerfüggő darabot RPC interfészeken (például útvonalprogramozás és link/címfeltárás) keresztül absztrahálták. Ez lehetővé tette számunkra, hogy ugyanazt a nyílt/R implementációt futtassuk különféle hardvereszközökön, különböző ASIC-ekkel vagy akár különböző CPU-családokkal. Ez a rugalmasság egy réteg homogenitást biztosít a heterogén hálózati eszközök tetején, megkönnyítve a hálózat vezérlését és kezelését.,
a gyors iteráció megtervezése szükségessé tette olyan robusztus tesztelési eljárások bevezetését, amelyek bizalmat és egyértelműséget biztosítanak minden kódváltozás és új funkciókiadás körül. Arra törekszünk, hogy 100% – os kód lefedettség, hogy érvényesítse minden sor kód logika, fogás hibák a lehető leghamarabb. Az egységtesztek azonban önmagukban nyilvánvalóan nem elegendőek. A kód minden változásához teszteljük az Open / R tényleges viselkedését több ezer csomópont nagy emulált hálózati topológiájában, regressziós teszteket futtatunk, valamint ellenőrizzük a teljes funkciókészletet a visszamenőleges kompatibilitás biztosítása érdekében., Ehhez felépítettünk egy keretet a nagy virtuális topológiák spinálására, könnyű konténerek segítségével, mint csomópontok több fizikai gépen. Ezen emulációs keretrendszer nyílt forráskódú lesz a nyílt / R platformmal együtt.
Open/R tervezési frissítések
ahogy azt korábban leírtuk, az Open / R kihasználja a meglévő nyílt forráskódú kódbázisokat két alapvető funkcióhoz. Először is, a kódolás, dekódolás vezérlő sík adatstruktúrák segítségével történik takarékosság. Másodszor, a hálózati csomópontok közötti adatcsere logikája a ZeroMQ használatával valósul meg., Ez a tervezési választás segített kiküszöbölni egy csomó technikai rezsi és fejleszteni nyílt / R gyorsan, koncentrálva magasabb szintű funkciók helyett az alacsony szintű vízvezeték. Ezen túlmenően, a meglévő technológiák lehetővé tette számunkra, hogy hozzon létre eszközök és könyvtárak más nyelveken, mint a c++, hogy kölcsönhatásba lépnek a nyílt / R. egy példa a Breeze CLI eszköz, amely írt Python és biztosítja a módját, hogy kölcsönhatásba lépnek a különböző nyílt/r modulok.
Az Open/R architektúráját leíró kezdeti bejegyzésünk óta számos fejlesztés és új funkció került hozzáadásra., Az egyik legfontosabb építészeti fejlesztés a Platformmodul bevezetése. Kivonja a rendszerfüggő alkatrészeket, és API-kat tesz ki, hogy alacsony szintű információkat továbbítson más moduloknak, vagy programozza az adott mögöttes hardvert. A vanília Linux csomópontok szoftver routing, ez biztosítja az alapértelmezett kezelői cím továbbítása információs bázis (FIB) programozás és interfész állapot változás értesítéseket Open/R., A rendszerek, amelyek képesek a csomag továbbítása közvetlenül a hardver (például a Terragraph csomópontok vagy Express Gerinc routerek), a modul hajtja végre FIB rakodók, hogy kölcsönhatásba lépnek a konkrét hardver SDKs. Például a Wedge 100 platformon az FBOSS ügynök közvetlenül megvalósítja az Open / R FIB programozási felületét.
az alábbi diagram összefoglalja az Open/R magas szintű architektúráját:
- KV-STORE: replikált kulcsértéktárolóként működik, amely lehetővé teszi az elosztott kommunikációt és az állapot replikációját.,
- Spark: a szomszéd felfedezését interfészeken végzi a Link-Local Multicast segítségével, és beszámol a szomszéd tevékenységeiről.
- LinkMonitor: platformon keresztül figyeli a rendszer interfészeit, ezeken kezeli a Spark munkameneteket, és reklámozza a KV-STORE-ban felfedezett szomszédokat.
- PrefixManager: automatikus előtag alallokációt hajt végre ad hoc konfigurációhoz.
- határozat: a KV-STORE-on keresztül megszerzett topológiai információk alapján számítja ki az útválasztási információkat.
- FIB: proxyként szolgál a számítógépes útvonalak platformon keresztüli programozásához, fenntartja a továbbítási állapotot (számított útvonalak).,
- Platform: útvonalprogramozást és interfészfeltárási logikát valósít meg a cél hardverplatformhoz.
emuláció és CLI
Open / R tesztelés a nagy virtuális hálózatok gyors beállítására támaszkodik, anélkül, hogy tényleges hardverre lenne szükség. Ennek megkönnyítése érdekében felépítettünk egy általános emulációs könyvtárat — egy könnyű csomagolást a systemd-nspawn
felett -, valamint egy emulációs eszközt, amely több ezer Linux konténert indít el, és köztük egy alagúthálót képez egyetlen paranccsal., A csomagvesztés, késleltetés vagy jitter emulálásához az eszköz támogatja a különböző hálózati környezetek, például a WAN vagy a vezeték nélküli hálózatok létrehozását a forgalmi klímaberendezések konfigurálásával. Ez megkönnyíti, hogy teszteljék Open / R viselkedését a különböző forgatókönyvek, segít rámpa fel a fejlesztők új Open / R, amely egy biztonságos módja annak, hogy a kísérlet.
a platformhoz tartozik a Breeze CLI, egy parancssori interfész eszköz a hálózati mérnökök számára, hogy kölcsönhatásba lépjenek a nyílt/R példányok hálójával., Lehetővé teszi a futó állapotinformációk, például adjacenciák, csomópontok, előtagok, útvonalak, számlálók és a legújabb konvergencia statisztikák ellenőrzését, valamint olyan vezérlési műveletek elvégzését, mint a csomópontok elvezetése és le nem vonása, egyedi metrikák beállítása a linkeken, valamint az előtagok bejelentése és visszavonása., Például, egy hasznos tulajdonsága, hogy képes valós idejű ellenőrzés a platform replikált állami adatbázis (a KV-STORE), amely lehetővé teszi a mérnökök, hogy ellenőrizze minden olyan tevékenység, az egész hálózat (csomópontok jönnek, adjacencies lebontják, vagy metrikus értékek megváltoztatása) csak a csatlakozás egyetlen csomópont.
Open/R és centralizált vezérlés
az elosztott szempont fontos a hálózat megbízhatósága szempontjából. Mégis, az intelligens döntéseket optimálisan akkor hajtják végre, amikor egy központi vezérlőbe kerülnek, például forgalomtechnikai célokra., Ehhez az Open / R API-kat biztosít, amelyek lehetővé teszik a távoli ügynökök számára, hogy megtanulják a kapcsolat állapotát, vagy feliratkozzanak adatbázis-frissítésekre, például a kapcsolatkapacitás változásának értesítéseire. Például ezt fel lehet használni a címkekapcsolt útvonalak kiszámítására, valamint a hálózaton egy központi helyről történő programozására. Ez a funkció lehetővé teszi a “helyi” (hálózaton belüli) eseménykezelés kombinációját központosított logikával, amint azt az Express gerinchálózat projektünkben sikeresen megvalósítottuk.,
funkciók összefoglalása
míg az Open / R számos olyan funkciót valósít meg, amelyek hasonlóak a hagyományos protokollokhoz, mint például az IS-IS és az OSPF, néhány saját egyedi funkciót is bevezet.
itt van egy gyors összefoglaló:
- IPv6 első, kihasználva IPv6 link-helyi címek elérése nulla érintésű konfiguráció. Nincs szükség speciális hálózati konfigurációra.
- natív IPv4 útválasztás támogatása, ha szükséges.
- ad hoc hálózati prefix allokáció és IP konfiguráció a hálózati csomópontokhoz egy nagyobb aggregált előtagból.,
- kecses újraindítás, amely lehetővé teszi az élő szoftverfrissítéseket a forgalom továbbításának megzavarása nélkül.
- a csomópontok és kapcsolatok elvezetésének és le nem vonásának támogatása.
- Dynamic link RTT metrics computed and smoothed out from active probes.
- az egyéni metrikus értékek statikusan vagy dinamikusan történő beállításának képessége.
- gyors hálózati konvergencia intelligens Back-Off időzítőkkel kapcsolat-vagy csomóponthibák esetén.
- a hálózat folyamatos egészségügyi ellenőrzése az élő elérhetőség vizsgálata révén.
- egy API a központosított vezérlőkkel való integrációhoz.,
- egy Python könyvtár, amely kölcsönhatásba lép az összes fő Open/R folyamattal.
- a platform kiterjesztésének képessége mindenféle további információ terjesztésére, sőt az útvonal számítási logikájának javítására vagy variációira is.
következtetés
míg a hagyományos routing protokollok szerepet játszottak a technológia fejlődésében az elmúlt évtizedekben, közeledünk ahhoz a ponthoz, ahol a hálózatoknak még gyorsabban kell fejlődniük., Az Open / R egy nyílt platform, amely megkönnyíti az új ötletek gyors tesztelését és telepítését, ezáltal hatékonyabbá, gyorsabbá, kezelhetőbbé teszi hálózatainkat.
javasoljuk, hálózati üzemeltetőknek, kutatók, kereskedők, mérnökök, valamint a teljes hálózati közösség használja Nyitott/R megvalósítani ötleteiket építeni a modern hálózatok, amelyek több nyitott, fejlődni gyorsabban, mint valaha.
végül hatalmas köszönet illeti a sok csapatot, amelyek a core development csoporttal dolgoztak annak érdekében, hogy megnyíljanak/R erre a fontos mérföldkőre., Ide tartozik a Terragraph Csapat, Az Express gerinchálózat, az adatközpont Hálózatmérnöksége, az FBOSS csapat, a Facebook infrastruktúra partnerségek csapata, valamint külső partnereink.