Mikrotik - De ‘netwerk-toverdoos’ uit Letland

Het Nederlandse deel van de Noordzee kent zo'n 130 olie- en gasproductieplatforms. Deze platforms voorzien ons  dag en nacht 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. Er zijn daarnaast zo’n dertig bemande platforms die bemand zijn en 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.

Dankzij 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 et cetera
- 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

[plaatje Diagrams/Oplossing_met_tunnel.eps]

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 wa en 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 hier 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 te veel te hoeven beheren, 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 beheren 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 beheren via 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’. 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.

 
‘De firewall mangle regels die het IP verkeer taggen’]

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 overeenkomende firewallregel, hosts toevoegen aan een adreslijst. Door 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 

 

Beheren van een RouterBOARD
RouterBOARDs kun je beheren op een aantal manieren. Via een webinterface (‘plain’ of ‘secure’), telnet, ssh en specifieke beheersoftware 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 command line 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. 


‘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 command line interface een toegankelijke interface, zonder hierbij concessies 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 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.

 

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. 

Een heel andere lijn is de Groove. Dit is hardware in speciale waterdichte behuizingen voor outdoor gebruik. De behuizing bevat een omni-directionele 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). 

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. 

 

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. 

 

NEDLINUX FORUM

Het nederlandse linuxforum
Voor beginners en pro’s

 

 

 

 

E-mailadres



 

 

Nieuwste editie:

Linuxmag op Facebook

@linuxmagnl op Twitter

linuxmagNL Linux Nieuws: @SUSE bestaat 25 jaar en trakteert! Maak kans op entreeticket voor #SUSECON in Praag, zie link!… https://t.co/ENJKDvyZQ8
linuxmagNL De nieuwe editie van Linux Magazine is weer uit! Thema: bescherm jezelf tegen hackers met Linux. Veel leesplezier a… https://t.co/Zcy3Zdjb90
linuxmagNL Ook de Red Hat Forum BeNeLux 2017 mag je dit jaar niet missen. 10 oktober 2017, zet het in je agenda! https://t.co/niY9UdK3Ov