一、Dynamips与Boson的区别
Boson是仅仅是模拟Cisco的命令;而Dynamips则是模拟Cisco的IOS,通过模拟Cisco这个IOS,能得到一个真实的Cisco环境。
Dynamips是一个Cisco路由器模拟软件,它可以模拟Cisco 2691,3620,3640,3660,3725,3745和Cisco7206硬件平台,而且可以运行标准的Cisco IOS文件。
Dynagen 是Dynamips的一个基于文本的前端控制系统,它采用”Hypervisor”超级监控模式和Dynamips通信。Dynagen简化了虚拟网络的创建和工作。
可以简单地认为:
Dynamips 作用:模拟CiscoIOS 对应文件:.BIN文件
Dynagen 作用:模拟网络拓扑 对应文件:.net文件
二、程序下载、安装
1、下载要用到的软件
前提文件(WinPcap用于提供桥接路由器接口到物理网卡,就是将物理网卡作为虚拟路由器的网卡,可以让虚拟路由器和真实环境中的设备通信),
WinPcap_4_1_2.exe
Dynamips和Dynagen安装文件
Dynamips_win_setup_0.2.6-RC1-0.6.0.exe
Dynagen-0.11.0_win_setup.exe
Cisco3620路由器的IOS文件,这里找到的是3620
unzip-c3620-i-mz.122-37.bin
2、安装:
首先安装WinPcap(否则无法安装dynamips),只能安装在默认路径下C:\Program Files\WinPcap
再安装dynamips和dynagen,也只能安装在默认路径下C:\Program Files\Dynamips
安装完后,桌面有三个快捷方式:Dynamips Server、Network device list、Pemu Server,还有一个文件夹快捷方式Dynagen sample Labs。
3、Dynamips的两个重要目录:(C:\Program Files\Dynamips)
images目录:用于存放Cisco的IOS文件
sample_labs目录:用于存放网络拓扑文件
三、配置
本文以Cisco3620为例。
1、首先将Cisco3620路由器的IOS文件unzip-c3620-i-mz.122-37.bin拷贝到
C:\Program Files\Dynamips\images目录下。
2、网络拓扑的编写(编写 .net文件)
在C:\Program Files\Dynamips\sample_labs下新文件夹test,并在里面建立一个后序名为.net的test文件,然后进行编辑。
这是一个简单的测试事件,表示两个路由器R1和R2,R1的s1/1连接到R2的s1/1;具体内容如下,#表示注解(程序不执行),由于idlepc值暂时未知,先不填写。
autostart = false
[localhost]
port = 7200
udp = 10000
`router R1`
image = \Program Files\Dynamips\images\unzip-c3620-i-mz.122-37.bin
model = 3620
console = 3001
ram = 64
confreg = 0x2142
#idlepc =
exec_area = 32
mmap = true
#slot0=NM-4E
#slot1 = PA-4T
s1/1 = R2 s1/1
`router R2`
image = \Program Files\Dynamips\images\unzip-c3620-i-mz.122-37.bin
model = 3620
console = 3002
ram = 64
confreg = 0x2142
#idlepc =
exec_area = 32
mmap = true
#slot0=NM-4E
#slot1 = PA-4T
(网络拓扑文件基本参数的定义,见本文最后)
四、运行
1、首先运行Dynamips Server(直接双击运行桌面上的快捷方式可以了),出现“Hypervisor TCP control server started”就表示正常启动了,注意,这个是服务器端,要一直开着(无法最小化到系统)。
2、运行test.net文件(在C:\Program Files\Dynamips\sample_labs\test里),打开test.net时,Dynagen会自动运行,同时网络文件被启动。
输入start R1命令启动R1,启动时会提示没有idle-pc value,
输入 idlepc get R1命令,获取idle-pc value,等待一会儿,会列出许多值,将count值最大(图示中是ox6036cr34[77],count是77)的写入到test.net中。需要手动编辑,注意,要将idlepc前的#去掉,R1、R2都改为这个值。然后关闭当前运行的的Dynagen及Dynamips窗口。
3、重新运行Dynamps及test.net,即再按1、2步骤再来一回,这里将R1、R2都启动。
启动R1,命令:start R1,
启动R2,命令:start R2,
命令:list,查看虚拟实验环境中的所有设备;
命令:start R1 R2,同时启动R1、R2;
命令:stop R1 R2,同时关闭R1、R2
R1、R2启动时,Dynamips窗口会显示相息,如下图所示
五、使用SecuretCRT操作路由器
在以上操作中,路由器R1、R2正常启动了,但跟现实中路由器一样,PC机需要通过telnet方式对它进行操作。
简单而不大好用的方法是,运行命令窗口,使用telnet命令进行远程操作
比如访问R1,命令为:telnet 127.0.0.1 3001
(注,这里的3001是拓扑文件中的console = 3001)。
另外,也可以在上面运行的Dynagen窗口中执行telnet 命令
比如访问R1,命令为:telnet R1
当然,比较常见的方法是使用软件SecuretCRT。
这里使用的是SecuretCRT6.7,安装过程没什么好注意的,一路默认就是了。
第一将运行,会出现Quick Connect对话框,设置如下:
Protocol,选择Telnet方式;
Hostname,由于实验环境是运行在本地,输入127.0.0.1
Port,端口是net文件中指定的console的值,这里要连接R1,所以输入3001
设置完,点击“Connect”按钮即可连接,如下图所示,标签栏与Hostname一样,为方便起见,右击对其rename为R1
在Connect in Tab中,使用同样的方法连接R2,
同时连接R1和R2,按 Ctrl+Tab,可切换标签
详解网络拓扑文件
网络拓扑文件基本参数的定义
autostart = false
[localhost]
port = 7200
udp = 10000
`router R1`
image = \Program Files\Dynamips\images\unzip-c3620-i-mz.122-37.bin
model = 3620
console = 3001
ram = 64
confreg = 0x2142
idlepc = ox6036cr34
exec_area = 32
mmap = true
#slot0=NM-4E
#slot1 = PA-4T
s1/1 = R2 s1/1
autostart:定义双击拓扑文件后,是否运行路由器。true表示自动运行;false表示不自动运行(默认自动运行)。
image:必须,定义IOS文件存放的位置。
ram,必须,定义为路由器分配内存的大小。模拟路由器最小64 ;模拟交换机最小96
(如果希望速度块一点,可分配多一点的内存)。
Model,必须,定义模拟路由器的型号。这里用3620的IOS,所以定义为3620。
Console,必须,定义路由器的console口的端口号。
Idlepc,优化必须,正确定义该值能解决CPU占用100%的问题。
slot0、slot1,可选,定义路由器模块,3620可支持2个模块。NM-4E表示四个以太口。
在实际应用中,这个拓扑文件,是有许多写法的,玩弄起来,就像程序员写编程一样,有声明、有嵌套,这个以后再作进一步分析。
本文转自Sunshyfangtian 51CTO博客,原文链接:http://blog.51cto.com/sunshyfangtian/771320,如需转载请自行联系原作者