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.

Installation:

Installation des Simulator-Paketes

Ich habe den Simulator auf einem Server installiert, auf dem ein Ubuntu 9.04 Desktop Version läuft. Der Server hat 4 Kerne 2,8 GHz mit 4GB RAM. Wieviel RAM ihr in euren Server steckt ist egal Dynamips nimmt sich alles, aber es gilt "viel hilft viel".

apt-get install dynamips
apt-get install dynagen

Danach muss man noch zwei Verzeichnisse anlegen, einmal eins in dem das IOS liegt und das andere für die Konfigurationsdateien die Dynamips erzeugt.

root@ubuntu:/opt# ls -l
drwxr-xr-x 4 root root 4096 2009-10-28 12:46 dynagen
root@ubuntu:/opt# ls -l dynagen/
drwxr-xr-x 2 root root 4096 2009-10-28 13:19 dynagenuser
drwxr-xr-x 2 root root 4096 2009-10-28 13:02 images
root@ubuntu:/opt# ls -l dynagen/images/
-rw-r--r-- 1 user user 24471228 2009-10-28 13:02 c7200-spservicesk9-mz.122-33.SRD3.bin

Konfigurationsdatei:

Jetzt müssen wir eine Konfigurationdatei erstellen. Dies ist eine Text Datei mit .net Endung.

[172.16.53.138] --> IP-Adresse des Servers

workingdir = /opt/dynagen/dynagenuser --> Working Directory auf dem Server
console = 2001
autostart = false --> Router müssen manuell gestartet werden

[[7200]] --> Router/Switch Model
image = /opt/dynagen/images/c7200-spservicesk9-mz.122-33.SRD3.bin --> IOS-Version die gebootet wird
npe = npe-400 --> NPE
ram = 160 --> RAM
slot1 = PA-2FE-TX --> Module die im Router installiert werden
slot2 = PA-2FE-TX --> Module die im Router installiert werden
midplane = vxr --> Midplane Standard oder VXR
sparsemem = false --> Enable oder Disable Sparse Memory

[[ROUTER Router1]]
F0/0 = Sw1 1
F0/1 = Sw1 2
F1/0 = Sw1 3
F1/1 = Sw1 4
model = 7200

[[ROUTER Router2]]
F0/0 = Sw1 5
F0/1 = Sw1 6
F1/0 = Sw1 7
F1/1 = Sw1 8
model = 7200

[[ROUTER Router3]]
F0/0 = Sw1 9
F0/1 = Sw1 10
F1/0 = Sw1 11
F1/1 = Sw1 12
model = 7200

In meinem Beispiel ist z.B. vom Router1 das FastEthernet 0/0 mit dem Port 1 am Switch verbunden. Das FastEthernet 0/0 vom Router 2 ist mit Port 5 vom Switch 1 verbunden. Jetzt müssen wir die beiden Ports am Switch 1 in ein Vlan (Vlan 2) konfigurieren und wir haben unseren ersten Link.

[[ethsw Sw1]]
1 = access 2 # Router1 0/0
2 = access 8 # Router1 0/1
3 = access 1 # Router1 1/0
4 = access 1 # Router1 1/1

5 = access 2 # Router2 0/0
6 = access 9 # Router2 0/1
7 = access 1 # Router2 1/0
8 = access 1 # Router2 1/1

9 = access 8 # Router3 0/0
10 = access 9 # Router3 0/1
11 = access 1 # Router3 1/0
12 = access 1 # Router3 1/1

Zur Vollständigkeit sollte man noch hinzufügen, dass man am Switch auch Trunks konfigurieren kann:

[[ethsw Sw1]]
1 = dot1q 2 # Trunk-Port mit native Vlan 2

Starten des Dynamips Server

Zuerst muss der „Dynamips Server“ gestartet werden. Danach führen wir die Konfigurations Datei aus Lab1.net aus. Beim ersten Starten werden die Router ohne IDLE-PC Wert gestartet, den müssen wir jetzt einmal konfigurieren.

Ausführen der Konfigurationsdatei

