Experimenteren met nieuwe internet-infrastructuren: SCION

SIDN Labs aangesloten op SCIONLab

Abstracte tunnel opgebouwd uit gekleurde puntjes

We experimenteren met een opkomende internetarchitectuur genaamd “SCION”. Zo willen we meer inzicht krijgen in wat de voor- en nadelen ervan zijn ten opzichte van het huidige Internet en evalueren hoe deze architectuur in de praktijk functioneert. In deze blog praten we je kort bij over hoe het er nu voor staat en kijken we vooruit naar wat we bij SIDN Labs met betrekking tot SCION in de planning hebben.

Nieuwe internetvormen

Vertrouwen in netwerkdiensten bevorderen door veilige, stabiele en transparante internetten

Een tijdje geleden hebben we een uitgebreid artikel geschreven over het onderzoeksprogramma 2STiC, waarin we samen met NLnet Labs, SURF, TU Delft, de Universiteit van Amsterdam en Universiteit Twente experimenteren met opkomende internetarchitecturen en open programmeerbare netwerken. Het doel van 2STiC is de ontwikkeling en evaluatie van technieken voor het vergroten van de veiligheid, stabiliteit en transparantie van internetcommunicatie, met name voor kritieke toepassingen als intelligente transportsystemen, smarthomes en smartgrids. Onze lange-termijnambitie is het opzetten van een expertisecentrum op het gebied van betrouwbare en weerbare internetten en de Nederlandse (en Europese) netwerkcommunity's te helpen om op dit gebied voorop te lopen.

SCION

Een van de internetarchitecturen waar we naar kijken is SCION (Scalability, Control, and Isolation on Next-Generation Networks), ontwikkeld door het team van professor Adrian Perrig aan ETH Zürich in Zwitserland. SCION heeft als doel het internet stabieler en veiliger te maken door middel van het isoleren van trust in zogeheten Isolation Domains (ISD’s), die kunnen worden omschreven als verzamelingen van autonome systemen. Daarnaast hebben gebruikers van SCION meer controle over en inzicht in de inter-domein routes die hun verkeer neemt (dus door welke autonome systemen het verkeer gaat). We besloten om SCION als eerste onder de loep te nemen, omdat we gebruik konden maken van een actief onderhouden software-implementatie en het beschikt over een actieve community en een openbaar internationaal testbed om verbinding mee te maken.

Aansluiting op SCIONLab

Een van de eerste dingen die we deden, was het netwerk van SIDN Labs aansluiten op SCIONLab, het internationale SCION-testbed dat zo'n 30 locaties met elkaar verbindt. Binnen het SCION-netwerk zijn we onderdeel van de permanente infrastructuur door middel van een autonoom systeem dat we beheren. Dit autonome systeem is weer onderdeel van het Europese ISD (zie onderstaande afbeelding). We zijn verbonden met meerdere andere autonome systemen om redundantie te creëren en te kunnen experimenteren met multi-path routing. Op dit moment verloopt de verbinding nog via een IP-tunnel, maar we werken aan een directe verbinding met het testbed. Dat houdt in dat we straks geen gebruik meer zullen maken van het huidige Internet (met name BGP en de bijbehorende IP-routing), maar dat de verbinding met het SCION-netwerk uitsluitend via SCION-routing werkt (en dus zonder IP-routing).

De huidige topologie van SCIONLab met rechtsonder ons AS.

Wil je weten waar de SCIONLab-locaties gevestigd zijn, bekijk dan de wereldkaart op de SCION-website (met daarop ook onze node in Arnhem, zie onderstaande afbeelding).

SCIONLab-locaties in Noordwest-Europa.

SCION-toepassingen

Aangezien SCION een nieuwe protocolstack introduceert, hebben we een aantal toepassingen ontwikkeld om vertrouwd te raken met de bijbehorende protocollen, software en infrastructuur. Een voorbeeld daarvan is een toepassing waarmee je eenvoudig verbindingen via SCION tot stand kunt brengen, te vergelijken met netcat. Om meer inzicht te krijgen in de manier waarop pakketten zich door het SCION-netwerk bewegen, hebben we ook een toepassing ontwikkeld die inzichtelijk maakt welk pad je pakketten door een op SCION gebaseerd internet volgen, oftewel door welke autonome systemen ze gaan (zie onderstaand screenshot).

