Draai jij straks je firewall, switch of router als software in de cloud? Het kan met NFV

Netwerkfunctievirtualisatie (NFV) wordt realiteit voor onderwijs en onderzoek. In de afgelopen 2 jaar heb ik samen met collega’s gewerkt aan een NFV-infrastructuur die SURF binnenkort in productie neemt. Via deze infrastructuur kunnen we netwerkfuncties zoals switching en firewalling softwarematig in een speciale cloud uitvoeren in plaats van met fysieke apparaten op hun eigen locatie. Hoe gaat onze NFV-infrastructuur eruit zien?

Pilot met Firewall as a Service

Bij SURF zijn we al een tijd bezig met netwerkfunctievirtualisatie (NFV): een techniek waarmee je de fysieke hardware van een netwerk vervangt door virtuele, softwaregebaseerde componenten. NFV biedt de mogelijkheid functionaliteiten zoals routing, switching en firewalling te realiseren. Het grote voordeel is dat je voor dit soort functies geen dure apparatuur hoeft in te kopen, waarvan je voor 5 jaar vooruit moet bedenken hoe groot de capaciteit ervan moet zijn.

In 2018 deden we een pilot om te kijken of Firewall as a Service een levensvatbaar concept was: een firewall als dienst in de cloud aanbieden, als vervanging van de fysieke firewall-apparatuur bij de instelling. We wilden daarvoor NFV inzetten. Dat is in die pilot niet gelukt: we hebben toen uiteindelijk fysieke firewall-apparatuur gebruikt, waarvan instellingen via netwerkverbindingen (lichtpaden) gebruik konden maken. Maar inmiddels zijn we ruim 2 jaar verder en zijn we onverdroten verder gegaan om te kijken hoe we NFV succesvol in kunnen zetten in onze dienstverlening.

Zelf bouwen

In de pilot uit 2018 wilden we dus NFV inzetten, en daarvoor gebruikten we Juniper Contrail. Deze software bleek toen echter niet te voldoen aan onze eisen. Daardoor leerden we wel wat NFV-software wél moest kunnen. En we leerden dat de beste oplossing was om zelf de NFV-infrastructuur op te bouwen.

Off-the-shelf NFV-software wordt namelijk veel ingezet in de telecomindustrie, door de grote telecom-operators zoals KPN en T-mobile. Maar in die wereld gelden andere eisen en wensen dan wij hebben voor onze dienstverlening:

  • Wij willen workloads live kunnen migreren naar een andere server als dat nodig is, zónder dat de service daardoor onderbroken wordt. In de telecom beperkt een onderbreking zich meestal tot een kleine hick-up in een 4G- of 5G-verbinding. De gebruiker merkt daar niets van. Een onderbreking in de workload van een firewall heeft grotere gevolgen voor de dienstverlening: de internetverbinding van de instelling valt dan gewoon weg.
  • We werken in ons netwerk met veel snellere verbindingen dan doorgaans in de telecomsector het geval is: wij werken met verbindingen tot 100 Gbit/s. Standaard NFV-oplossingen zijn daar niet op gebouwd.

Netwerkverkeer met hoge snelheid verwerken

Het belangrijkste voor een NFV-infrastructuur is het op hoge snelheid verwerken van netwerkverkeer op standaard hardware. Gewone servers zijn hier niet out of the box geschikt voor. Daarom moeten we de netwerkkaarten instrueren dat ze pakketjes niet op interrupt-basis (‘hoi, ik ben een netwerkpakketje, wat ga je met me doen?’) moeten verwerken, maar op polling-basis (‘kom maar door met die pakketjes’). Daarna zorgen we ervoor dat deze netwerkpakketjes zo snel mogelijk op een makkelijk bereikbare plaats in het geheugen worden geplaatst.

