Het Nederlandse deel van de Noordzee kent zo’n 130 olie- en gasproductieplatforms. Deze platforms voorzien ons ‘rond de klok’ van gas (en een beetje olie), bestemd voor binnenlandse consumptie en export. Een groot deel van de platforms is onbemand en wordt volledig op afstand bestuurd. Zo’n dertig platforms zijn bemand; daar werken en verblijven doorlopend mensen. Afhankelijk van de olie- of gasmaatschappij en het doel is men per verblijf 1 of 2 weken onafgebroken ‘op zee’.

 

Productieplatformen zijn erg groot, toch wordt de hoeveelheid ruimte na een paar dagen alsmaar kleiner als je die deelt met vijf tot tien collega’s die ook weleens een ander verzetje zoeken dan werken alleen. Mens-erger-je-niet gaat vervelen en er is al snel behoefte aan ander vertier; ook al ben je maar een paar dagen offshore voor onderhoud aan een onbemand platform.

 Middels een door KPN opgezet en onderhouden netwerk van straalzenders kan een platform communiceren met de informatiesystemen op het hoofdkantoor aan wal. De beschikbare

bandbreedte is beperkt en netwerkverkeer ten behoeve van ‘kantoorautomatisering’ mag geen last ondervinden van enig ander verkeer.

 Tegen deze achtergrond werd een oplossing gerealiseerd die de bemanning voorziet van vrij internet. Hiermee kan men communiceren met thuis (E-mail, Skype, Facetime) en zich kan vermaken (surfen, Youtube, Uitzendinggemist, Spotify) tijdens de vrije uren aan boord van het platform.

 Een globale opsomming van de wensen en eisen waar een oplossing aan voldoet is:

 

– WiFi met de ‘standaard’ diensten als DHCP server, DNS e.d.

– Geavanceerd bandbreedtemanagement

– Filtering van ongewenste content

– Verkeer volledig scheiden van het verkeer bedoeld voor kantoorautomatisering

– Betaalbaar

– Gemakkelijk (en ook remote) beheersbaar

 

Na wat puzzelwerk zijn we uitgekomen bij een oplossing met Mikrotik apparatuur en de hierop geïnstalleerde RouterOS software. RouterOS is proprietary software, gebaseerd op Linux. Mikrotik is een in 1995 opgericht bedrijf uit Letland dat zich bezig houdt met WiFi en

achterliggende netwerktechnologie. In 2002 is Mikrotik begonnen met het produceren van hardware, de zogenaamde ‘RouterBOARD’. De voor dit hardware platform geschreven software ‘RouterOS’ is ook in licentie aan te schaffen om op eigen hardware te installeren.

 

De oplossing

 

De uiteindelijke oplossing bestaat uit een centrale Ubuntu server, die als VPN concentrator en gateway optreedt. De WAN interface is aangesloten op een ADSL verbinding naar het publieke Internet. De LAN interface is aangesloten op het bedrijfsnetwerk dat in verbinding staat met het door KPN beheerde off-shore netwerk. Op ieder bemand platform wordt een RouterBOARD geplaatst. Ieder RouterBOARD legt een VPN verbinding naar de VPN concentrator aan de wal. Op ieder RouterBOARD wordt een lokale WiFi Hotspot opgezet. Alle verkeer van de eindgebruikers wordt — volledig gescheiden van het normale verkeer — over de VPN tunnel met de gateway getransporteerd.  De Ubuntu gateway gebruikt xl2tpd voor L2TP en Racoon voor key exchanges. OSPF wordt verzorgd door Quagga. 

 VPN Tunnel

 Om het ‘vrije internet’-verkeer te scheiden van het verkeer voor automatisering is gekozen voor het gebruik van VPNs. Om precies te zijn voor L2TP (Layer 2 Tunneling Protocol) in combinatie met IPSec. In de keuze ben je overigens geheel vrij, aangezien RouterOS, bijna ieder denkbaar VPN protocol ondersteunt.

L2TP wordt gebruikt voor de authenticatie en het ‘tunnelen’, IPSec verzorgt de encryptie van het verkeer. Uit ervaring weten we dat de MikroTik RouterBOARDs een enorme throughput hebben. In deze specifieke oplossing neemt de throughput duidelijk af als gevolg van de IPSec

encryptie. De processor blijkt de bottleneck te zijn. Overigens is de throughput die we halen met de gekozen RouterBOARDs meer dan voldoende.

