Is OpenFlow een mislukking?

Is OpenFlow “dood” en een “mislukking”, zoals sommige mensen zeggen? Mijn antwoord hierop is een duidelijk: “Nee!” In deze blog laat ik zien dat OpenFlow volledig nieuwe marktsegmenten binnen networking heeft gecreëerd en dat de manier waarop wij tegenwoordig over networking denken erdoor is veranderd. SURFnet experimenteert al vanaf 2011 met OpenFlow en heeft sinds 2016 een nationaal OpenFlow-testbed draaien dat ook door onderzoekers en ICT medewerkers van Nederlandse onderwijs- en onderzoeksinstellingen kan worden gebruikt voor testen.

De beginperiode van OpenFlow

OpenFlow is begonnen op Stanford University. De Ethane [1] netwerkarchitectuur uit Martin Casado’s promotieonderzoek was een van de concepten die als basis dienden voor OpenFlow. Het doel van Ethane was om beter om te gaan met netwerkbeveiliging door een gecentraliseerde controller security policies te laten afdwingen. Dat kon voor iedere individuele netwerksessie gedaan worden. OpenFlow werd voorgesteld in een artikel uit april 2008[2]. Met OpenFlow konden netwerkonderzoekers met echte hardware switches, onder reële omstandigheden (i.p.v. via een netwerksimulator) en op “line-rate” experimenteren.

Verschillende leveranciers van ethernetswitches hebben daarna hun ethernetswitches geschikt gemaakt voor OpenFlow. Naast de gevestigde leveranciers van netwerkapparatuur hebben startups zoals Pica8, een nieuw marktsegment van ‘pure’ OpenFlow-switches aangeboord. Na Pica8 kwamen al snel NoviFlow, Corsa en andere bedrijven.

Opkomst van de controllers

Een belangrijk concept binnen OpenFlow is het scheiden van het “data plane”en “control plane”. Het data plane zorgt louter voor het doorsturen van pakketten van de ene poort naar de andere, en dat is het enige dat een OpenFlow-switch doet. Het control plane bepaalt via welk pad het verkeer door een netwerk verstuurd wordt. Binnen een OpenFlow-omgeving wordt het control plane uitgevoerd door een controller die op een aparte server draait. De afgelopen jaren zijn er veel (open source) controllers ontwikkeld (NOX, POX, Trema, Beacon, Floodlight, Ryu enz.).

In 2013 werd het project OpenDaylight aangekondigd, niet lang daarna gevolgd door ONOS. Dit zijn grote open source projecten die meer zijn dan alleen maar OpenFlow. De term Software Defined Networking (SDN) werd geïntroduceerd om deze architecturen te omschrijven die verdergaan dan OpenFlow. Verschillende leveranciers bieden nu commerciële SDN-producten aan op basis van deze open source projecten. Er kwamen ook anderen met alternatieve SDN-architecturen en opeens was iedereen bezig met SDN. Gevolg is dat SDN tegenwoordig een betekenisloos acroniem is geworden, indien het niet vergezeld gaat  met een uitleg wat er precies bedoeld wordt.

 “Network disaggregation”

Dankzij OpenFlow is er ook een discussie ontstaan over hoe een netwerkarchitectuur zou moeten worden opgezet en draaiende gehouden. Nick McKeown, medeauteur van beide bovengenoemde artikelen, hield in 2011 een goede presentatie over de concepten en ideeën achter OpenFlow. Hij vergeleek computing met networking en liet zien welke voordelen de splitsing tussen hardware en software binnen computing had. Het gesloten bedrijfseigen mainframe werd vervangen door open hardware en API’s. Dat leidde tot snelle innovaties en een grote markt (zie figuur 1). Het doel was om ook bij netwerkapparatuur de hardware (switches) te scheiden van de software (firmware die de switch aanstuurt) vergezeld van open API’s (zie figuur 2).

Schematische weergave van het gesloten eigen mainframe vervangen door open hardware en API's.
Figure 1 .The closed proprietary mainframe replaced by open hardware and APIs.
Schematische weergave van de hardware (schakelaars) scheiden van de software (firmware die de schakelaar aanstuurt).
Figure 2. Separating the hardware (switches) from the software (firmware driving the switch).

Hoe staan we er nu voor, tien jaar nadat OpenFlow werd voorgesteld? De concepten van scheiding tussen data en control plane, ‘best of breed’-producten en open API’s hebben inderdaad hun intrede gedaan en geleid tot een nieuw marktsegment binnen networking: whitelabel-switches. Een whitelabel-switch is een switch die firmware van verschillende fabrikanten kan gebruiken. Zodoende kan een switch van leverancier A worden gekocht en firmware van leverancier B worden gebruikt om tot een ‘best of breed’-oplossing te komen. Verscheidene bedrijven verkopen dit soort switches en richten zich uitsluitend op de verkoop van de hardware. Andere bedrijven richten zich juist op de software die dergelijke switches moet aansturen. Dit wordt “network disaggregation” genoemd, het scheiden van hardware en firmware.

