In der Firma haben viele ein Labor zum Testen und Ausprobieren von neuen Technologien oder neuer Hardware. Manchmal auch um sich selbst weiterzubilden, aber was machen die die keinen Zugang dazu haben oder Zuhause lernen möchten/müssen?
Für die gibt es die Möglichkeit Hardware zu kaufen, das kostet leider etwas Geld. Aber es gibt zum Glück günstigere Lösungen wie GNS3, VIRL oder einfach einen ESXi Server (VMware V-Sphere).
GNS3 gibt es bereits seit einigen Jahren und wird stetig weiter entwickelt. Ihr könnt es unter gns3.com (auch oben in den Links) runter laden. Um es zu benutzen braucht ihr eine CPU die die virtualisierungs Extensions unterstützt (AMD-V, Intel VT-x), min. 2 CPU Kerne sollten es sein und 4GB RAM. Wobei es immer besser ist mehr von allem zu haben. Aber als Hinweis, auf meinem MacBook Pro (Late 2013) mit Core i5, 2 Kernen und 8GB RAM laufen auch elf Router (Cisco 7200) problemlos.
Ansonsten benötigt ihr noch die Software der Router, oder was auch immer ihr darin einsetzen möchtet. Ich benutze typischerweise immer nur Cisco Router aber man kann auch andere VMs darin starten und nutzen. Da muss ich euch aber auf die Doku bzw. die Foren von gns3.com verweisen.
Um eure gewünschte Hardware in GNS3 abzubilden benötigt ihr eigentlich immer die Software davon. Switche können nur bedingt abgebildet werden, das geht aber mittlerweile auch sehr gut mit IOSvL2. Router könnt ihr mit IOSv oder auch mit normalem IOS starten. Zu beachten ist, dass man zumindest beim standard IOS einen Idle Wert setzen muss nachdem das IOS zum ersten mal gestartet wurde. Nach dem ersten Mal starten wird ein CPU Kern 100% Last haben, da der Idle Wert fehlt oder wahrscheinlich falsch eingestellt ist. Den Idle Wert könnt ihr per Rechts-Klick auf den Router setzen lassen, GNS3 berechnet ihn und schlägt euch Werte vor. Danach unbedingt speichern, dann bleibt der Wert auch für die nächsten Starts drin.
VIRL, Virtual Internet Routing Lab, ist die Lösung von Cisco für virtuelle Labs. Diese kostet zwar eine Lizenzgebühr von zur Zeit $200 im Jahr, liefert aber auch immer die aktuellen Versionen aller IOS, ASA-OS und NX-OS. Die Anforderungen für VIRL liegen etwas höher als es GNS3 braucht, denn VIRL ist eine fertige VM. Diese VM benötigt mindestens 8GB RAM, 4 CPU Kerne mit den virtualisierungs Extensions AMD-V oder Intel VT-x und min. 70GB HDD (oder SSD). Zudem muss die VM Internetzugang haben, Cisco schreibt hier „on a regular basis“, von bekannten habe ich gehört dass es einmal im Monat sein muss. Ansonsten schaltet sich VIRL quasi ab, da die Lizenz nicht geprüft werden kann. Der größte Nachteil, abgesehen vom Preis, ist aber der Ressourcenhunger von VIRL, denn hier laufen teilweise Router VMs die 3GB RAM jeweils benötigen, bei 10 Stück und einem Switch und hier einer Host-VM da kommen da ein paar GB zusammen. Je nach Topologie die man betreiben möchte sollte der Host für VIRL also min. 16GB RAM, besser 32GB RAM haben. Ansonsten schränkt man sich selbst ein und muss mit weniger auskommen oder VMs mit weniger Speicherhunger nutzen. Diese können aber, je nach Version, auch weniger Funktionen abbilden. Also immer Augen auf und nicht am RAM sparen.
VIRL hat ein paar Funktionen die andere Lösungen nicht bieten, ihr bekommt Updates für neue IOS Versionen, habt L2 und L3 Switches, ASAv’s und die Möglichkeit Latency und Paketloss auf Verbindungen zu konfigurieren. Damit lassen sich echte WAN Verbindungen nachbilden.
ESXi Server (VMware V-Sphere) ist die altbekannte Virtualisierungslösung von VMware. Was viele nicht wissen, ist dass man sie auch kostenlos zuhause benutzen darf. Es fehlen dann zwar Funktionen (vMotion, HA,…) und typischerweise ist es auf einen CPU Sockel beschränkt, aber um Zuhause ein paar VMs für Laborzwecke laufen zu lassen reicht es vollkommen aus. Die Anforderungen hier sind ähnlich denen von VIRL, aber einfach gesagt ist es so dass man einen Sockel haben sollte, mit möglichst vielen Kernen und viel Leistung, die CPU muss AMD-V oder Intel VT-x unterstützen, möglichst viel RAM und eine Festplatte bzw. SSD. Die Größe der HDD oder SSD kommt darauf an ob die VMs auf dem Host liegen werden oder auf einem NAS oder ähnlichem. Dann reicht auch z.B. eine alte 64GB SSD im Host, so eine habe ich benutzt. Mein ESXi besteht aus einem AMD A8-7600 (4*3,1GHz), 32GB DDR3 RAM und dieser SSD, alles in einem alten Gehäuse. Heute würde ich schauen dass es DDR4 RAM ist, damit kann man jetzt schon 64GB RAM zuhause haben. Und vielleicht doch Intel nutzen, der AMD ist im Idle leider nicht so sparsam. Welche VMs nutzt man nun? Die meisten Hersteller bieten ihre Router mittlerweile als VM an, diese kann man oft auch kostenlos benutzen. Beispielsweise von Cisco den CSR1000v, ohne eine Lizenz zu kaufen unterstützt er alle Funktionen, allerdings auf 100kbit/s Durchsatz beschränkt. Die ISO oder OVA davon kann man sich bei Cisco herunterladen, sofern euer Account Manager oder ein SE ihn für euch freigeschaltet hat. Früher konnte die VM von jedem geladen werden, das hat Cisco leider Anfang 2016 geändert. Der Nachteil hier ist dass jeder CSR1000v etwa 3GB RAM benötigt, das wünscht man sich schnell schon mehr RAM. Und Switching lässt sich hier nicht virtualisieren, die vSwitches von VMware sind allerdings super zum Verbinden der Router. Obacht, um HSRP oder andere Protokolle nutzen zu können die virtuelle MAC Adressen benutzen oder MACs von Gerät zu Gerät schieben müsst ihr die beiden Option Promiscuous Mode und MAC Address Change aktivieren.
Außerdem ist es besser einen vSwitch pro Verbindung zu machen, gerade weil der Promiscuous Mode oft an sein muss. Das bedeutet viel Arbeit und klicken Anfangs, aber erspart viel Ärger.
Aber zurück zum RAM, VMware hat eine Funktion eingebaut um RAM zu sparen wenn viele identische VMs laufen. Diese nennt sich Mem.AlocGuestLargePage und sollte auf 0 stehen. Ihr findet sie unter Configuration, Software, wählt Advanced Settings und dann Mem. Wenn ihr nun viele gleiche VMs startet spart VMware automatisch an RAM, das dauert allerdings etwas. Empfohlen wird hierbei dass man die VMs gleichzeitig startet und später wieder kommt wenn sie alle fertig laufen. Was bei CSR1000v’s durchaus 15-30min dauern kann.
Welche dieser Möglichkeiten ist nun die Beste für euch? Oder solltet ihr doch Hardware kaufen?
Wer nicht viel Geld ausgeben will sollte zu GNS3 greifen, das ist kostenlos, stellt nicht viele Hardwareanforderungen und Router-OSe finden sich online.
Wer nicht nur Netzwerken lernen möchte sollte zu einem eigenen ESXi greifen. Das kostet zwar anfangs etwas mehr, aber ihr habt die Freiheit alles zu virtualisieren was ihr möchtet. CSR1000v, ASAv, JunOS, Windows, Linux, etc. Und wenn ihr doch VIRL nutzen möchtet, lasst die VM auf dem ESXi laufen.
VIRL macht es sehr einfach ein Netzwerklab aufzubauen, mit Latency und Paketloss wenn man das braucht. Es ist aber auch die teuerste Alternative, nicht nur kostet es $200 pro Jahr sondern man benötigt die entsprechende Hardware. Aber wer das ausgeben möchte, für den ist VIRL super.