Als we een platform uitrusten met een RouterBOARD, dan zijn drie configuratie commando’s genoeg om een blijvend VPN met de centrale Linux server in te richten. Dat kan natuurlijk net zo gemakkelijk naar een andere RouterBOARD.

 Routering

 De oplossing voor de energiemaatschappij omvat enkele tientallen platforms en hierdoor evenveel subnetten. Er is gekozen voor subnetten bestaande uit 254 bruikbare IP adressen (ofwel een klasse C netwerk met subnetmask 255.255.255.0).

Je kunt natuurlijk op ruim dertig routers statische routering invoeren van de tientallen netwerken, maar dat is vrij arbeidsintensief. We hebben daarom gebruik gemaakt van het

routeringsprotocol OSPF om te zorgen dat alle RouterBOARD routers informatie over ‘hun netwerken’ automatisch uitwisselen.

Hierdoor kun je zonder veel beheersinspanning een extra locatie (lees: RouterBOARD) toevoegen. Het subnet dat gebruikt wordt op de nieuwe locatie wordt automatisch bekend gemaakt aan alle routers binnen het netwerk.

Met het beperken van beheersinspanningen kun je maar beter direct beginnen; juist als de schaal nog klein is en de noodzaak ervoor er eigenlijk nog niet is. Tegen de tijd dat het gebouwde netwerk vanwege succes groeit, is het meestal te laat om vereenvoudigingen aan te brengen. 

Bandbreedte management middels Quality of Service

Omdat de bandbreedtes van en naar de productieplatforms beperkt zijn en netwerkverkeer ten behoeve van automatisering altijd voorrang krijgt, passen we Quality of Service toe. RouterOS heeft hiervoor grofweg twee mogelijkheden, ‘simple queues’ en ‘queue trees’. De

‘simple queues’ werken zoals de naam doet vermoeden; er kan een maximaal beschikbare bandbreedte worden ingesteld voor een verbinding en RouterOS doet de rest. We willen echter meer controle hebben op de bandbreedte, om ervoor te zorgen dat de voor ‘vrij internet’ beschikbare bandbreedte eerlijk wordt verdeeld. Zo is het niet de bedoeling dat een enkele gebruiker die Uitzendinggemist.nl bekijkt, andere gebruikers erg in de weg zit.  Uitzendinggemist.nl gebruikt namelijk Adaptive Streaming, waarbij met regelmaat gemeten wordt hoeveel bandbreedte er beschikbaar is. Als die op zo’n meetmoment vrij hoog is, dan zal Uitzendinggemist een tijd lang al die bandbreedte proberen te gebruiken. Als die periode aan de lange kant is, dan komen andere gebruikers nauwelijks aan bod.

 

 

Wij gebruiken daarom ‘queue trees’, die veel mogelijkheden tot het beïnvloeden van de beschikbare bandbreedte bieden. Voor deze oplossing hebben we het verkeer ingedeeld in vier klassen, iedere klasse heeft een maximale totale bandbreedte en het totaal van die vier klassen wordt ook weer gelimiteerd. De vier klasses zijn:

 1. Prioriteitsverkeer

2. Web browsen, mail ophalen en basisdiensten zoals DNS

3. VPN

4. Web downloaden (P2P, updates, e.d.), mail downloaden, FTP en overige diensten.

Via zogenaamde ‘mangle’ firewallregels ‘taggen’ we IP pakketten op basis van TCP en UDP poortnummers conform bovenstaande classificatie. Op basis van ‘tags’ die IP pakketten binnen de router meekrijgen wordt vervolgens Quality of Service toegepast.

 

Firewall

Het ‘whitelisten’ van TCP en UDP poorten is een manier om de beperkte bandbreedte netjes te verdelen. De firewall in het RouterBOARD zal dan alleen verkeer op die poorten toelaten.

Hiermee beperken we onder andere peer-to-peer verkeer. Verder voeren we sanity checks uit op het uitgaande verkeer. Daarmee voorkomen we problemen met bijvoorbeeld configuratiefouten in de gateway. Als private range IP-adressen als gevolg van een configuratiefout in de gateway op de wal naar het publieke net gerouteerd zouden worden, dan voorkomen de sanity checks dit vooraf. Ook beperken we de impact van bijvoorbeeld printerdrivers die contact zoeken met de printer in het thuisnetwerk van de gebruiker.

De firewall logs worden, net als alle andere logs, doorgestuurd daar de logging infrastructuur op het bedrijfsnetwerk aan wal voor analyse. We gebruiken hiervoor Syslog-ng.

Dynamische adreslijsten van de firewall