Leveranciers van whitelabel-switches zijn bijvoorbeeld Accton/EdgeCore, Dell, DNI/Agema, Interface Masters, Mellanox, Quanta enz. De firmware die op deze switches draait, is afkomstig van commerciële bedrijven, zoals Culumus, IP Infusion, Pica8 enz., of van open source projecten, zoals FBOSS, Open Network Linux, OpenSwitch, SONiC enz.

In deze nieuwe wereld van netwerk disaggregation kan nu dus zowel voor de hardware als de software/firmware een ‘best of breed’-oplossing worden gekozen.

Het programmeerbare data plane

Met OpenFlow kunnen forwardingtabellen rechtstreeks en met veel flexibiliteit worden beheerd. In traditionele routers en switches worden de forwardingtabellen gevuld door routing- en switchingprotocollen. Deze protocollen beperken de informatie in de forwardingtabellen, oftewel, een router stuurt verkeer door op basis van het IP-adres van de bestemming, en een switch stuurt verkeer door op basis van het MAC-adres van de bestemming. Met OpenFlow kan het doorsturen echter gebeuren op basis van elke combinatie van velden binnen een pakket.

Toch speelt ook bij OpenFlow nog de beperking van chips (ASIC’s) in de routers en switches. Die hebben namelijk een beperkt aantal vaste functies en bepalen daarmee welke velden in het pakket door OpenFlow kunnen worden gebruikt. Deze ASIC’s zijn ontworpen voor een beperkt aantal bestaande protocollen. Voor een nieuw protocol is er meestal een nieuwe ASIC nodig, en de ontwikkeling daarvan duurt vele jaren. Vandaar dat er de laatste tijd een groeiende behoefte is ontstaan aan programmeerbare chips en programmeerbare data planes. Dit soort chips kunnen worden geprogrammeerd zodat ze nieuwe protocollen ondersteunen. Bekende voorbeelden daarvan zijn FPGA’s en NPU’s, die door verschillende leveranciers in gebruik zijn genomen. Er zijn echter ook nieuwe chips op de markt gekomen, zoals de Cavium XPliant, de Barefoot Tofino, de Innovium Teralynx enz. De Tofino-chip kan geprogrammeerd worden met P4, een domeinspecifieke taal voor netwerkprotocollen[3]. OpenFlow zorgde voor toegang van de forwardingtabellen. P4 doet hetzelfde, maar kan daarbij ook pakket parsers definiëren. Op die manier kan een switch die P4 ondersteunt, ook een nieuw protocol verwerken, door daarvoor een P4 parser te schrijven. In een volgende blog wordt P4 verder besproken.

Ten slotte

De afgelopen jaren hebben we binnen networking de opkomst gezien van een nieuw marktsegment voor whitelabel-switches die zijn gebaseerd op het concept van de scheiding tussen hardware en software. Sommige bedrijven specialiseren zich in de hardware, en andere in de software.

De gemeenschappelijke projecten OpenDaylight en ONOS hebben tientallen leden en honderden ontwikkelaars. Ze hanteren het OpenFlow-concept van logisch gecentraliseerde controllers en er zijn inmiddels verscheidene commerciele producten op gebaseerd.

En tot slot zien we dat er een nieuw marktsegment ontstaat voor programmeerbare chips voor de forwardinglaag. Verschillende startups  zijn in deze markt gestapt, maar ook gevestigde bedrijven bewegen deze kant op. Veel mensen zijn van mening dat het einde van de ASIC met vaste functies in zicht is.

En dit alles werd door OpenFlow in gang gezet. Toch niet slecht voor een mislukking.

Referenties

[1] Martin Casado, Michael J. Freedman, Justin Pettit, Jianying Luo, Nick McKeown en Scott Shenker. 2007. Ethane: taking control of the enterprise. SIGCOMM Comput. Commun. Rev. 37, 4 (August 2007),   1-12.

[2] Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker en Jonathan Turner. 2008. OpenFlow: enabling innovation in campus networks. SIGCOMM,  Comput. Commun. Rev. 38, 2 (March 2008), 69-74.

[3] Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese en David Walker. 2014. P4: programming protocol-independent  packet processors. SIGCOMM Comput. Commun. Rev. 44, 3 (July 2014),  87-95.

Meer informatie

Het SURFnet-testbed is een proeftuin die SURFnet heeft ingericht voor experimenten met bijvoorbeeld Software Defined Networking (SDN). Als ICT-specialist, netwerkbeheerder of onderzoeker kun je hierop onder andere apparatuur testen en ideeën en concepten uitproberen en evalueren.

Auteur

Reacties

Dit artikel heeft 0 reacties