- Vi er open-sourcing Open/R, en udvidelig netværksrutingplatform, der muliggør hurtig innovation i netværksfunktioner og applikationer.
- Open / r bliver brugt i Facebook ‘ s rygrad og datacenter netværk.
- platformen understøtter forskellige netværks topologier (såsom Wan, data center stoffer, og trådløse masker) samt flere underliggende hardware og software systemer (FBOSS, Arista EOS, Juniper JunOS, Linux-routing, osv.).,
- Open / R giver en platform til at formidle tilstand på tværs af netværket og tillader nye applikationer at blive bygget oven på det. Det giver også nordgående grænseflader til at tillade integration med eksterne controllere.Open / R understøtter funktioner som automatisk IP-præfiksallokering, RTT-baserede omkostningsmålinger, yndefuld genstart, hurtig konvergens og dræning/undrain-operationer.,
- Vi har arbejdet med eksterne partnere og operatører for at understøtte og bruge Open/R, og vi inviterer flere operatører, Internetudbydere, leverandører, systemintegratorer og forskere til at udnytte Open/R som en platform til implementering af nye netværksrutingideer og applikationer.
Open-sourcing Open/r
efterhånden som flere mennesker kommer online og forbruger rigere indhold, vokser kompleksiteten af de netværk, der ligger til grund for informationsstrømmen, også., Mens traditionelle routingprotokoller har fungeret godt i de sidste 30 år, kan det være udfordrende og tidskrævende at hurtigt skubbe udvidelser eller helt nye protokoller til netværksenheder. Nye fremskridt inden for routing kræver ofte omhyggeligt at udvide en eksisterende protokol eller designe nye overlay-udvidelser. Yderligere, de fleste protokoller blev oprindeligt designet baseret på begrænsede antagelser om Hard .are og soft .are-miljø fra årtier siden. For at fortsætte med at levere rige, realtid og meget engagerende brugeroplevelser via netværk er det vigtigt at fremskynde innovationen inden for routingdomænet.,
i dag er vi open-sourcing Open / R, en routingplatform, der muliggør hurtig innovation i netværksfunktioner. Open / R blev oprindeligt bygget til Terragraph wirelessireless backhaul net .ork, men vi så hurtigt dets potentielle anvendelse til Facebook ‘ s rygrad, hvor det giver mere effektiv og præcis kontrol af et globalt fibernetværk. Nu, vi er endda begyndt at rulle det ud i vores datacenter stoffer, der kører inde FBOSS og på vores Open Compute Project netværk hardware som Kile 100., Open / R er en enkelt platform, der spænder over en lang række netværksdomæner og designs, og vi søger at anvende det i endnu flere brugssager.
Facebook har taget en software-centreret tilgang til fremtiden for vores netværk, og i løbet af de sidste mange år har vi været at dele vores erfaringer med netværk fællesskabet. For eksempel, vi har en fælles kode fra Facebook ‘ s open skifter system (FBOSS); oplysninger om vores netværk, design, ledelse og overvågning værktøjer som Robotron, FCR, og fbflow; og design af vores intelligente trafik systemer såsom Hurtig Rygraden og Kant Stof., Nu, ved at frigive den moderne, let udvidelige og velprøvede Open/R-platform, agter vi yderligere at skubbe state-of-the-art i netværkssamfundet.
i denne ånd er vi glade for at kunne meddele, at vi har samarbejdet med flere eksterne partnere for at bringe Open/R til produktion, både inden for Facebook-netværket og eksternt. Open / R kører nu på Arista s .itching platforme, der integreres med open source EOS SDK, såvel som på Juniper andf.og PT. routing platforme ved hjælp af gRPC-baserede API ‘ er., Wililine Net .orks, en trådløs internetudbyder, har samarbejdet med Tieto om at implementere Open/R i produktion i sit kommercielle netværk. Vi inviterer andre leverandører, operatører, Internetudbydere, systemintegratorer, og forskere til at udnytte Åbne/R som en platform for at gennemføre nye routing domæne ideer til at gøre den næste generation af netværk, mere effektiv, mere intelligent og nemmere at betjene.
anvendelighed på tværs af forskellige netværksdomæner
Vi var ganske glade for at opdage, at Open / R er fleksibel og udvidelig nok til at håndtere mange typer netværksteknologier og topologier., Det hele startede med Terragraph, som præsenterede en udfordring for traditionelle netværksprotokoller: tusinder af trådløse noder, der kommunikerer udendørs med vejr, løv og andre forhindringer, der konstant forstyrrer forbindelsen. Et stort lag 2-mesh ville ikke være så effektivt og elastisk, mens traditionelle lag 3-protokoller, der hovedsageligt er designet til grundlæggende forbindelse og tilgængelighed, er dårligt egnet til meget variable og dynamiske udendørs forhold., “Control it all centrally” virkede som en nem designløsning, men upraktisk i betragtning af manglen på Out-of-band-styring og stor størrelse af det trådløse mesh. Således designede vi Open / R til at være den distribuerede netværksplatform oven på Terragraph-netværket, der kunne klare dets store skala og hurtige ændringer og give mulighed for hurtig udvidelighed.
da vi oprindeligt delte, at vi udviklede Open / R, nåede flere medlemmer af netværkssamfundet ud for at lære mere, især i det trådløse rum., Trådløse netværksdesignere står alle over for den samme udfordring: hvordan man spreder information om det underliggende netværk hurtigt og ofte nok, i betragtning af hvor hurtigt trådløse netværk kan ændre sig. WiLine Netværk havde begyndt at forsøge at ændre eksisterende protokoller som grundlag for sin platform, men når repræsentanter lært om Åbne/R, de og Tieto beskæftiget med Facebook for at se, om Åbne/R kunne opfylde deres behov. Deres særlige netværksdesign havde nogle nye, interessante udfordringer for Open/R, men sammen var vi i stand til at udvide Open/R for at imødekomme de nye krav., Open / R er nu en del af deres produktionsnetværk. På samme måde så andre udbydere af næste generations millimeterbølgenetværk den direkte anvendelighed af Open / R, og vi har indledt diskussioner med medlemmer af Telecom Infra-projektet (TIP).internt så vi, at Open / R kunne tackle nogle af udfordringerne i Facebook backbone-netværket. Mens rygraden er et helt andet domæne fra et metro trådløst mesh (rygraden har tusindvis af miles af fiber, der spænder over kontinenter, krydser oceaner og cirkler kloden), står det fra et netværksperspektiv over for lignende problemer., Vores nye e .press Backbone krævede kontrol af trafik og routing på tværs af mange vidt forskellige veje og hurtig reaktion på fejl. I stedet for at bruge en traditionel routingprotokol som IS-IS, besluttede vi at introducere Open/r i E .press Backbone som det distribuerede kontrolplan for netværket, hvor det ville fungere sammen med en centraliseret controller. Her giver Open / R grundlæggende forbindelse i et netværk, hurtige reaktioner på netværkshændelser og en “distribueret informationsbus” til eksport af ny information til controlleren og agenterne på netværksknuderne.,
Senest henvendte vi os til Facebook datacenter fabrics — igen, et domæne, der er meget forskelligt fra Terragraph og den globale rygrad. Ved design, stoffet er meget ensartet og tæt masket, med mange mulige stier at redegøre for og gearing. I mange år har Facebook udelukkende betjent disse store stoffer med Border Gate .ay Protocol (BGP). Mens BGP bringer sine styrker, især med hensyn til politikhåndhævelse og skala, så vi muligheder for at forbedre og forenkle designet ved at have Open/R og BGP arbejde sammen., Open / R i denne del af netværket kører oven på FBOSS og på vores egen OCP-netværkshard .are som Wededge 100.
– Routing i en moderne hardware-og software-miljø
Mange traditionelle routing protokoller blev designet i fortiden, med et stærkt fokus på at optimere i forhold til hardware-begrænset indlejrede systemer såsom Cpu ‘ er og RAM. Derudover blev protokoller designet som specialbyggede løsninger til at løse det særlige problem med routing til forbindelse, snarere end som en fleksibel soft .areplatform til at opbygge nye applikationer i netværket.,
i dag er CPU-og RAM-begrænsninger ikke længere en stor flaskehals; samtidig udvikler applikationskravene og brugssager, som netværk skal opfylde, sig hurtigt. Disse ændringer har flyttet fokus for netværksingeniører fra at optimere protokoller til hurtigt at opbygge nye applikationer, hvilket kan være udfordrende at gøre oven på eksisterende protokoller. Open / r-platformen muliggør den hurtige innovation, der kræves for at understøtte moderne netværksdesign, samtidig med at den operationelle kompleksitet reduceres.vi har designet Open / R til at køre på flere hard .areplatforme., Alle hard .are-og systemafhængige stykker er blevet abstraheret via RPC-grænseflader (for eksempel ruteprogrammering og opdagelse af link/adresse). Dette har gjort det muligt for os at køre den samme Open/R-implementering på forskellige slags hard .areenheder med forskellige ASICs eller endda forskellige CPU-familier. Denne fleksibilitet giver et lag af homogenitet oven på heterogene netværksenheder, hvilket gør netværket lettere at kontrollere og administrere.,
design til hurtig iteration gjorde det nødvendigt at inkludere robuste testprocedurer, der giver tillid og klarhed omkring hver kodeændring og ny funktionsudgivelse. Vi stræber efter at have 100 procent kode dækning for at validere hver linje af kode logik og fange fejl så tidligt som muligt. Enhedsforsøg alene er imidlertid tydeligvis ikke tilstrækkelige. For hver ændring i koden tester vi Open / R ‘ s faktiske adfærd i en stor emuleret netværkstopologi af tusindvis af noder, kører regressionstest og kontrollerer hele sæt funktioner for at sikre bagudkompatibilitet., For at gøre dette byggede vi en ramme til at spinde op store virtuelle topologier ved hjælp af lette containere som knudepunkter på tværs af flere fysiske maskiner. Vi vil også åbne denne emuleringsramme sammen med Open/r-platformen.
Open/r-designopdateringer
Som vi tidligere har beskrevet, udnytter Open / R eksisterende open source-kodebaser til to kernefunktioner. For det første udføres kodning og afkodning af kontrolplan datastrukturer ved hjælp af sparsommelighed. For det andet implementeres logikken til at udveksle data mellem netværksknuder ved hjælp af .erom.., Dette designvalg hjalp os med at eliminere en masse teknisk overhead og udvikle Open/R hurtigt og koncentrere os om funktioner på højere niveau snarere end på lavt niveau VVS. Desuden, ved hjælp af eksisterende teknologier tilladt os at skabe værktøjer og biblioteker inden for andre sprog end C++ til at interagere med Åben/R. Et eksempel er Brise CLI værktøj, som er skrevet i Python og giver mulighed for at interagere med de forskellige Åbne/R-moduler.
siden vores første indlæg, der beskriver Open / Rs arkitektur, er der tilføjet flere forbedringer og nye funktioner., En vigtig arkitektonisk forbedring er introduktionen af Platformmodulet. Det abstracts ud systemafhængige dele og udsætter API ‘ er til foder lavt niveau information til andre moduler eller til at programmere den specifikke underliggende hard .are. For vanilla Linux noder med software routing, det giver standard-handlere til-adresse forwarding information base (FIB) programmering og interface tilstand ændre meddelelser for at Åbne/R., For systemer, der er i stand til at gøre packet forwarding direkte i hardware (for eksempel, vores Terragraph noder eller Hurtig Backbone routere), modul implementerer FIB-handlere, der interagerer med specifikke hardware-sdk ‘ er. For eksempel implementerer FBOSS-agenten direkte Open/R ‘ s Fib-programmeringsgrænseflade i vores platformedge 100-platform.
følgende diagram opsummerer Open/R ‘ s arkitektur på højt niveau:
- KV-STORE: fungerer som en replikeret nøgleværdibutik, der muliggør distribueret kommunikation og tilstandsreplikation.,
- Spark: udfører naboopdagelse på grænseflader ved hjælp af Link-Local Multicast og rapporterer naboaktiviteter.
- LinkMonitor: overvåger systemgrænseflader via Platform, administrerer Gnistsessioner på dem og annoncerer opdagede naboer i kV-STORE.
- PrefixManager: udfører automatisk præfiks suballocation for ad hoc-konfiguration.
- beslutning: beregner routing oplysninger baseret på de topologiske oplysninger lært via KV-STORE.
- FIB: fungerer som en pro .y til programmering af beregnede ruter via Platform, opretholder videresendelsestilstand (beregnede ruter).,
- Platform: implementerer ruteprogrammering og grænsefladeopdagelseslogik for målhard .areplatformen.
emulering og CLI
Open / r-test er afhængig af muligheden for hurtigt at oprette store virtuelle netværk uden behov for faktisk hard .are. For at lette dette, har vi bygget en generisk emulering bibliotek — en let indpakning over systemd-nspawn
— og en emulering værktøj, der starter tusindvis af Linux beholdere og danner et net af tunneler blandt dem med en enkelt kommando., For at efterligne pakketab, forsinkelse eller jitter understøtter værktøjet oprettelsen af forskellige netværksmiljøer, såsom .an eller trådløse netværk, ved at konfigurere trafikkonditioneringsanlæg. Dette gør det nemt at teste Open/R adfærd under forskellige scenarier, og hjælper rampe op udviklere nye til Open/R, hvilket giver en sikker måde at eksperimentere.
platformen leveres med Bree .e CLI, et kommandolinjegrænsefladeværktøj til netværksingeniører til at interagere med nettet i Open / R-forekomster., Det tillader inspektion af løbende tilstandsoplysninger, såsom adjacencies, noder, præfikser, ruter, tællere og seneste konvergensstatistikker, samt udførelse af kontroloperationer såsom dræning og undraining noder, indstilling af brugerdefinerede målinger på links og annoncering og tilbagetrækning af præfikser., For eksempel, en nyttig funktion er muligheden for at udføre real-time kontrol af den platform, der er replikeret staten database (KV-BUTIK), hvilket gør det muligt for ingeniører at inspicere enhver aktivitet i hele netværket (noder, der kommer op, adjacencies rive ned, eller metriske værdier ændring) blot ved at forbinde til en enkelt node.
åben/R og centraliseret kontrol
det distribuerede aspekt er vigtigt for netværkets pålidelighed. Alligevel udføres intelligente beslutninger optimalt, når de aflastes til en centraliseret controller, såsom til trafiktekniske formål., Til det giver Open/R API ‘ er, der giver fjernagenter mulighed for at lære linktilstanden eller abonnere på databaseopdateringer, såsom meddelelser om en ændring af linkkapacitet. For eksempel kan dette bruges til at beregne etiketskiftede stier og programmere dem på netværket fra en central placering. Denne funktionalitet tillader kombinationen af” lokal ” (in-netværk) begivenhedshåndtering med centraliseret logik, som vi har implementeret med succes i vores e .press Backbone-projekt.,
oversigt over funktioner
mens Open / R implementerer mange funktioner, der ligner dem, der findes i traditionelle protokoller som IS-IS og OSPF, introducerer den også et par unikke funktioner.
Her er en hurtig oversigt:
- IPv6 først, udnytte IPv6 link-lokale adresser for at opnå nul-touch-konfiguration. Der kræves ingen speciel netværkskonfiguration.
- støtte til native IPv4 routing når det er nødvendigt.
- ad hoc-netværkspræfikstildeling og IP-konfiguration for noder i netværket fra et større samlet præfiks.,
- en yndefuld genstart, der muliggør live soft .areopdateringer uden at forstyrre videresendelse af trafik.
- støtte til dræning og undraining for noder og links.
- dynamisk link RTT målinger beregnet og udglattet fra aktive Sonder.
- evnen til at indstille brugerdefinerede metriske værdier, statisk eller dynamisk.
- hurtig netværkskonvergens med smarte back-off timere til link-eller node-fejl.
- kontinuerlig sundhedskontrol af netværket gennem levende tilgængelig sondering.
- en API til integration med centraliserede controllere.,
- et Python-bibliotek til at interagere med alle de vigtigste åbne/R-processer.
- evnen til at udvide platformen til at formidle alle mulige yderligere oplysninger, og endda at indføre forbedringer eller variationer i stien beregning logik.
konklusion
mens traditionelle routingprotokoller har været medvirkende til teknologiens fremskridt i de sidste par årtier, nærmer vi os det punkt, hvor netværk skal udvikle sig endnu hurtigere., Open / R er en åben platform, der gør det nemt hurtigt at teste og implementere nye ideer i skala, hvilket gør vores netværk mere effektive, hurtigere at implementere og lettere at administrere.
Vi opfordrer kraftigt netværksoperatører, forskere, leverandører, ingeniører og det samlede netværkssamfund til at bruge Open / R til at implementere deres ideer og opbygge moderne netværk, der er mere åbne og kan udvikle sig hurtigere end nogensinde.
og endelig går en stor tak til de mange teams, der arbejdede med kerneudviklingsgruppen for at få Open / R til denne vigtige milepæl., Dette inkluderer Terragraph-teamet, E .press Backbone-teamet, Datacenternetværksteknik, FBOSS-teamet, Facebook Infrastructure Partnerships-teamet og vores eksterne partnere.