RouterOS biedt de mogelijkheid om met adreslijsten te werken. Hierin kun je veelgebruikte IP adressen en IP netwerkadressen groeperen onder een verzamelnaam. Je kunt daarbij denken aan ‘trusted hosts’ of ‘priority hosts’. Je hoeft in de firewall regels zelf dan enkel aan te geven dat je alle verkeer toestaat van en naar ‘trusted hosts’. De adreslijsten kun je overal in de configuratie gebruiken; daar waar een lijst van een of meer IP-adressen ingevuld kan worden, kun je ook een adreslijst invullen.

Een heel krachtige functionaliteit is het gebruik van dynamische adreslijsten. De firewall kan, op basis van een matchende firewallregel, hosts toevoegen aan een adreslijst. Middels deze functionaliteit kun je vrij makkelijk IPS-achtige (Intruder Prevention System) trucs uithalen.

In onderstaand voorbeeld plaatsen we door de eerste firewall regel iedere host die meer dan 100 verbindingen probeert te maken op de adreslijst ‘black_list’. Hosts in die lijst worden er na een dag weer uitgehaald.  In de regel hierop volgend ‘dropt’ de firewall al het verkeer van hosts in die dynamisch opgebouwde adreslijst.

/ip firewall filter chain=input action=add-src-to-address-list protocol=tcp address-list=black_list address-list-timeout=1d connection-limit=100,32

/ip firewall filter chain=input action=drop protocol=tcp src-address-list=black_list

 

DNS

 De snelheid van DNS, het omzetten van servernamen naar IP adressen, bepaalt in belangrijke mate hoe snel eindgebruikers de internet verbinding ervaren. Het blijkt dat het versnellen van de DNS meer effect heeft dan het vergroten van de beschikbare bandbreedte.

Om deze reden wordt de ‘caching nameserver’ zo dicht mogelijk bij de eindgebruiker geplaatst: op locatie. Een DNS query naar de DNS server op de lokale RouterBOARD (platform) wordt gemiddeld 30 milliseconden sneller beantwoord dan die naar de DNS server op de gateway (aan wal). Ten opzichte van een query naar een DNS server op het internet, is er zelfs een gemiddelde snelheidswinst van 50 milliseconden per query!

De RouterBOARDs op de platforms zijn dus ingericht als caching DNS server. Dit betekent dat een DNS query naar bijvoorbeeld ‘www.facebook.com’ alleen wordt doorgestuurd naar de externe DNS resolver als deze informatie niet in zijn cache staat. Het antwoord op de query wordt vervolgens door de DNS server op de RouterBOARD aan de eindgebruiker gegeven.

De externe DNS resolver draait op de gateway (aan wal). Deze resolver haalt zijn informatie dus op bij de ‘authoritative’ nameservers van de bewuste domeinnaam en cachet natuurlijk ook weer op zijn beurt. Daardoor zijn we minder afhankelijk van derden en hebben meer controle over de snelheid. We gebruiken Bind9 als resolver.

Tenslotte

In dit artikel beschrijven we slechts één specifieke use case, maar het aantal mogelijkheden met deze veelzijdige ‘netwerktoverdoos’ is enorm. Tientallen collega consultants delen inmiddels mijn enthousiasme voor dit fantastische product. Zo zijn er complete netwerken opgezet over VPN’s tussen MikroTiks van collega’s om op die manier één groot privénetwerk te vormen. In dit geval niet voor een belangrijke zakelijke toepassing, maar gewoon omdat deze apparatuur je — betaalbaar — de mogelijkheid biedt om kennis en ervaring op te doen met veel verschillende netwerktechnologieën.

 Erwin Vrolijk is consultant bij Snow en is verantwoordelijk voor de op het MikroTik gebaseerde oplossing bij een grote energiemaatschappij. Snow levert netwerk-, security- en UNIX-    specialisten.

 Meer informatie kun je vinden op de websites:

– MikroTik: http://www.mikrotik.com

– Quagga: http://www.nongnu.org/quagga/

– Bind9: http://www.bind9.net

 

 

[kader]

Beheren van een RouterBOARD

 

RouterBOARDs kun je beheren op een aantal manieren. Via een webinterface (‘plain’ of ‘secure’), telnet, ssh en specifieke beheerssoftware van Mikrotik, genaamd Winbox.

 

De doorgewinterde Linux/Unix gebruiker zal via de telnet/ssh interface het gevoel zoeken (en vinden) volledige controle te hebben. De console is — in tegenstelling tot de software van ‘de grote jongens’ — duidelijk, gestructureerd en consistent. Het RouterOS console kun je zien als een hiërarchisch filesysteem, waarin de volledige commando- en configuratiestructuur is opgehangen. De commandline completion, die middels de ‘?’ toets werkt, zorgt ervoor dat je op iedere plek binnen de boomstructuur weet wat de beschikbare configuratie en commando-opties zijn.

 

