Einführung und Installation des Cisco Simulators Dynamips mit dem Front-End Dynagen

<DRUCK-Version als PDF>

Download des Dynagen&Dynamips
Die Programmierer des Dynagen haben auf ihrer Website http://dynagen.org/ eine URL abgelegt, die zum aktuellen Emulator-Paket führt. Ich selber bin unter http://sourceforge.net/project/showfiles.php?group_id=160317 fündig geworden. Im folgenden Text beziehe ich mich auf die Dynagen Version 0.10.1 mit dem Emulator Dynamips Version 0.2.8-RC1.

Installation des Simulator-Paketes  
Nach dem download des Paketes folgt die Installation. In meinem Falle habe ich mich für die „Windows Installer Package“ entschieden, da ich mit dem Windows XP auf meinem AMD 3500+ mit 2GB Ram gut klar komme.
Also starte ich das Package mit einem Doppel-Klick, gefolgt vom aufpoppen des Setup Wizards. Ein Klick auf „Next“ und „I Agree“ und schon war alles in C:\Programme\Dynamips installiert.
Ich habe die IOS Files von Cisco, wie unter C:\Programme\Dynamips\docs\tutorial.htm beschrieben, in das Verzeichnis C:\Programme\Dynamips\images gelegt. Damit das Starten der später genutzten Router nicht ewig dauert, habe ich die .bin-Files auch gleich entzippt und mit der Endung .image gekennzeichnet. Da der Emulator eigentlich für Linux gedacht ist, habe ich in der C:\Programme\Dynamips\dynagen.ini noch den Speicherpfad für die Idledb auf das Image-Verzeichnis umgebogen. Also in meinem Falle sieht der Kopf der dynagen.ini jetzt so aus:

# -----------------------------------------------------------------------------
# idledb option
# Specify the file that stores the idle-pc database
# Defaults to the user's home directory
# Usage:
idledb = C:\Programme\Dynamips\images\dynagenidledb.ini

Anlegen eines Routers
Nun zum eigentlichen Thema, wir legen einen Router an. Ich erkläre es mal am Beispiel eines simulierten Cisco 2691 Routers.
Auf eurem Windows-Desktop sollte sich jetzt eine Verknüpfung mit dem Namen „Dynagen Sample Labs“ sein. In diesem Verzeichnis erzeugen wir uns jetzt ein Unterverzeichnis mit dem Namen C2691. Wir kopieren aus dem Verzeichnis „simple1“ die „simple1.net“ in unser neues Verzeichnis C2691. Noch umbennen in „c2691.net“ und mit einem ASCII-Editor öffnen.

Der Text sieht dann zunächst wie folgt aus:
# Simple lab

[localhost]

    [[7200]]
    image = \Program Files\Dynamips\images\c7200-jk9o3s-mz.124-7a.image
    # On Linux / Unix use forward slashes:
    # image = /opt/7200-images/c7200-jk9o3s-mz.124-7a.image
    npe = npe-400
    ram = 160
        
    [[ROUTER R1]]
    s1/0 = R2 s1/0
    
    [[router R2]]
    # No need to specify an adapter here, it is taken care of
    # by the interface specification under Router R1

Das passen wir jetzt für unseren C2691 an und ändern den Ursprungstext in folgenden Text ab:
# Cisco 2691 Emulator

[localhost]
workingdir = C:\Programme\Dynamips\sample_labs\C2691\

    [[2691]]
    image = C:\Programme\Dynamips\images\C2691-adventerprisek9-mz.124-15.T1.image
    ram = 256
    confreg = 0x2102
    ghostios = true
    sparsemem = true
        
    [[ROUTER C2691]]
    model = 2691
    console = 2000
    aux = 3000
    mac = 12:34:56:78:90:AB
#    slot1 = NM-1FE-TX
    slot1 = NM-16ESW
    wic0/0 = WIC-1T
    wic0/1 = WIC-1T
    wic0/2 = WIC-1T

