Een nationale programmeerbare infrastructuur om te experimenteren met next-generation netwerken

Nieuwe eisen op het vlak van veiligheid, stabiliteit en transparantie

Auteurs: Paola Grosso (Universiteit van Amsterdam), Cristian Hesselman (SIDN Labs en Universiteit Twente), Luuk Hendriks (NLnet Labs), Joseph Hill (Universiteit van Amsterdam), Ronald van der Pol (SURF), Victor Reijs (SIDN Labs), Roland van Rijswijk-Deij (NLnet Labs en Universiteit Twente), Joeri de Ruiter (SIDN Labs), Caspar Schutijser (SIDN Labs), Henk Steenman (AMS-IX)

We hebben het eerste Nederlandse inter-domein P4-programmeerbare netwerk opgezet. Het bestaat uit 6 verschillende sites, met elkaar verbonden via het optische netwerk van SURF. Met dit netwerk kunnen we experimenteren met nieuwe inter-domeinnetwerkfuncties en opkomende internetarchitecturen. Dit is nodig omdat toekomstige netwerktoepassingen - zoals coöperatief rijden, intelligente transportsystemen en chirurgie op afstand - andere eisen stellen op het gebied van veiligheid, stabiliteit, transparantie en autonomie. Het P4-testbed is onderdeel van het 2STiC-programma. In deze blog gaan we kort in op de opzet van het testbed, geven we voorbeelden van hoe we het hebben gebruikt en blikken we vooruit op onze plannen voor de komende 6 maanden.

Experimenteren met nieuwe internet-infrastructuren: SCION Nieuw gezamenlijk onderzoeksprogramma voor veiligere, stabielere en transparantere internetcommunicatie Vertrouwen in netwerkdiensten bevorderen door veilige, stabiele en transparante internetten

Nieuwe eisen op het vlak van veiligheid, stabiliteit en transparantie

Een poosje terug publiceerden we een uitgebreid artikel over 2STiC (spreek uit als “to stick”). Met dit onderzoeksprogramma richten we ons op de vraag hoe we veiligheid, stabiliteit en transparantie van de communicatie tussen netwerken kunnen vergroten, zodat samenlevingen controle over hun netwerkinfrastructuren houden. We proberen dat doel te bereiken door te experimenteren met en bij te dragen aan nieuwe netwerkfuncties en opkomende internetarchitecturen, zoals SCION, RINA en NDN, te ontwikkelen, ermee te experimenteren en eraan bij te dragen. We bouwen op programmeerbare netwerken, waarvoor de apparatuur commercieel op dit moment beschikbaar wordt en dat zo kan dienen als instrument bij het prototypen en testen van deze opkomende internettechnologieën zonder in te leveren op snelheid of schaalbaarheid.

De 2STiC-partners voorzien dat nieuwe internettypen gebruikt gaan worden naast het huidige Internet en daar een aanvulling op vormen. De nieuwe internettypen bieden hierbij meer veiligheid, stabiliteit en transparantie voor kritieke applicaties zoals intelligente transportsystemen, gezondheidszorg, waterbeheer en energienetwerken. Op de lange termijn is het onze ambitie om een expertisecentrum op het gebied van vertrouwde en weerbare internetten op te zetten. Zo willen we de Nederlandse en Europese netwerkcommunity's helpen om op dit boeiende gebied voorop te lopen. 2STiC is een samenwerkingsprogramma van AMS-IX, NLnet Labs, SIDN Labs, SURF, Technische Universiteit Delft, Universiteit van Amsterdam en Universiteit Twente.

2STiC-testbed

Toen we vorig jaar met 2STiC begonnen, bouwden we als eerste het 2STiC-testbed: een nationaal programmeerbaar netwerk dat de 2STiC-partners met elkaar verbond. Met behulp van dit programmeerbare netwerk kunnen we experimenteren met

  • nieuwe internetinfrastructuren;

  • open programmeerbare netwerkapparatuur;

  • nieuwe netwerkfuncties voor bijvoorbeeld het bepalen en verifiëren van paden; en

  • network slicing over verschillende administratieve domeinen.

