Inhoudsopgave
SchakelWat is een virtueel netwerk? Laten we het vandaag hierover hebben.
Als we aan computernetwerken denken, denken we meestal aan verschillende kabels (Ethernet, glasvezel, coax) die zijn aangesloten op apparaten zoals routers en switches, die de datapakketten naar hun bestemming sturen.
Door de opkomst van wifi en mobiele datanetwerken zijn sommige van die kabels vervangen door draadloze signalen, maar zelfs radiogolven behoren tot de fysieke wereld en staan in verbinding met zendmasten of wifi-toegangspunten.
In het zevenlaagse OSI-netwerkreferentiemodel bevinden al deze netwerkapparatuur, verwerking en communicatie zich in de onderste drie lagen: laag 3 (netwerklaag), laag 2 (datalinklaag) en laag 1 (fysieke laag).
In een virtueel netwerk vinden al deze activiteiten plaats in software.

Een virtueel netwerk kan volledig binnen één enkele fysieke computer (server) bestaan. Het kan echter ook een abstractielaag vormen die op een fysiek netwerk draait, waarvan de configuratie en topologie aanzienlijk kunnen verschillen van die van het virtuele netwerk.
Het opzetten van een virtueel netwerk is een complexe klus, maar de voordelen zijn enorm: netwerken kunnen eenvoudig worden aangepast door bestanden te wijzigen, in plaats van via moeizaam handmatig werk waarbij men soms door kabelgoten moet kruipen.
Hoe werkt een virtueel netwerk?
Om te begrijpen hoe virtueel netwerken werkt, beginnen we met een verwant en bekender begrip: virtuele machines. De meesten van ons zijn bekend met virtuele machines, waarmee het mogelijk is om meerdere exemplaren van een applicatie op één fysieke machine te draaien.
Deze virtuele machines “weten” niet echt dat ze virtueel zijn; alle systeemaanroepen en andere communicatie die ze normaal gesproken met de onderliggende hardware zouden hebben, worden onderschept door een softwarelaag die een hypervisor wordt genoemd. Een hypervisor verwerkt verzoeken van meerdere VM’s die op dezelfde computer draaien, om zo efficiënt mogelijk gebruik te maken van de onderliggende hardwarebronnen.
De VM kan instructies zelfs tussen verschillende hardwareplatforms vertalen, zodat een VM bijvoorbeeld op een x86-machine kan draaien, ook al is deze ontworpen voor een ARM-processor. De hypervisor kan de resultaten teruggeven die de VM verwacht te ontvangen van de hardware.
Virtuele netwerken zijn gebaseerd op dezelfde principes. De software is ingesteld om een netwerk te simuleren met het vereiste specifieke terrein door de beheerder. Net als bij virtuele machines kunnen virtuele netwerken hun werk doen omdat de besturingssystemen en applicaties waarmee ze communiceren niet weten (of zich er niet om bekommeren) of ze nu met een echte switch of een virtuele switch (vSwitch) communiceren.
Ze versturen simpelweg pakketten waarvan de headers zijn voorzien van bepaalde netwerkrouteringsinformatie en verwachten in ruil daarvoor soortgelijke pakketten te ontvangen. Omdat deze communicatie gestandaardiseerd is, is het eenvoudig om software te ontwikkelen die het gedrag van een fysieke netwerkkaart, switch of router kan nabootsen, en inderdaad kunnen tools zoals Open vSwitch op een hypervisor draaien of fungeren als een besturingsstack voor fysieke netwerkhardware.
Zodra de hypervisor deze pakketten heeft ontvangen, moet hij uitzoeken hoe hij ze naar hun bestemming moet routeren, net zoals fysieke netwerkhardware dat doet. Het verschil is dat de hypervisor informatie over het softwaregedefinieerde virtuele netwerk (het netwerk waarvan onze computer “denkt” dat hij erop is aangesloten) moet omzetten in informatie over de daadwerkelijke onderliggende fysieke omgeving.
Een computer kan denken dat hij pakketten naar een andere computer op hetzelfde LAN verstuurt, maar in werkelijkheid kunnen die twee computers zich in verschillende landen bevinden, of kunnen het twee virtuele machines zijn die op dezelfde server draaien.
Hypervisors lossen dit probleem doorgaans op door het pakket in te kapselen in een ander pakket met andere routeringsinformatie in de header, en dat pakket vervolgens door te geven aan de fysieke netwerkinfrastructuur. Zodra dat pakket zijn bestemming bereikt, wordt het buitenste pakket verwijderd; het systeem dat het pakket ontvangt, ziet het dan als afkomstig via het virtuele netwerk, in plaats van via het daadwerkelijke fysieke netwerk dat het heeft doorkruist.
Het spreekt voor zich dat het opzetten van een virtueel netwerk veel werk en vindingrijkheid vergt. Waarom zou je die moeite doen? Een overzicht van de verschillende soorten virtuele netwerken geeft een beeld van praktijksituaties waarin ze van nut kunnen zijn.
Type virtueel netwerk
Een belangrijk onderscheid is dat tussen interne en externe virtuele netwerken. Interne virtuele netwerken worden gebruikt om meerdere VM’s die op dezelfde server draaien met elkaar te verbinden. In dit geval hoeft de hypervisor de netwerkpakketten niet in te kapselen en via het fysieke netwerk te verzenden; hij bepaalt gewoon voor welke VM ze bestemd zijn en bezorgt ze daar.
Het lijkt misschien vreemd om een protocol dat is ontwikkeld voor communicatie tussen computers te gebruiken als middel om te communiceren tussen twee processen die op dezelfde fysieke hardware draaien. Maar vergeet niet dat een van de voordelen van virtualisatie is dat je meerdere kant-en-klare besturingssystemen als volledig afzonderlijke en onafhankelijke processen op dezelfde server kunt draaien.
Door het gebruik van standaard netwerkpakketten en -protocollen voor dit doel, in combinatie met de bijbehorende beveiligingsinfrastructuur, kunnen deze VM’s zonder aanpassingen draaien en met elkaar communiceren.
Externe virtuele netwerken daarentegen bestaan uit afzonderlijke fysieke computers (of een combinatie van VM’s en fysieke machines). In dit scenario zijn de computers met elkaar verbonden via traditionele fysieke netwerkapparaten (waaronder verbindingen via het open internet), maar creëert de netwerkbeheerder een virtuele netwerktopologie die afwijkt van de onderliggende fysieke topologie.
Er zijn drie soorten virtuele netwerken, die intern of extern kan zijn:
Een virtueel privénetwerk (VPN) is de eenvoudigste vorm van een virtueel netwerk. Het meest voorkomende scenario is dat een computer via het open internet is aangesloten op een lokaal bedrijfsnetwerk. Vanuit het perspectief van die computer en de andere computers waarmee deze communiceert, maakt de computer – zodra de VPN-verbinding tot stand is gebracht – deel uit van het LAN, ook al bevindt deze zich op afstand.
Een virtueel LAN (VLAN) is complexer: het bestaat uit een volledig lokaal netwerk dat virtueel is gedefinieerd. VLAN’s kunnen worden aangemaakt door één fysiek LAN op te splitsen in meerdere VLAN’s of door fysiek onafhankelijke LAN’s samen te voegen tot één VLAN.
Virtual Extensible LAN (VXLAN) is een verbeterde versie van VLAN waarmee grote LAN’s kunnen worden onderverdeeld in meer afzonderlijke VLAN’s en waarmee het ook eenvoudiger wordt om virtuele machines te migreren zonder de dienstverlening te verstoren; beide aspecten zijn van cruciaal belang voor de cloudinfrastructuur.
Voordelen en pluspunten van virtuele netwerken
Virtueel netwerken is absoluut noodzakelijk wanneer er meerdere VM’s op dezelfde hardware worden gedraaid, wat een veelvoorkomend scenario is bij cloud computing. Tegelijkertijd stelt het aanmaken van VLAN's en VXLAN's bovenop bestaande fysieke netwerken beheerders in staat om het netwerk snel aan te passen aan hun behoeften – in het tijdperk van ‘infrastructure as code’ vaak zelfs automatisch. Dit zou moeilijk of onmogelijk zijn als het fysieke netwerk handmatig opnieuw zou moeten worden opgebouwd.
De voordelen van virtuele netwerken zijn onder meer:
De kosten en het onderhoud van fysieke netwerkhardware verminderen.
Vereenvoudig het netwerkbeheer met gecentraliseerde en geautomatiseerde besturing.
Biedt flexibelere en gedetailleerdere opties voor netwerkconfiguratie.
Deze voordelen dragen bij aan een hogere IT-productiviteit en lagere beheerkosten, wat een belangrijke reden is voor het voortbestaan van virtuele netwerken.