Grafische weergave van verkeersroutes door het SCION-netwerk (voor dit experiment waren we verbonden met een AS bij ETH Zürich).
Grafische weergave van verkeersroutes door het SCION-netwerk (voor dit experiment waren we verbonden met een AS bij ETH Zürich).

SCION-in-P4

Om te kijken hoe SCION het er in de praktijk vanaf brengt, zijn we het SCION-protocol aan het implementeren in P4. P4 staat voor Programming Protocol-Independent Packet Processors en is een domeinspecifieke programmeertaal die speciaal bedoeld is voor het parsen en verwerken van netwerkpakketten op hardware. Met P4 is het mogelijk om op maat gemaakte protocollen zoals de SCION-stack te programmeren op ondersteunde netwerkapparaten. Een voorbeeld hiervan zijn switches die gebaseerd zijn op de Barefoot Tofino, die we ook gebruiken bij SIDN Labs (zie onderstaande afbeelding). Het voordeel van onze hardwarematige aanpak is dat deze (1) de daadwerkelijke inzet van SCION (data plane en control plane) op whitebox-apparatuur mogelijk maakt en (2) leidt tot betere prestaties dan met de huidige software-implementatie van de SCION-stack. We hebben een initiële P4-implementatie van SCION ontwikkeld; die was er nog niet toen we met 2STiC begonnen, maar inmiddels is ETH Zürich zelf ook bezig met een P4-implementatie, zij het voor een ander platform (een op een FPGA gebaseerde netwerkkaart). Op dit moment werken de elementaire forwarding functions van SCION in de simple switch van de open source P4-simulator. Tijdens de ontwikkeling kwamen we verschillende bugs tegen in de open source P4-compiler (zoals te verwachten bij zulke nieuwe geavanceerde technologie), waar we oplossingen voor hebben aangedragen. De volgende grote stap waar we mee bezig zijn is om onze SCION-in-P4-implementatie aan de praat te krijgen op echte switches die zijn gebaseerd op de chip van Barefoot.

Onze P4-programmeerbare switch, die gebaseerd is op een Tofino-chip van Barefoot.

Samenwerking met ETH Zürich

In april zijn we op bezoek gegaan bij het SCION-team in Zürich. Daar hebben we een aantal van onze eerste resultaten laten zien en onze plannen wat betreft SCION gepresenteerd. Op hun beurt vertelde het SCION-team van ETH hoe hun onderzoek ervoor stond en wat zij allemaal van plan waren. Dit leidde tot vruchtbare discussies en tal van ideeën voor samenwerking, zoals het uitwisselen van ervaringen met het omzetten van de SCION-protocolstack naar hardware met behulp van P4 (zie hierboven) en het opzetten van een BGP-loze verbinding tussen SIDN Labs en SCIONLab. De laatste paar maanden hebben we een actieve bijdrage geleverd aan de verbetering van de SCION-architectuur door aanbevelingen te doen voor wijzigingen in de SCION-pakketheaders. Hierdoor zouden deze gemakkelijker op hardware verwerkt kunnen worden. Daarnaast hebben we commentaar gegeven op voorstellen voor de volgende versie van de SCION-protocolstack. Momenteel bespreken we deze wijzigingen en aan- en opmerkingen met het SCION-team en het ziet ernaar uit dat ze (deels) in de volgende versie van SCION worden opgenomen. Ook hebben we diverse patches voor de kernsoftware van SCION aangedragen.

Volgende stappen

De komende paar maanden bouwen we een meer geavanceerde demonstrator die laat zien wat SCION wel en niet te bieden heeft vergeleken met het huidige Internet. Ook zijn we betrokken bij het opzetten van een nationaal P4-testbed voor 2STiC, waar we samen met de andere 2STiC-partners in een van onze toekomstige blogs verslag over uitbrengen. In onze volgende blog gaan we het ook hebben over onze ervaringen met andere opkomende internetontwerpen, zoals RINA, waarvoor we begin september langs zijn gegaan bij het onderzoeksteam van i2CAT in Barcelona.