[plaatje sshot-interfaces.png ‘Overzicht van de geconfigureerde interfaces’]

 

Zo kun je met:

   /ip address print

een overzicht krijgen van de gedefinieerde IP adressen.

En met:

   /ip address add address=192.168.0.1/24 interface=ether2 network=192.168.0.0

koppel je een IP adres aan een specifieke interface.

Voor het bekijken van de uitgegeven DHCP leases type je:

   /ip dhcp-server lease print

 

Winbox is een door Mikrotik ontwikkeld programma voor het configureren en beheren van RouterBOARDs. Het is een MS Windows programma dat overigens ook prima werkt onder Linux en Mac OS met behulp van Wine. Winbox geeft de veelzijdige commandline interface een toegankelijke interface, zonder hierbij consessies te doen aan de configuratie en commando-opties.

 

Een in de praktijk zeer nuttige en bijzondere functie van Winbox is de mogelijkheid om op basis van MAC address contact te maken met een RouterBOARD. Je RouterBOARD heeft dus geen (werkend) IP adres nodig. Mocht je een keer een jammerlijke configuratiefout maken in

de IP adressering of de routingconfiguratie, dan is herstel onder handbereik.

 

Een tweede door Mikrotik uitgebrachte tool is ‘The Dude’. Dit programma kan volledig geautomatiseerd een netwerktekening maken, waarin alle RouterBOARDs opgenomen zijn, naast alle andere apparatuur die CDP (voor automatisch vinden) en SNMP (voor status en dergelijke) ondersteunen. Hiermee kun je live alle apparatuur in de gaten houden, inclusief indicators voor belasting en status. ‘The Dude’ kan desgevraagd ook email-alerts genereren voor bijzondere gebeurtenissen zoals overbelasting of uitval. Met deze tool kun je onder meer de status van de in dit artikel genoemde ‘queues’ in een oogopslag beoordelen.

 

Daarnaast biedt het de mogelijkheid om al je RouterBOARDs in batches te voorzien van nieuwe software. Erg handig dus voor de iets grotere omgevingen, waarin meerdere RouterBOARDs worden gebruikt. Dit programma draait, evenals Winbox, onder MS Windows en Wine.

 

[kader]

RouterBOARD hardware

 

MikroTik heeft een aantal hardware-lijnen geïntroduceerd die gebruik maken van RouterOS. De bekendste hiervan zijn de RouterBOARDs. Dit is een router, met een aantal switchpoorten (fast of gigabit ethernet) én — afhankelijk van het model — een WiFi zender/ontvanger. De router is uitgerust met RouterOS. Een ideale router voor veel thuis en klein zakelijke omgevingen! De prijsverschillen zijn best groot tussen veel leveranciers, dus het loont om even rond te neuzen bij meerdere aanbieders.

 

[plaatje routerboard.jpg]

 

Een heel andere lijn is de Groove. Dit is hardware in speciale waterdichte behuizingen voor outdoor gebruik. De behuizing bevat een omnidirectionele WiFi antenne voor zowel 2.4, als 5 GHz. De unit bevat slechts een enkele ethernetaansluiting voor de uplink. Via deze aansluiting kun je de unit ook van voeding voorzien middels Power over Ethernet (PoE).

 

[plaatje groove.jpg]

 

Speciaal voor het opzetten van een point-to-point WiFi verbinding heeft MikroTik een aantal modellen in de SEXTANT lijn. Deze bevatten een directionele 2GHz of 5GHZ zender/ontvanger en hebben eveneens een enkele ethernet aansluiting (PoE). De units bevatten uiteraard ook weer RouterOS.

 

[plaatje sextant.jpg]

 

[kader]

RouterOS Proberen

 

De RouterOS software is niet beperkt tot de RouterBOARD hardware. Je kunt dus zelf je eigen hardware bestellen. RouterOS werkt ook uitstekend als ‘virtuele router’ binnen virtualisatiesoftware, zoals VMWare, Parallels of VirtualBox. Dit is natuurlijk een uitstekende manier om eens kennis te maken met de software. We kunnen ons namelijk goed voorstellen dat we je interesse hebben gewekt voor deze veelzijdige software en hardware. RouterOS kun je downloaden van de MikroTik website. Je mag de software 24 uur lang uitproberen. Daarna zul je een geldige licentie moeten invoeren om verder te kunnen werken. De RouterOS software biedt enorm veel functionaliteit. De volledige lijst kun je op de website van MikroTik bekijken en wordt bijna maandelijks uitgebreid.