Starten des simulierten C2691 Routers
Zu erst muss der „Dynamips Server“ gestartet werden. Einfach auf das Icon auf dem Desktop klicken. Es sollte dann ein DOS-Fensterchen aufpoppen. Als nächstes den Router starten. Die Datei findest du auf dem Desktop in dem verknüpften Verzeichnis „Dynagen Sample Labs“, dann „C2691“. Ebenfalls anklicken und die editerte „c2691.net“ durch Doppelklick starten. Das Resultat sollte ein weiteres DOS-Fensterchen sein, mit der Warnung das kein IDLE-PC Wert gesetzt ist. Zum IDLE-PC Wert kommen wir gleich, jedoch testen wir jetzt die Erreichbarkeit unseres Routers in dem wir ein Telnet auf 127.0.0.1 Port 2000 ausführen. Wenn alles geklappt hat, meldet sich der Router und du bist auf dem Console-Port.

IDLE-PC Wert
Was hat es mit dem IDLE-PC Wert auf sich? Mit diesem Wert legt man die Anzahl der CPU-Zyklen für das entsprechende IOS fest, die Details stehen unter C:\Programme\Dynamips\docs\tutorial.htm. Wie wirkt sich dieser Wert aus? Ganz einfach, schau mal mit STRG+ALT+Entfernen unter Systemleistung was deine CPU gerade so macht. Bei mir sind es 100% - also eine schlechte Umgebung um mehrere Router zu starten. Der IDLE-PC Wert ändert dieses gravierend. Im folgenden Test  stellen wir ihn für das genutzte IOS mal ein. Der Wert muss übrigens für jedes IOS neu ermittelt werden!!!

Okay, jetzt ermitteln wir den Wert für den C2691 mit dem IOS C2691-adventerprisek9-mz.124-15.T1.image.
Der Router sollte zu Ende gebootet haben, dann in das Dynagen DOS-Fensterchen reingehen und schauen wir der Router heißt:
=> list
Name       Type       State      Server          Console
C2691      c2691      running    localhost:7200  2000

Jetzt lassen wir den Simulator mögliche Werte einsammeln und uns die besten mit * Kennzeichnen.
Sollte beim ersten Anlauf kein Wert mit * dabei sein kontrolliert bitte, ob der Router zu Ende gebootet hat und nicht im Initialconfiguration-Dialog hängt!!
Wie gesagt, sollte kein * dabei sein einfach nochmal den Idlepc-Wert suchen lassen und das geht so:

=> idlepc get C2691
Please wait while gathering statistics...
*  1: 0x60bc0034 [54]
   2: 0x60bc0470 [50]
   3: 0x60bc0628 [39]
   4: 0x60bc0650 [31]
*  5: 0x6027b100 [58]
   6: 0x6027b178 [26]
   7: 0x60bc482c [60]
*  8: 0x60594970 [58]
   9: 0x60bbee00 [69]
  10: 0x60bbee34 [24]
Potentially better idlepc values marked with "*"
Enter the number of the idlepc value to apply [1-10] or ENTER for no change:

In meinem Falle nehme ich die Zeile 8 und schwups, schon ist die CPU von meinem PC wieder im grünen Bereich.
Den Wert speichere ich dann auch gleich mal in die .net Datei.
=> idlepc save C2691
idlepc value saved to section: ROUTER C2691

Und lege sie in der Idle-PC Datenbank für dieses IOS ab.
=> idlepc save C2691 db
idlepc value for image "C2691-adventerprisek9-mz.124-15.T1.image" written to the database

Und schon ist der Cisco 2691 zu gebrauchen. Die CPU eures Rechners sollt bei einem guten IDLE-PC Wert so zwischen 10% bis 20% Last auf den Simulatorprozess verwenden.
Wenn ihr wie am Anfang des Text besprochen die C:\Programme\Dynamips\dynagen.ini angepasst habt, könnt ihr jederzeit den IDLE-PC Wert nachschlagen oder falls notwendig löschen und neu ermitteln.