Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Met de visie Open Network Stack werkt SURF aan een netwerkplatform gebaseerd op open-sourcesoftware en open hardware (white label switches). Hiermee willen we minder afhankelijk worden van leveranciers, sneller kunnen innoveren en het internet veiliger maken. Hierbij maken we gebruik van open source community projecten en werken we nauw samen met onderzoekers van aangesloten instellingen.

Afhankelijkheid van leveranciers verkleinen en sneller innoveren

Het doel van de Open Network Stack is om minder afhankelijk te worden van de bekende grote commerciële leveranciers. Als we in de huidige situatie willen experimenteren met een nieuw netwerkprotocol, dan moeten we wachten tot een leverancier dit protocol in zijn routers ondersteunt. Dat doen leveranciers meestal pas als een groot deel van hun klanten daarom vraagt. Wij willen echter al in een veel vroeger stadium kunnen experimenteren met nieuwe protocollen. Door te werken met open-sourcesoftware en white label switches wordt dat mogelijk: iedereen in de community kan dan nieuwe protocollen toevoegen aan het open-sourceproject.

Het internet veiliger maken

Een tweede doel is het veiliger maken van het internet. Door open-sourcesoftware te gebruiken kan iedereen de broncode bekijken en op zoek gaan naar achterdeurtjes en bugs. En vervolgens de software veiliger maken door de bugs op te lossen.

De bouwstenen

Om bovenstaande doelen te bereiken maken we gebruik van een aantal community projecten op basis van open source en open hardware. Een belangrijke belangrijk element daarin is de opkomst van disaggregatie van netwerkswitches die in de laatste afgelopen jaren ontstaan is. Hierbij is de hardware (switch) losgekoppeld van de software (het Network Operating System, ofwel NOS). Het voordeel is dat je voor zowel de hardware als de software de voor jou beste leverancier kunt kiezen (“best of breed”). Er zijn bedrijven die zich puur op de hardware richten, zoals Accton/EdgeCore, Quanta, Inventec, Delta Networks. Daarnaast zijn we bedrijven die zich puur op de software richten, zoals Cumulus Networks en Pica8. Maar er zijn ook bedrijven die zowel hardware als software leveren, zoals Mellanox en Dell.

Open hardware (white label switches)

De laatste jaren zijn er switches op de markt gekomen die de ONIE (Open Network Install Environment) boot loader ondersteunen. Tijdens booten kun je naar een "install mode" gaan waarin je een NOS op de switch kunt laden. De switch stuurt daarbij een DHCP request waarna een server naast het IP adres ook de locatie van het NOS image meegeeft.

P4 switches

De meeste ONIE switches werken nog met "fixed function" ASIC's. Daarbij zijn de netwerkprotocollen die de switch herkent (de functies) ingebakken (fixed) in de ASIC. Ook de lookup tabellen hebben een vooraf vastgestelde functie, zoals een ACL tabel, een MAC tabel, een host route tabel, een longest prefix tabel, etc. Indien je een nieuw netwerkprotocol toe wilt voegen dan moet je er vaak een nieuwe ASIC ontwikkelenontwikkeld worden. Dat is een process dat al gauw zo'n vijf jaar in beslag neemt en zeer kostbaar is.

Sommige switches hebben echter een programmeerbare chip ASIC (bv de Tofino chip ASIC van Barefoot Networks). Daarin kan de parser voor het herkennen van netwerkprotocollen geprogrammeerd worden. Ook de lookup tabellen zijn programmeerbaar. Op die manier kan ieder willekeurig protocol een (nieuw) protocol vrij eenvoudig in de chip ASIC geprogrammeerd worden. Dit programmeren kan d.m.v. een domeinspecifieke hogere programmeertaal: P4.

SONiC (Software for Open Network in the Cloud)

Een van de open source Network Operating Systems die we bekijken is SONiC. Dit project is ontstaan bij Microsoft en wordt in hun Azure cloud gebruikt. Het is inmiddels echter een community project waar meerdere partijen aan mee ontwikkelen. Het NOS is verantwoordelijk voor de aansturing van basis functies zoals fans, voedingen, LED's en optics. Maar het bevat ook een L2/L3 netwerk stack. Het L3 deel van de netwerk stack is Free Range Routing (FRR), een "fork" van Quaggua.

FRRouting (FRR)

FRR is een goed voorbeeld van een open source project op het gebied van networking. FRR  iondersteunt FRR heeft een zeer actieve community en ondersteunt o.a BGP, OSPF en IS-IS. FRR wordt steeds vaker gebruikt als platform waar referentie-implementaties van nieuwe protocollen en extensies van bestaande protocollen aan toegevoegd worden. Dit gebeurt door ontwikkelaars die vaak ook in de IETF actief zijn.

Cumulus Networks (een leverancier van een commercieel NOS) gebruikt FRR als routing stack in hun NOS. Cumulus heeft een beleid waarbij ze uitbreidingen die ze voor hun eigen  commerciële NOS schrijven zoveel mogelijk als open source delen (upstreamen) met bv Linux, maar ook met FRR. Zo heeft Cumulus bv VRF en EVPN ondersteuning toegevoegd aan Linux en FRR.

 

Ronald van der Pol (16 augustus 2018)

Meedoen?

Heb je ideeën of wil je experimenten met P4-switches op het SURFnet-testbed? Meld je dan aan via nip@surfnet.nl