Entweder ein Doppelklick auf die neu erstellte *.net Datei, oder über das Terminal. Der Output sollte so aussehen.

bz-mac:$ /Applications/Dynagen/Dynagen.app/Contents/Resources/dynagen '/Applications/Dynagen/sample_labs/Tutorial-Lab/tutorial-lab.net' ; exit
Reading configuration file...
Network successfully loaded
Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa

=>

Mit "list" kann man sich den Status der Router anzeigen lassen. Wir hatten mittels "autostart = False" gesagt, dass wir die Router manuell starten. Für den Anfang durchaus empfehlenswert.

=> list
Name Type State Server Console
Router1 7200 stopped 172.16.53.152:7200 2001
Router2 7200 stopped 172.16.53.152:7200 2002
Router3 7200 stopped 172.16.53.152:7200 2003
Sw1 ETHSW always on 172.16.53.152:7200 n/a
=>

Jetzt können wir den ersten Router starten. Hier kommt gleich eine Warnung, weil wir noch keinen "IDLE-PC Wert" festgelegt haben. Der IDLE-PC Wert legt die die Anzahl der CPU-Zyklen für das entsprechende IOS fest, daher muss man beim starten eines jeden IOS den IDLE-PC Wert neu festlegen. Ohne richtig konfigurierten Wert liegt die CPU des Dynamips Servers andauernd bei 100%.
Den IDLE-PC Wert ermitteln und konfigurieren wie folgt:
Wir starten einen Router, verbinden uns auf den Console Port des Routers und warten solange bis der Router samt Interfaces vollständig gestartet ist. Es sollten keine Meldungen mehr auf der Console erscheinen.
In der mitgelieferten Konfigurationsdatei "dynagen.ini" kann man, je nach verwendetem Terminal Programm, Dynagen so konfigurieren dass nach Eingabe von z.B. "console /all" das Terminal startet. Bei iTerm werden auch named Tabs unterstützt. Dazu muss man nur die Zeile für das Terminal Programm seiner Wahl "ausremmen" (gibt's das Wort). Unterstützt werden für Windows TeraTerm, Putty und SecureCRT, für Linux Xterm und für MAC OS Terminal und iTerm.

=> start Router1
Warning: Starting Router1 with no idle-pc value 100-VM
'Router1' started
=> console Router1

=> idlepc get Router1
Please wait while gathering statistics...
1: 0x61c38e08 [67]
2: 0x61c38e38 [27]
3: 0x61c38e3c [60]
4: 0x601d2ce0 [39]
5: 0x601d2ce4 [47]
6: 0x606b5434 [45]
7: 0x606b6c74 [69]
8: 0x606b6cdc [23]
9: 0x606b7f18 [67]
* 10: 0x606b7f40 [57]
Potentially better idlepc values marked with "*"
Enter the number of the idlepc value to apply [1-10] or ENTER for no change: 10
Applied idlepc value 0x606b7f40 to Router1

Die mit "*" markierten Werte sind die, die wir konfigurieren müssen. Beim drücken der Nummer, z.B. 1 sollte die CPU merklich runtergehen, ansonsten muss man den nächsten Wert nehmen. Dann den IDLE-PC Wert für diesen und die anderen Router speichern.

=> idlepc save Router1
idlepc value saved to section: ROUTER Router1
=>
=> idlepc copy Router1 /all
Router2: idlepc set to 0x606b7f40
Router3: idlepc set to 0x606b7f40
=>

Wie schon erwähnt muss man beim starten eines anderen IOS's das ganze Procedere nochmals durchspielen. Von daher ist es günstig den IDLE-PC Wert für dieses IOS in die dynagenidledb.ini zu schreiben. Das erleichtert die Arbeit wenn man von einem zum anderen IOS hin und her switchen muss.

=> idlepc save Router1 db
idlepc value for image "c7200-spservicesk9-mz.122-33.SRD3.bin" written to the database

Das war's, wir stoppen alle Router, starten nochmal den Dynamips Server neu und können anfangen unsere Router zu konfigurieren.