Binnen onze NFV-infrastructuur gebruiken we hier OpenStack Train voor, en versnellen we de dataplane met behulp van VPP: Vector Packet Processing. Binnen VPP gebruiken we de RDMA-driver die speciaal geschreven is om onze Mellanox ConnectX-5 netwerkkaarten aan te sturen op polling-basis. VPP is ontwikkeld door Cisco en gedoneerd aan de open source community. Daar is later een plug-in voor geschreven waarmee we VPP kunnen koppelen aan OpenStack.

Tot 100 Gbit/s per server

Door deze technieken en software te gebruiken kunnen we tot 100 Gbit/s per server verwerken. En om het verkeer op de juiste plek in het geheugen te krijgen, verbruiken we maar 2 CPU-kernen. De rest is beschikbaar om in te zetten voor firewalling, routing of switching.

De netwerkkaarten van de servers zijn op hun beurt redundant aangesloten op twee Mellanox SN2100 100Gbit/s-switches. We gebruiken MultiChassis Link Aggregation (MC-LAG) om ervoor te zorgen dat we hier geen single point of failure hebben. De Mellanox SN2100 chassis zijn vervolgens aan het SURF-netwerk verbonden met 2 verbindingen, 1 naar beide Juniper MX2008 chassis. Voor loop-preventie maken we hier gebruik van Ethernet Segment Identifiers (ESI’s), een eigenschap van de EVPN-techniek die we binnen het SURF-netwerk toepassen.

64 logische CPU-kernen

Het netwerkgedeelte is daarmee rond. De volgende vraag was welke servers we zouden gebruiken om de firewall-software op te draaien. We hebben gekozen voor Lenovo SR635 servers met een EPYC2-processor van AMD. We beschikken daarmee over 32 CPU-kernen, waarmee we 64 logische kernen kunnen creëren. Dat is veel, maar we hebben ook veel power nodig. We gebruiken 8 logische kernen voor hostzaken, zoals het draaien van het OS en het verwerken van het verkeer in de dataplane. Dan hebben we dus 56 kernen over voor de eigenlijke dienstverlening. In totaal hebben we 6 van deze Lenovo-servers staan, verdeeld over onze twee locaties AMS1 en AMS2. Met zijn zessen vormen ze 1 groot cluster.

SURF NFV-infrastructuur architectuur

Overzicht van de NFV-infrastructuur van SURF. Als voorbeeld zien we een instelling die een virtuele firewall afneemt in de NFV-infrastructuur: in rood de route die binnenkomend verkeer aflegt vanaf het internet naar de firewall;  in groen de route van de firewall naar de instelling.

Automatisch functies opzetten en monitoren

Nu we dit allemaal hebben ingericht, kan de NFV-infrastructuur gaan draaien. Dat draaien gaat bijna volautomatisch. Als een instelling een firewall (of andere functie) in zijn netwerk wil configureren, kan hij dat zelf doen via een portal. De firewall wordt vervolgens geheel automatisch opgezet, daar komt niemand van SURF aan te pas. De firewall wordt daarna ook automatisch gemonitord. Het opzetten en monitoren gebeurt met het open source softwarepakket Open Source MANO dat beschikbaar wordt gesteld door ETSI .

Bijna gereed voor productie

We zijn nu bijna gereed voor productie met onze NFV-infrastructuur. We willen er niet alleen firewall-dienstverlening op aanbieden, maar straks ook virtuele switches, routers enzovoort. En we willen onze eigen dienst eduVPN via NFV gaan laten draaien. We denken daar veel performancewinst mee te behalen, omdat we met NFV het verkeer efficiënter kunnen afhandelen en makkelijker kunnen op- en afschalen dan met onze huidige oplossing.

Al met al hopen we dat onze NFV-structuur instellingen de aanschaf bespaart van veel kastruimte verslindende, snel verouderende apparaten die maar 1 kunstje kunnen.

Heb je belangstelling om onze NFV-structuur te gaan gebruiken? Of wil je er meer over weten? Neem dan contact met me op via eyle.brinkhuis@surf.nl.

You can also read this article in English.

Author

Comments

Dit artikel heeft 0 reacties