Die Digitalisierung der Wirtschaft führt in nahezu allen Branchen zu einem rasant ansteigenden Bedarf an leistungsfähigen IT-Infrastrukturen. Während die einen ihr Heil in der Cloud suchen, stellen andere eine Bedarfsermittlung an und versuchen, die notwendige Skalierbarkeit der eigenen Infrastruktur auch für sprunghafte Bedarfsanstiege sicherzustellen. Hier kommen Netzwerksimulatoren ins Spiel: Sie liefern die notwendigen Informationen für die Planung und den Ausbau von kabelgebundenen und drahtlosen Netzwerken.
Auch wenn sich die grundlegenden Netzwerkstandards in den vergangenen Dekaden kaum verändert haben, stellt der steigende Traffic-Bedarf die Unternehmen vor bedeutende Herausforderungen. Um die Zuverlässigkeit zu gewährleisten, ist es wichtig, dass die Infrastrukturen sauber designt sind und Spielraum für einen Ausbau bieten. Die Netzwerksimulation verspricht die Unterstützung dieser anspruchsvollen Aufgaben. In der Praxis bietet sich diese Technik in verschiedenen Kontexten an:
- Ersatz von realen Netzwerken: Reale Netzwerke sind schwer zu instanziieren, um mit möglichst konkreten Szenarien zu experimentieren. Mit visuellen Werkzeugen lassen sich beispielsweise Subnetze oder Remote-Netzwerke mit wenigen Klicks anlegen.
- Frühes Prototyping: Insbesondere industrielle Applikationen verlangen nach der Weiterentwicklung bestehender Protokollfamilien. Simulatoren erlauben das Testen und Kennenlernen von Protokollen, wie sie beispielsweise von der Open DeviceNet Vendor Association (ODVA) vorangetrieben werden. So können Unternehmen beispielsweise erste Erfahrungen mit dem Common Industrial Protocol (CIP) oder mit dem Open Screen Network Protocol beziehungsweise Open Screen Application Protocol sammeln. Die Modellierung erleichtert die Planung und das Testen.
Auch wenn sich die grundlegenden Netzwerkstandards in den vergangenen Dekaden kaum verändert haben, stellt der steigende Traffic-Bedarf die Unternehmen vor bedeutende Herausforderungen. Um die Zuverlässigkeit zu gewährleisten, ist es wichtig, dass die Infrastrukturen sauber designt sind und Spielraum für einen Ausbau bieten. Die Netzwerksimulation verspricht die Unterstützung dieser anspruchsvollen Aufgaben. In der Praxis bietet sich diese Technik in verschiedenen Kontexten an:
- Ersatz von realen Netzwerken: Reale Netzwerke sind schwer zu instanziieren, um mit möglichst konkreten Szenarien zu experimentieren. Mit visuellen Werkzeugen lassen sich beispielsweise Subnetze oder Remote-Netzwerke mit wenigen Klicks anlegen.
- Frühes Prototyping: Insbesondere industrielle Applikationen verlangen nach der Weiterentwicklung bestehender Protokollfamilien. Simulatoren erlauben das Testen und Kennenlernen von Protokollen, wie sie beispielsweise von der Open DeviceNet Vendor Association (ODVA) vorangetrieben werden. So können Unternehmen beispielsweise erste Erfahrungen mit dem Common Industrial Protocol (CIP) oder mit dem Open Screen Network Protocol beziehungsweise Open Screen Application Protocol sammeln. Die Modellierung erleichtert die Planung und das Testen.
- Fehleranalyse und Optimierung: Simulationen helfen, potenzielle Flaschenhälse und Probleme zu identifizieren, bevor sie zu solchen werden. Außerdem ergeben sich Hinweise für die optimale Konfiguration der Lastverteilung und Ressourcennutzung. Daraus leiten sich obendrein Erkenntnisse zur Optimierung der Sicherheit ab.
Manchmal ist es außerdem sinnvoll, virtuelle Duplikate bestehender Netzwerke anzulegen, um spezifische Szenarien nachzubauen und ein besseres Verständnis für spezifische Phänomene zu entwickeln. Das Erstellen von Duplikaten bestehender Netzwerke ist zudem aus der Security-Perspektive interessant, denn so können Sie Angriffe simulieren beziehungsweise rekonstruieren und die Empfindlichkeit der Netztopologie prüfen.
Passendes Werkzeug finden
In den vergangenen Dekaden sind eine Vielzahl von Werkzeugen für die Traffic-Simulation entstanden. Sie unterscheiden sich in Hinblick auf die Protokollunterstützung, die Implementierungsansätze, den Grad der Erweiterbarkeit beziehungsweise die Skalierbarkeit sowie die Ausführungsgeschwindigkeit. Obendrein ist zwischen Simulatoren und Emulatoren zu unterscheiden. Ein weiteres Unterscheidungsmerkmal: Nicht jeder Simulator kann drahtlose Netzwerke nachbauen.
Grundsätzlich orientiert sich die Wahl des geeigneten Simulators an den Anforderungen, wobei Sie sich an konkreten Anwendungsszenarien ausrichten sollten. In der Praxis interessieren beispielsweise die Latenzzeiten oder die Skalierbarkeit von Multicast-Protokollen. Kommen verstärkt Videoconferencing-Tools zum Einsatz, gilt es, den Jitter in Videoanwendungen abzuschätzen.
Die meisten Netzwerksimulationsumgebungen nutzen ereignisdiskrete Simulationsmethoden. Das bedeutet, dass lediglich der Zustand des simulierten Netzwerks zu diskreten Zeitpunkten interessiert und die Zustände zwischen diesen Knoten keine Rolle spielen. Tatsächlich sind die Prozesse weit komplexer: Wird ein Datenpaket verschickt, muss jedes einzelne Bit in elektrische oder optische Wellenformen codiert werden. Es erfolgen dann Berechnungen der Fehlererkennungs- und Fehlerkorrekturinformationen, die Verifizierung der Korrektheit des empfangenen Signals, seine Rekonstruktion auf Empfängerseite et cetera.
Die Netzwerksimulatoren profitieren von diesen Simplifizierungen, weil sie lediglich die relevanten Knotenpunkte, deren Eigenschaften und Funktionen nachbilden. Ein Computernetzwerk besteht üblicherweise aus mehr oder minder vielen Knoten; typischen Komponenten sind Endsysteme, Router, Ethernet- und WiFi-Verbindungen, Protokolle, Datenpakete und unterschiedliche Applikationen. Um derlei Strukturen nachzubilden, generieren Simulatoren spezifische Objekte und weisen diesen die gewünschten Eigenschaften zu. Neben Knoten- und Schnittstellenobjekten sorgen Link-Objekte für die Konnektivität der verschiedenen Komponenten.
Die Wahl eines geeigneten Simulators wird von verschiedenen Faktoren beeinflusst. Neben allgemeinen Fähigkeiten wie Objekt-, Protokoll- und Simulationsoptionen spielen Aspekte wie ein GUI, statistische Funktionen und Auswertung eine wichtige Rolle. Verschiedene Werkzeuge, insbesondere die Emulatoren, erlauben obendrein das Koppeln von realen und simulierten Netzwerken.
Eine Herausforderung stellt zudem die Simulation von drahtlosen Netzwerken dar, da die Modelle schwer generier- und validierbar sind. Hierzu gehört auch das Nachstellen der Broadcast-Eigenschaften drahtloser Netzwerke. Die Lernkurve, die beim Einsatz eines Traffic-Simulators auf Sie wartet, gilt es bei der Auswahl ebenfalls zu berücksichtigen.
Urahn ns-2
Einer der ersten Simulatoren, der eine breite Akzeptanz erfahren hat, ist der quelloffene ns-2 [1], der vom Information Sciences Institute (ISI) der University of Southern California entwickelt und gepflegt wird. Dieser Simulator ging 1989 aus dem REAL-Simulator [2] hervor und wurde mit Unterstützung der DARPA weiterentwickelt. Die Arbeit erfolgt primär auf der Konsolenebene, allerdings existieren auch verschiedene GUIs, beispielsweise Visual Network Simulator [3] oder nsBench [4]. ns verwendet die eigene Skriptsprache TCL für die Spezifikation der Simulationstopologien und der Applikationen. Inzwischen ist dieser Simulator in Version 3 verfügbar. Einen Schritt weiter geht GTNetS (Georgia Tech Network Simulator) [5], der in Hinblick auf das Design dem tatsächlichen Netzwerkprotokollstapel und den Objekteigenschaften entspricht.
In der Diskussion zur Frage, welcher Simulator nun zu empfehlen ist, tauchen immer wieder die gleichen Ratschläge auf; teils handelt es sich um Open-Source-Tools, teils um kostenfreie Werkzeuge. Empfohlen werden insbesondere der Cisco Packet Tracer [6], Cisco CML [7], EVE-NG [8] und PNETLab [9]. Doch nicht immer ist klar, unter welcher Lizenz diese stehen. So unterliegt GNS3 beispielsweise der GPL v3.0, während bei PNETLab die Lizenzierung unklar ist. Weit seltener zur Sprache kommt OMNeT++ [10], allerdings ist dieser Event-Simulator nur für den akademischen Einsatz frei; beim kommerziellen Einsatz bedarf es spezieller Lizenzen.
Bezüglich der Auswahl liefert die Wissenschaft Hinweise. So spricht sich eine große Zahl von Experten für den Einsatz von ns-2 und ns-3 aus. Allerdings gelten die beiden ns-Varianten als anspruchsvoll im Handling. Zu den Open-Source-Tools mit einer hohen Funktionalität und Flexibilität sowie einer aktiven Community zählt GNS3 [11].
Bild 1: Die Konfiguration von GNS3 als lokale Umgebung erlaubt das Ausführen auf dem eigenen Rechner.
Erste Schritte mit GNS3
GNS3 gilt als einer der am häufigsten eingesetzten Simulations- und Emulationsspezialisten. GNS steht für Graphical Network Simulator und wird seit 2006 entwickelt. Sie können damit sowohl kleine Netzwerktopologien entwickeln als auch umfangreiche Serverfarmen realisieren. Für besonders hohe Anforderungen ist auch ein Hosten in der Cloud möglich. Jeremy Grossmann, der ursprüngliche GNS3-Entwickler, hat die Software programmiert, um sich für seine CCNP-Zertifizierung vorzubereiten. Inzwischen unterstützt GNS3 jeden gängigen Netzwerkgerätetyp. Es lassen sich auch SDNs, NFV, beliebige Linux-Server und Docker-Installationen simulieren. Die Umgebung basiert auf drei Softwarekomponenten: GNS3-All-in-One-Software, GUI und virtuelle Maschine. Während Sie mit dem GUI die gewünschten Topologien erstellen, werden die generierten Geräte von einem Serverprozess gehostet. Dieser steht als lokaler GNS3-Server oder als VM zur Verfügung.
Bevor Sie mit dem Anlegen der ersten Netzwerkkomponenten beginnen, sollten Sie eine weitere Besonderheit von GNS3 kennen: Die Umgebung unterstützt, emuliert und simulierte Geräte. Bei der Emulation ahmt GNS3 die Gerätehardware nach; dazu führen Sie ein tatsächliches Image auf dem virtuellen Gerät aus. Anders bei der Simulation: Hier stellt GNS3 die Funktionen eines Geräts nach. In der Praxis verschwimmen beiden Techniken häufig. Über die Projektwebsite beziehungsweise GitHub steht eine Vielzahl von vordefinierten Komponenten zum Download bereit. Grundsätzlich können Sie beliebig viele Komponenten verwenden. Einzig die verfügbare Rechenkapazität und die Ausführungsvariante beschränken die Auswahl.
Sie profitieren außerdem davon, dass mit GNS3 Echtzeit-Netzwerksimulation für Tests vor der Bereitstellung ohne Netzwerkhardware realisierbar sind. Der Simulator unterstützt zudem dynamische Netzwerkkarten für die Durchführung von Proof-of-Concept-Tests. Dabei sind Sie keineswegs auf die Simulation oder Emulation beschränkt, sondern können GNS3 mit einem realen Netzwerk verbinden und so die Laborumgebung erweitern. Ein weiterer Pluspunkt: Client und Server sind für Linux, macOS und Windows verfügbar. Um unter Windows eine GNS3-Umgebung aufzusetzen, führen Sie einfach das Setup aus; dieses erlaubt auch die Mitinstallation der VM-Server-Komponente. Standardmäßig werden verschiedene Tools wie Wireshark und WinPCAP mitinstalliert. Auch ein Webclient lässt sich mitinstallieren.
Nach der GNS3-Installation müssen Sie eine Verbindung zum GNS3-Server herstellen, den Sie der Einfachheit halber in einer VM ausführen. Der GNS3-Client stellt Ihnen den Setup-Wizard für die Konfiguration zur Verfügung. Nach der VM-Auswahl baut der Client die Verbindung zum GNS3-Server auf. Bevor Sie mit der eigentlichen Simulation beginnen, ist es unter Umständen notwendig, spezifische Geräte in GNS3 verfügbar zu machen. Der Client bietet Ihnen über die "All devices"-Auswahl verschiedene Standardgeräte an. Doch damit kommen Sie in der Praxis nicht weit. Um im GNS3-Client weitere Geräte verfügbar zu machen, klicken Sie auf "New templates". Der lokale GNS3-Server bietet Ihnen verschiedene Images an. Alternativ können Sie bestehende Appliances importieren oder eigene Templates generieren.
Neben den Standardkomponenten stellt Ihnen der GNS3 Marketplace entsprechende Appliances für Docker-Installationen, Windows- und Linux-Server sowie für eine Fülle von Cisco-Geräten zur Verfügung. Selbstverständlich stehen auch Module für typische Client-Betriebssysteme und mobile Endgeräte bereit.
Bild 2: Über die Template-Verwaltung wird eine neue Netzwerkkomponente im GNS3 angelegt.
Einfache Netzwerktopologie anlegen
Nachdem Sie die Objektverwaltung um die relevanten Netzwerkkomponenten erweitert haben, legen Sie eine erste Netzwerktopologie an. Das Prozedere ist einfach. Im ersten Schritt eröffnen Sie über das "File"-Menü ein neues Projekt. Im sogenannten "Layout Screen" beginnen Sie damit, die gewünschten Objekttypen im Workspace zu platzieren. Über die "Device Toolbar" sind die verschiedenen Netzwerkkomponenten verfügbar. Diese differenziert zwischen Routern, Switches, Endgeräten und Sicherheitskomponenten. Sie finden in den verschiedenen Gruppen sowohl simulierte als auch emulierte Geräte. Der Bereich "Topology Summary" in der rechten oberen Ecke des GNS3-Clients listet alle Knoten der aktuellen Topologie auf. Der Zusammenfassung entnehmen Sie auch, welche Komponenten gestartet sind und welche nicht.
Die Topologie nimmt mit jeder neuen Komponente Form an. Neben den typischen Netzwerkkomponenten wie Router, Switches et cetera sind insbesondere PC-Instanzen gefragt. Hierfür stellt Ihnen GNS3 den Typ "VPCS" zur Verfügung. Die eingefügten PCs werden der Reihe nach als "PC1", "PC2" etc. bezeichnet. Grundsätzlich können Sie jeden Eintrag über das Konfigurationsmenü bearbeiten. Dazu markieren Sie das gewünschte Objekt mit einem Rechtsklick und führen den "Configure"-Befehl des Kontextmenüs aus.
Die Verbindung zwischen den verschiedenen Netzwerkobjekten stellen Sie mit der "Add a link"-Funktion her. Um einen PC-Eintrag mit einem Switch zu verbinden, aktivieren Sie zunächst die Link-Funktion, klicken dann auf den entsprechenden VPCS-Eintrag, wählen den Verbindungstyp "Ethernet_x" aus und klicken auf die Switch-Komponente. Die neuen PCs sind standardmäßig nicht aktiv. Das ändern Sie, indem Sie das Kontextmenü der rechten Maustaste öffnen und den "Start"-Befehl ausführen.
Im nächsten Schritt nehmen Sie weitere Anpassungen der Umgebungen vor und weisen beispielsweise den PCs bei Bedarf spezifische IP-Adressen zu. Um die verschiedenen Devices der Reihe nach zu konfigurieren, klicken Sie in der Werkzeugleiste auf die Schaltfläche "Console connect to all devices". Abhängig vom verwendeten GNS3-Client-Betriebssystem öffnet der Simulator einen Terminal-Emulator. Unter Windows wird standardmäßig eine PuTTY-Variante installiert. Mit dem Befehl "ip IP-Adresse Subnetz" weisen Sie dem Gerät die gewünschte Adresse zu. GNS3 bietet keine Möglichkeit, diesen Prozess zu vereinfachen. Mittels "Ping" prüfen Sie, ob die PCs miteinander kommunizieren können. Um die Konfiguration zu sichern, führen Sie in der Konsole den "save"-Befehl aus. Knoten, denen Sie eine feste IP-Adresse zugewiesen haben, blenden diese in der Topologieansicht ein.
Lange bot GNS3 keine WLAN-Unterstützung, doch das hat sich inzwischen geändert. Für diesen Zweck können Sie beispielsweise den "Cisco Virtual Wireless Controller" anlegen. Grundsätzlich ist aber auch jeder andere gängige Controller nutzbar; dazu müssen Sie lediglich ein neues Template erstellen und dieses mit einem entsprechenden Image bestücken. Die Image-Suche gestaltet sich hin und wieder schwierig.
Bild 3: Die in GNS3 integrierten Zusatztools sind unverzichtbar für die Konfiguration der simulierten Geräte und zur Traffic-Analyse.
Erweiterte Techniken
Dank seiner langen Tradition bietet GNS3 eine beeindruckende Flexibilität und Funktionalität. Besonders einfach gestaltet sich der Nachbau von Netzwerken und Netzwerksegmenten. Sie profitieren insbesondere von der hohen Skalierbarkeit; lediglich die verfügbaren Ressourcen begrenzen die Zahl der Netzwerkknoten und damit die Größe des simulierten Netzwerks. Ihnen kommt außerdem zugute, dass Sie reale Netzwerkverhältnisse exakt nachbauen können.
GNS3 unterstützt verschiedene Anpassungsmöglichkeiten der Netzwerkobjekte. Mit einem Rechtsklick auf ein Objekt können Sie es starten, anhalten oder einen Reload durchführen. Überdies lassen sich den Objekten unterschiedliche Symbole zuweisen. Auch das Erstellen von Ebenen und das Duplizieren von Knotenkonfigurationen gestaltet sich einfach. Ein weiterer Pluspunkt ist die Integration von Drittanwendungen wie Wireshark. Der Sniffer erlaubt in einer simulierten Umgebung die Aufzeichnung des Traffics. Dazu markieren Sie eine Verbindung und klicken auf das Lupensymbol. Wireshark beginnt unmittelbar mit der Aufzeichnung.
Für den Einsatz von GNS3 spricht, dass Sie das simulierte Netzwerk um eine Internetverbindung erweitern können. Bei einer lokalen GNS3-Installation fügen Sie zunächst eine Cloud zur GNS3-Topologie hinzu. Dann passen Sie die IP-Adressierung, die DNS-Auslösung und die NAT-Konfiguration an. Mit der Version GNS3 2.0 haben die Entwickler den NAT-Modus eingeführt. Der Gewinn der Internetanbindung ist offensichtlich: Sie besteht die Möglichkeit, die simulierte Umgebung unter realen Verhältnissen auf Herz und Nieren zu überprüfen. Grundsätzlich sind über das GNS3-GUI verschiedene GNS3-Server steuerbar. Hierfür steht die Profilfunktion zur Verfügung, auf die Sie über das Menü "Edit / Preferences" zugreifen.
Ausbau des Werkzeugkastens
GNS3 macht bei Standardaufgaben eine gute Figur, doch hin und wieder wirkt die Umgebung ein wenig antiquiert. Soll es schnell und unkompliziert gehen, bietet sich der Einsatz von PNETLab (Packet Network Emulator Tool Lab) an. Dabei handelt es sich um eine Plattform, die Ihnen das Erstellen von Netzwerksimulationen und das Teilen dieser Konfigurationen mit der Community erlaubt. Die PNETLab-Entwickler bezeichnen simulierte Konfigurationen als "Lab".
Die PNETLab Box ist das Herzstück der Umgebung. Dabei handelt es sich um eine virtuelle Maschine, in der die Simulation angelegt und ausgeführt wird. PNETLab unterstützt grundsätzlich den Online- und Offlinemodus. Für den Onlinemodus ist eine bestehende Internetverbindung nötig; dafür kommen Sie in den Genuss bestehender Lab-Konfigurationen.
Die Vorgehensweise zur Netzwerksimulation entspricht im Wesentlichen der bei GNS3 und vergleichbaren Tools: Sie legen ein Lab an und befüllen es mit den gewünschten Netzwerkkomponenten. Im nächsten Schritt sorgen Sie für die Verbindungen. Über den Befehl "Add a new node" stehen Ihnen Dutzende Komponenten zur Auswahl. In dem zugehörigen Dialog können Sie gleich auch die Knotenkonfiguration erledigen.
Bild 4: Eine mit PNETLab erstellte Netzwerkkonfiguration.
Die künftige Rolle von KI
Angesichts des medialen KI-Hypes wäre zu vermuten, dass gerade Anwendungsszenarien in der Informationstechnologie von dem technologischen Fortschritt profitieren. Doch dort, wo künstliche Intelligenz eigentlich zu Hause ist, spielt sie bislang eher eine Nebenrolle – so auch in der IT- und Netzwerkadministration. Aktuell ist absehbar, dass auch Netzwerksimulatoren in Zukunft über KI-Funktionen verfügen werden. Erste kommerzielle Produkte befinden sich in der Pipeline, beispielsweise Ekahau AI Pro [12] für die Konzeption von drahtlosen Netzwerken.
Derlei Systeme lassen auf eine automatisierte Problemerkennung hoffen. Vieles spricht dafür, dass entsprechende Funktionalitäten eine verbesserte Effizienz und präzisere Prognosen ermöglichen. Vermutlich wird sich auch die Fehlerbehebung vereinfachen. Wann mit KI-Unterstützung in Open-Source-Simulatoren zu rechnen ist, lässt sich nach heutigem Kenntnisstand nicht abschätzen. Ein grundsätzliches Problem der KI-Diskussion: Es mangelt vielfach an der empirischen Evidenz. Bislang liegen weder wissenschaftlich fundierte Folgenabschätzungen noch empirische Nachweise bezüglich der Wirksamkeit von KI vor. Einige Experten sprechen in diesem Kontext von dem fehlenden Puzzlestück.
Fazit
Moderne IT-Infrastrukturen müssen wachsende Anforderungen erfüllen und perspektivisch für steigende Belastungen gerüstet sein. Damit rücken die Planung und das Benchmarking als kritische Aufgaben verstärkt in den Fokus. Spezialisten für die Simulation von Netzwerk-Traffic erweisen sich dabei als wertvolle Unterstützung, denn sie helfen, Strukturen nachzubauen und auf den Prüfstein zu stellen. Dabei können Administratoren aus einem breiten Angebot schöpfen. Zu den interessantesten Werkzeugen zählen GNS3 und PNETLab. Im Einzelfall gilt es zu prüfen, welcher Spezialist die konkreten Anforderungen am besten abdeckt.