Dynamips / Dynagen auf AWS ...

Wer eine on-demand dynamips/dynagen Installation braucht hat Amazon AWS zum Freund.

Im Moment bin ich wieder etwas am Cisco studieren und dynamips auf meiner doch nicht mehr ganz neuen Apple Kiste ist schon nicht ganz der Hit. Deshalb hab ich mir gedacht - AWS console einloggen und Server starten - wenn nicht für das für was wäre die Cloud sonst gut.

nach etwas googlen bin ich auf ein Anleitung gestossen für den install (http://www.iteasypass.com/Dynamips.htm)

Es wird der komplette GNS3 Stack installiert - aber das macht nichts .. Dynagen und Dynamips werden nur gebraucht davon für meine Zwecke.

yum install python python-devel xorg-x11-proto-devel libXext-devel gcc-c++ libXrender* PyQt4 PyQt4-devel qt qt-devel qemu-img libvirt

wget http://iweb.dl.sourceforge.net/project/gns-3/GNS3/0.8.7/GNS3-0.8.7-src.tar.gz
 tar -xvf GNS3-0.8.7-src.tar.gz -C /opt
 cd /opt
 ln -s gns3-legacy-GNS3-0.8.7 GNS3
 cd GNS3
 mkdir Dynamips IOS Project Cache Temp
 chmod o+rw Project Temp

 yum install libpcap


Das gute an AWS ist - wenn man eine stärkere Maschine braucht - einfach eine neue starten .. für das INE dynamips lab mit 13 devices reicht eine T2.micro instance nicht wirklich .. aber auf einer T2.medium hat es gut gestartet ...

die dynamips hypervisors starten per /etc/rc.local automatisch .. das macht das AMI image universell einsetzbar.

ich hatte dynamips zuerst als ec2-user gestartet .. jedoch für switch module (NM-16ESW) wie im INE lab verwendet wird eine loopback port aufgemacht welche die konfigurierten ethernet interfaces miteinander verbinden .. daher muss dynamips als root laufen.

$ netstat -an | grep ":100"
udp        0      0 127.0.0.1:10000             127.0.0.1:11000             ESTABLISHED 
udp        0      0 127.0.0.1:10001             127.0.0.1:11001             ESTABLISHED 
udp        0      0 127.0.0.1:10002             127.0.0.1:11002             ESTABLISHED 
udp        0      0 127.0.0.1:10003             127.0.0.1:11003             ESTABLISHED 
udp        0      0 127.0.0.1:10004             127.0.0.1:11004             ESTABLISHED 
udp        0      0 127.0.0.1:10005             127.0.0.1:11005             ESTABLISHED 
udp        0      0 127.0.0.1:10006             127.0.0.1:10007             ESTABLISHED 
...


Zuerst habe ich noch die Fehlermeldung "206-unable to create UDP NIO" bekommen .. der UDP NIO wird eben von diesem Switchmodul verwendet ..

wichtig: per default starten die ports welche von dynamips aufgemacht werden bei 12000 .. Wenn wie im INE lab zwei hypervisor laufen kommt es zum Problem das beide versuchen die NIO ports bei 12000 aufzumachen - was zur Fehlermeldung führt ..  Im .net file muss daher per hypervisor der "base udp port" definiert werden (das selbe würde bei GNS3 in der Einstellung gemacht)

[localhost:7200]

workingdir = /home/ec2-user/ine/working
udp = 10000

....

[localhost:7201]

workingdir = /home/ec2-user/ine/working
udp = 11000

danach wurde das .net file korrekt geladen ..

$sh s.sh 
Reading configuration file...

Network successfully loaded

Dynagen management console for Dynamips and Qemuwrapper/VBoxwrapper 
Version 0.13.1.20131002
Copyright (c) 2005-2011 Greg Anuzelli, contributions Pavel Skovajsa,
                        Jeremy Grossmann & Alexey Eromenko "Technologov"

=> list
Name       Type       State      Server               Console    AUX       
R1         3725       stopped    localhost:7200       2001       2100      
R2         3725       stopped    localhost:7200       2002       2101      
R3         3725       stopped    localhost:7200       2003       2102      
R4         3725       stopped    localhost:7200       2004       2103      
R5         3725       stopped    localhost:7200       2005       2104      
R6         3725       stopped    localhost:7200       2006       2105      
SW1        3725       stopped    localhost:7201       2007       2106      
SW2        3725       stopped    localhost:7201       2008       2107      
SW3        3725       stopped    localhost:7201       2009       2108      
SW4        3725       stopped    localhost:7201       2010       2109      
BB1        3725       stopped    localhost:7201       2011       2110      
BB2        3725       stopped    localhost:7201       2012       2111      
BB3        3725       stopped    localhost:7201       2013       2112      
FRSW       FRSW       always on  localhost:7201       n/a        n/a       
=> start R1
100-VM 'R1' started
=> start SW1
100-VM 'SW1' started
=> 

$ telnet 0 2001
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
Connected to Dynamips VM "R1" (ID 0, type c3725) - Console port
Press ENTER to get the prompt.

Rack1R1#
Rack1R1#
Rack1R1#
Rack1R1#
Rack1R1#
Rack1R1#
Rack1R1#sh runn
Building configuration...

Current configuration : 958 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Rack1R1
!
boot-start-marker
boot-end-marker
!
enable password cisco
!
no aaa new-model
memory-size iomem 5
ip cef
!
!
!


So jetzt kann es ans Lab gehen :-)