Voor de programmeerbaarheid maken we gebruik van P4, een domein-specifieke programmeertaal waarmee netwerkontwikkelaars de data-plane van apparatuur voor pakket-forwarding kunnen programmeren. Onderzoeksnetwerken hebben steeds meer interesse in het evalueren van P4-apparaten. In deze blog belichten we 2 van de use cases die we onderzochten: de ondersteuning van protocol-implementatie in hardware en path tracking. Dankzij P4 kunnen we ieder willekeurig (internetwerk)protocol op de hardware in het testbed implementeren, als het maar compatibel is met de fysieke laag van het Ethernet-frame. Daarmee is het bij uitstek geschikt voor onderzoek naar nieuwe netwerkfuncties en (niet-IP-)protocollen, zoals SCION en RINA. Het gebruik van programmeerbare hardwareswitches en interfaces vormt een goede aanvulling op onderzoek aan de hand van netwerksimulators en softwareswitches. Dit omdat het de mogelijkheid biedt om resultaten te verifiëren op hardware, bijvoorbeeld door te laten zien dat een protocol op fysieke switches kan draaien.

Figuur 1. 2STiC-testbed.

Figuur 1 laat het 2STiC-testbed zien, dat momenteel 6 van de 7 2STiC-consortiumpartners met elkaar verbindt. We maken gebruik van een stervormig netwerk met de SURF-locatie in Amsterdam als middelpunt. Zo kunnen we verschillende netwerktopologieën configureren. Elke node bevat een P4-programmeerbare switch met een Barefoot Tofino ASIC, die wordt afgebeeld in Figuur 2. We kunnen de nodes uitbreiden met aanvullende hardware, uiteenlopend van een eenvoudige server met een programmeerbare SmartNIC van Netronome tot een compleet testbed voor onderzoeksgroepen.

Figuur 2. Een van de programmeerbare switches in het 2STiC-testbed (rood omrand).

We sloten het 2STiC-testbed ook aan op het i-P4EN-initiatief (Figuur 3), dat P4-programmeerbare testbedden in andere landen, zoals Canada, Taiwan en de Verenigde Staten, met elkaar verbindt. We verwachten dat dit initiatief use cases aantrekt uit gegevensintensieve wetenschappelijke instellingen en netwerkonderzoekinstituten van over de hele wereld. Het 2STiC-testbed maakt zo deel uit van een wereldwijd initiatief ter ondersteuning van onderzoek naar gedistribueerde netwerken (ook op 100 Gbit/s-paden). Zo ontstaat een ontwikkelomgeving voor geavanceerde empirische experimenten op wereldwijde schaal.

Figuur 3. International P4 Experimental Networks (i-P4EN) (in navolging van International P4 Networking Testbed).

In de volgende paragrafen vertellen we hoe we het 2STiC-testbed tot nu toe hebben gebruikt, namelijk voor de implementatie van het SCION-protocol op P4-hardware en om de paden te traceren die gegevens door een IP-internet afleggen.

Use case 1: De implementatie van SCION in P4

SIDN Labs werkt aan de implementatie van SCION in P4 (zie de blog over ons onderzoek naar SCION). SCION (Scalability, Control, and Isolation on Next-Generation Networks) is een internetarchitectuur ontwikkeld door de Network Security Group van ETH Zürich in Zwitserland en hun spin-off-bedrijf Anapaya. Het doel van SCION is de internetconnectiviteit stabieler en veiliger maken door middel van het isoleren van trust in zogeheten Isolation Domains (ISD’s). Dit kunnen we het best omschrijven 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 te onderzoeken, omdat we gebruik konden maken van een actief onderhouden software-implementatie. Daarnaast heeft het een actieve community en een openbaar internationaal testbed.

We begonnen onze implementatie met de elementaire forwarding-functionaliteit voor de simple switch van de open source P4-simulator. Momenteel werken we aan de implementatie van het SCION-protocol voor de Barefoot Tofino ASIC’s die we gebruiken in het 2STiC-testbed. Als dat klaar is, kunnen we SCION uitproberen op het testbed en beoordelen hoe het functioneert op hardware. We geven onze bevindingen terug aan Barefoot en het SCION-team van ETH Zürich en Anapaya. Op grond van wat we tot nu toe geleerd hebben, stelden we verschillende wijzigingen in het SCION-protocol voor, die hardware-implementatie makkelijker en minder omslachtig moeten maken.

Verder zetten we een BGP-loze verbinding op tussen SIDN Labs en SCIONLab, het internationale SCION-testbed. De BGP-loze verbinding moet het mogelijk maken om experimenten met de eigen inter-domein routeringsfuncties van SCION uit te voeren zonder afhankelijk te zijn van bestaande routeringstechnieken of daardoor te worden beïnvloed. Daarnaast verwachten we deze verbinding in de toekomst te kunnen gebruiken om het 2STiC-testbed op SCIONLab aan te sluiten.

Use case 2: Path tracking

