Dynamips使用简介
2006-11-19 23:26
Dynamips使用简介

1 Dynamips简介
Dynamips是用于模拟CISCO7200 IOS的模拟器,出现在2005年8月,由一名叫chris fillot的法国人开发。它的主要功能是在一台PC上模拟多台CISCO7200路由器,最近,其增加了对CISCO3600系列路由器的模拟功能,其提供了很多参数,用于修改不同情况下的模拟器配置情况。
本文档仅介绍Dynamips的部分命令,详细命令请参考文章后附带的dynamips的说明文件。
2 获取路径
在0.2.6版的Dynamips中,建议使用WINPCAP 4.0,但是WINPCAP 4.0不能与WVRP结合使用,需要注意。
3 构造一个拓扑
3.1 编写一个拓扑文件,然后启动
编写最简单的一个拓扑文件,拓扑如下:
 
50d8eadd33674bef77c63801.jpg

中间使用SERIAL口连接。
配置文件如下:
RT1:
dynamips-wxp.exe -T 2000 -P 7200 -r 128 -X --disk0 2 -t npe-400 -c 0x2102 -p 0:C7200-IO-FE -p 1:PA-4T+ -s 1:0:udp:11110:127.0.0.1:11210 C7200-P.BIN --idle-pc=0x6064b540
RT2:
dynamips-wxp.exe -T 2001 -P 7200 -r 128 -X --disk0 2 -t npe-400 -c 0x2102 -p 0:C7200-IO-FE -p 1:PA-4T+ -s 1:0:udp:11210:127.0.0.1:11110 C7200-P.BIN --idle-pc=0x6064b540
启动后,两台路由器的显示如下:
RT1:
Cisco Internetwork Operating System Software
IOS (tm) 7200 Software (C7200-P-M), Version 12.2(40), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2006 by cisco Systems, Inc.
Compiled Thu 12-Oct-06 20:08 by pwade
Image text-base: 0x60008940, data-base: 0x610EA000
RT2:
与RT1相同,不再描述。
配置使用RT1的SERIAL 1/0与RT2的SERIAL 1/0后,两台路由器可以通讯,如下:
RT1:
interface Serial1/0
 ip address 1.1.1.1 255.255.255.0
 encapsulation ppp
 serial restart-delay 0
 clock rate 56000            
RT2:
interface Serial1/0
 ip address 1.1.1.2 255.255.255.0
 encapsulation ppp
 serial restart-delay 0
如上配置后,两端的路由器之间的串口可以通讯:
RT1#ping 1.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/38/76 ms
3.2 常用Dynamips的参数解释
以RT1的配置为例说明:
dynamips-wxp.exe -T 2000 -P 7200 -r 128 -X --disk0 2 -t npe-400 -c 0x2102 -p 0:C7200-IO-FE -p 1:PA-4T+ -s 1:0:udp:11110:127.0.0.1:11210 C7200-P.BIN --idle-pc=0x6064b540
-T :指明用户Console连接的TCP端口
-P :指出了模拟的路由器平台,这里是7200,可以选择7200,3620,3640,3660
-r :指出使用使用的虚拟内存的大小
-X :使用物理内存模拟路由器,不使用文件模拟
--disk0 2 : PCMCIA ATA disk0: 的大小
-t :7200主控的类型,可选npe-100,200,400
-c :寄存器的值
-p :定义板卡类型,请注意相应的语法为:-p <SLOTNUM>:<SLOTTYPE>
-s :重要参数,将板卡绑定到网卡的IO上,格式常用的有以下两种:
1)gen_eth:<dev_name>
绑定一个真实的以太网适配器,可以如下使用:
-p 0:C7200-IO-FE -s 0:0:gen_eth:"\Device\NPF_{93CC2251-F6B6-4C0F-A19F-4E7D1134D12B}”
此命令将一块网卡与模拟的C7200主控板上的以太口连接起来。
2)udp:<local_port>:<remote_host>:<remote_port>
-s 1:0:udp:11110:127.0.0.1:11210
使用udp socket进行通讯,示例中就是如此配置,所以也可以在两台PC上模拟路由器,然后通讯。
--idle-pc :用于解决使用模拟器后CPU占用率100%的问题,不同的IOS的版本,idle-pc值不同,获得idle-pc的值的方法如下:
在使用模拟器启动IOS后,进入特权模式,输入write memory,然后按下CTRL+]后再按i,此时在dynamips的窗口上会出现收集信息的提示,如下:
c02339d3704e6d003bf3cf02.jpg

 
等待一会后,在屏幕上会显示一些16进制的数值,一般选择其中count最大的值作为idle-pc。
 
ae015be7fa60f42eb83820c4.jpg

配置idle-pc后,再启动dynamips,此时CPU占用率已经下降。
4 Dynamips常用方法
4.1 与本机网卡连接
与本地网卡连接后,Dynamips就相当于连接到了一个LAN上,这样,如果将此网卡与我司设备相连,那么就可以与我司设备通讯了。与网卡连接的方法如下:
-p 0:C7200-IO-FE -s 0:0:gen_eth:"\Device\NPF_{93CC2251-F6B6-4C0F-A19F-4E7D1134D12B}”
此配置就是将一块网卡与FA0/0连接起来。
与网卡相连接,首先要获得连接网卡的GUID,可以使用ethereal获得.
或者安装完毕Dynamips后,安装目录下面会有文件:Network device list.bat,运行该文件,即可得到如下信息:
 
“Device\NPF_{6F8810C5-F00B-4B4A-9233-B99D85ED3B24}”就是网卡的GUID。
如果没有安装Ethereal,可以用如下方式获得:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\NetworkCards\
其中的值如下:
"ServiceName"="{28C2A809-E6EE-43BD-B396-C7878F91C6E8}"
"Description"="ADMtek AN983 10/100 PCI Adapter"
其中{28C2A809-E6EE-43BD-B396-C7878F91C6E8}就是网卡的GUID,按照上面的格式加上Device\NPF_就可以了。
4.2 模拟多台路由器
模拟多台路由器的方法可以有两种,第一种是建立多个目录,第二种是使用-i参数,这里推荐第一种方法。
首先,建立多个目录, 
然后,将配置好的启动文件拷贝到各个目录中,启动即可。注意配置文件中的文件路径,一般应加上..\,标识使用的文件在上一级目录中。
4.3 解压IOS版本
在获得到一个IOS版本后,为了获得更快的启动速度,应将其解压使用,方法为:
使用WINRAR将获得的IOS解压。如下:
 
将原始的IOS解压后,使用就可以了。
-来自华为3COM(乔肖桉)