Wie im richtigen Netz

Wer testen will, wie gut eine neue Netzwerksoftware läuft oder wie das Netzwerk unter ungünstigen Bedingungen reagiert, braucht die entsprechende Testsoftware. Die freie Software "Nist Net" kann dem Netzwerkadministrator helfen, diese Problematik in den Griff zu bekommen.

Von: Frank-Michael Schlede

Zu den vielfältigen und sehr zeitaufwendigen Aufgaben eines Netzwerkadministrators gehören häufig auch die Planung und Installation von neuen Netzwerken und Applikationen. Dabei müssen allerdings eine ganze Reihe von Faktoren wie beispielsweise mögliche und nötige Bandbreite und Latenz gegeneinander abgewogen werden.

Hier sind es ganz besonders neue Anforderungen wie "Quality of Service" (QoS) oder auch neue Verbindungstechniken wie DSL (Digital Subcriber Line) oder HFC (Hybrid Fiber Coxial Cabel), die eine solche Planung deutlich erschweren können. Um die bestmögliche Lösung für neue Netzwerksoftware zu finden, sind umfangreiche Testläufe nötig. Im Prinzip stehen dem Verantwortlichen dabei zwei Methoden zur Verfügung:

- Bei einer Simulation läuft ein Modell des Codes in einer "künstlichen" Umgebung ab, während

- bei einem "Live"-Test hingegen die "echte" Software in der tatsächlichen Arbeitsumgebung eingesetzt wird.

Mit seiner Hilfe werden die Regeln für die Emulation gesetzt, mit denen dann verschiedene Testszenarien durchgespielt werden können.

Eine Simulation der zukünftigen Netzwerksoftware wird häufig verwendet, da sie in der Regel schnell und kostengünstig einzusetzen ist und reproduzierbare Testumgebungen zur Verfügung stellt. Allerdings bringt der Einsatz solcher Simulationen auch deutliche Nachteile mit sich: Soll die Software in der realen Netzwerkumgebung benutzt werden, so muss sie häufig neu übersetzt oder im schlimmsten Fall sogar umgeschrieben werden. Hinzu kommen die Unzulänglichkeiten der simulierten Umgebung: So kann es durchaus passieren, dass die Anwendungen, die innerhalb des Test-Environments keine Probleme bereiteten in der "realen" Netzwerkumgebung überhaupt nicht oder nur fehlerhaft funktionieren.

Hier bietet sich natürlich der "Live-Test" im echten Netzwerk an. Allerdings ist es in der Regel mit sehr hohen Kosten verbunden, ein Netzwerk schon während der Testphase auf den Stand "hochzurüsten", den man eigentlich erst ausprobieren möchte. Hinzu kommen die vielfältigen Probleme, die durch den Gebrauch von Testanwendungen im realen Netzwerk entstehen können. Um diese Probleme zu umgehen, können so genannte Emulatoren verwendet werden. Dabei geht es darum, das Verhalten einer neuen Netzwerksoftware in einer kontrollierten Umgebung zu reproduzieren. Dabei die Software in der realen Netzwerkumgebung läuft. Das bedeutet, es ist möglich, im existierenden Netzwerk eine kleine "Laborumgebung" zu schaffen, in der man die entsprechenden Belastungen und Probleme simulieren kann. Dadurch ist es möglich, die Testumgebung direkt mit dem bestehenden Netzwerk zusammenarbeiten zu lassen und auf diese Art mögliche Probleme sofort zu finden.

Das Softwarepaket "Nist Net" wurde zu genau diesem Zweck von Mark Carson am North American National Institut of Standards and Technology (Nist) entwickelt. Mit Hilfe dieser Software haben Netzwerkadministratoren und -Ent-wickler die Möglichkeit, eine ganze Reihe von Faktoren zu beeinflussen oder künstlich herbeizuführen, die entscheidenden Einfluss auf Durchsatz und Geschwindigkeit eines TCP/IP-Netzwerks haben können. Das Paket steht als Open-Source-Software zu Verfügung, kann aber nur unter Linux eingesetzt werden. Das Werkzeug arbeitet direkt auf der IP-Ebene und "hängt" sich zu diesem Zweck direkt in den Kernel des Linux-Systems ein. Die stabile Version der Software arbeitet im Moment auch nur mit dem 2.0.30-Kernel von Linux zusammen. Allerdings existiert seit April dieses Jahres auch ein so genanntes Alpha-Release, das mit der Kernel-Version 2.2.xx (2.2.5 - 2.2.14) eingesetzt werden soll.

Nist Net ersetzt den normalen Forwarding-Mechanismus für IP-Pakete im Linux-Kernel. Deshalb erfordert die Installation des Werkzeugs auch eine Neuübersetzung des Kernels, nachdem einige Patches eingespielt wurden. Die gesamte Installation der Software gestaltet sich dadurch etwas umständlich, zumal man natürlich einen Source-Tree auf seinem Linux-System installiert haben muss, um diese Änderungen überhaupt einspielen zu können.

Hier zeigt sich deutlich, wie eng der Emulator mit dem Kernel verzahnt ist.

Der übliche Weg, mit Nist Net zu arbeiten, wird so aussehen, dass diese Software auf einem Linux-System im Netzwerk installiert wird, das als Router fungiert. Durch die Software ist der Netzwerkadministrator nun in der Lage, gezielt Fehlerszenarios oder Belastungen des Netzwerkes "einzuspielen". Während das Kommandozeilen-Interface vornehmlich dazu dient, eine Verarbeitung über Skripte zu erlauben, können über die X11-Oberfläche der Software direkt bestimmte Regeln für die Emulation eingestellt werden. Jede Zeile der Anzeige steht dabei für eine Regel. Hier werden dann auch die Quell- und Zielrechner für die Netzwerkpakete eingestellt, für die eine Regel gelten soll. Wichtig dabei: Die Regeln sind nicht bidirektional! Das bedeutet, es ist die Aufgabe des Administrators, jeweils eine explizite Regel für jede Richtung zu definieren. Damit ist aber auch möglich, sehr genau definiert zu testen. Die Regeln sind relativ einfach zu setzen und werden im Softwarepaket erläutert.