Bepaalde nieuwe technologieën (waaronder SCION) zijn zo ontworpen dat ze (als onderdeel van hun routeringskeuzes) bepalen hoe het verkeer zich door het netwerk beweegt of heeft bewogen. Dat houdt in dat de route wordt getraceerd. Met behulp van de softwareswitch, met BMv2, INT (In-band Network Telemetry) en de SmartNIC's van Netronome verifieerde de Universiteit van Amsterdam of het verkeer de verwachte/vereiste route aflegde of een ander pad nam dan de bedoeling was. Van het pad dat een pakket aflegt, worden 2 dingen geregistreerd: welke nodes gepasseerd worden (node recording) en op basis waarvan bij die nodes wordt bepaald hoe het pakket wordt doorgezonden (forwarding state logging).

Node recording

Bij elke node voegen we de Node Identifier aan de IPv6-extensieheader toe. Het volledige pad dat door een pakket is afgelegd, wordt geëxtraheerd uit de IPv6-extensieheader in de laatste node van het pad. Figuur 4 laat dit proces zien, waar de IPv6-extensieheader bij de laatste node de 3 Node Identifiers bevat: A, B en C.

Figuur 4. Toevoegen van informatie over gepasseerde nodes aan de IPv6-extensieheader.

Forwarding state logging

Bij dit scenario gaan we ervan uit dat voor elke node geldt dat de routeringsinformatie opgeslagen wordt en beschikbaar is. Bij elke node wordt in de IPv6-extensieheader opgenomen welke versie van de routeringstabel is gebruikt om te bepalen hoe het pakket werd doorgezonden. Op basis van de node waar het pakket een netwerk binnenkwam, kan het volledige pad worden gereconstrueerd. In Figuur 5 geeft het veld Node Identifier het punt van binnenkomst in het netwerk aan; het veld version bevat de versie van de routeringstabel op het punt van binnenkomst in het netwerk (“V1” in het versieveld). Het veld trackable wordt gebruikt om versiewijzigingen op het pad te signaleren (wat te zien is aan de “1” bij uitgangsnode C, waar de routeringstabel verandert van V1 in V2).

Figuur 5. Toevoegen van doorzendinformatie aan de IPv6-extensieheader.

Bevindingen

Zoals de hierboven beschreven use cases illustreren, hebben we al veel geleerd door het gebruik van het 2STiC-testbed. Met behulp van programmeerbare netwerkapparatuur zijn we in staat nieuwe protocollen te implementeren en deze op hoge snelheid te draaien. Maar nieuwe netwerktechnologieën implementeren in hardware is niet eenvoudig. Bij het ontwerpen van protocollen is vaak geen rekening gehouden met hoe ze functioneren op snelle hardware. Daarnaast vergt het programmeren van snelle hardware extra vaardigheden, omdat er heel andere principes en algoritmen aan ten grondslag liggen dan bij generieke softwareprogrammering. Het 2STiC-consortium probeert de kloof tussen hardware- en protocolontwikkelaars te overbruggen en heeft alle bevindingen teruggekoppeld naar de betreffende ontwikkelaars. Daaruit zijn verschillende aanpassingen voortgekomen, die we ook weer op het 2STiC-testbed gaan uitproberen. Dankzij de monitoringtools kregen we meer inzicht in de manier waarop INT kan worden geïmplementeerd. De opgedane ervaring deelden we met de OPSAWG/IPPM-groepen en brachten we in in discussies over headerextensies in de IETF. Diezelfde ervaring komt goed van pas, als we andere internetprotocollen onder de loep nemen. Verder presenteerden we de resultaten van de in-band monitoringscenario’s met behulp van een poster tijdens de Internet Measurement Conference 2019.

In de planning

De komende maanden concentreren we ons onder andere op het volgende:

Een upgrade van het 2STiC-testbed door middel van optische schakelingen

Het 2STiC-testbed is nu opgebouwd rond schakelingen gebaseerd op 100 Gbit/s Ethernet (PBB-TE). Om minder afhankelijk te worden van de transportprotocollen op een lagere laag, vervangt SURF de PBB-TE door optische schakelingen, die 200 Gbit/s mogelijk maken. Behalve meer snelheid biedt het 2STiC-testbed in de toekomst volledige transparantie voor protocollen als IP en Ethernet.

De interconnectie van SCION-netwerken

De interconnecties die worden verkregen met een IXP (Internet eXchange Point) verhogen de redundancy en beschikbaarheid voor inter-domein routes, die door SCION verder kunnen worden uitgebreid. Daarom zijn we van plan om de AMS-IX-community te betrekken bij het gebruik van SCION (of andere nieuwe technologieën) op het AMS-IX-interconnectieplatform.

Contact

Wil je het 2STiC-testbed gebruiken of wil je eraan meedoen, neem dan contact met ons op via testbed@2stic.nl.