在Redhat AS 5.2上使用Dynamips创建一个c7200路由器
Hansel He <hansel@163.com>
2009-11-7
一、安装dynamips和dynagen
1、在dynagen网站(http://dynagen.org/)上直接下载2个文件:
http://sourceforge.net/projects/dyna-gen/files/
dynagen-0.11.0-1.fc9.noarch.rpm
dynamips-0.2.8RC2-1.src.rpm
(dynamips-0.2.8RC2-1.i386.rpm 没有安装成功,一直提示缺少依赖的libpcap.so.0.9,
安装了libpcap-0.9.4-12.el5和libpcap-devel-0.9.4-12.el5都不行)
2、编译安装
1)dynamips安装
rpm -i dynamips-0.2.8RC2-1.src.rpm
cd /usr/src/redhat/SPECS/
rpmbuild -bb dynamips.spec
cd ../RPMS/i386/
rpm -ivh dynamips-0.2.8RC2-1.i386.rpm
2)dynagen安装
rpm -ivh dynagen-0.11.0-1.fc9.noarch.rpm
使用命令rpm -qpl dynagen-0.11.0-1.fc9.noarch.rpm可以看到安装了哪些文件。
3、下载Cisco的IOS文件
到verycd上搜索dynamips可以找到工大普瑞的IOS文件包。
二、使用dynamips
1、IOS文件
复制7200的IOS文件unzip-c7200-js-mz.123-20.bin到/opt/dynamips/ios目录下
2、创建net文件
在/opt/dynamips/net下创建c7200.net文件,文件内容:
autostart = false
[localhost]
udp = 10000
[[7200]]
image = /opt/dynamips/ios/unzip-c7200-js-mz.123-20.bin
exec_area = 32
npe = npe-400
ram = 160
idlepc = 0x60755000
[[ROUTER R1]]
注意:如果不是7200的ios,请相应修改[[7200]]中的型号,否则会出现错误:
Unable to create instruction block for vaddr=0x0
insn_page_compile: unable to create JIT block.
VM 'R2': unable to compile block for CPU0 PC=0x0
3、运行dynamips
dynamips -H 7200
4、运行dynagen
在另外一个终端上运行:
dynagen /opt/dynamips/net/c7200.net
在dynagen的提示符=>下输入命令
start R1
启动R1路由器。
list命令可以看到目前虚拟的路由器,其他命令可以用help命令看到。
5、计算idlepc值
idlepc值是让dynamips知道如何更好的使用CPU,避免CPU占用率一直是100%。上面的范
例已经有idlepc值,你也可以重新计算一个。
telnet到路由器R1
在新的终端上输入命令:
telnet localhost 2000 (dynagen模拟的路由器的telnet端口从2000开始递增)
下面是实际的输出:
Would you like to enter the initial configuration dialog? [yes/no]: no
Press RETURN to get started!
*Nov 6 14:06:51.243: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Nov 6 14:06:52.243: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
*Nov 6 14:07:57.755: %SYS-5-RESTART: System restarted --
Cisco Internetwork Operating System Software
IOS (tm) 7200 Software (C7200-JS-M), Version 12.3(20), RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2006 by cisco Systems, Inc.
Compiled Tue 08-Aug-06 18:43 by kesnyder
*Nov 6 14:07:57.763: %SNMP-5-COLDSTART: SNMP agent on host Router is undergoing a cold start
*Nov 6 14:07:59.287: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
Router>
切换到dynagen控制台,输入命令
=> idlepc get R1
Please wait while gathering statistics...
1: 0x607f886c [20]
2: 0x607f8870 [44]
3: 0x60671c74 [72]
4: 0x60671cd4 [76]
5: 0x60671d08 [33]
6: 0x60671d18 [46]
7: 0x60753490 [78]
8: 0x6075466c [70]
9: 0x60754fdc [28]
* 10: 0x60755000 [55]
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 0x60755000 to R1
通过top命令可以看到dynamips进程的CPU占用率从100%降低到1~2%。
至此,用dynamips模拟一台c7200路由器已经完成,如果需要模拟多台路由器组成的网络拓扑,可以在net文件中进行增加。
详细net文件的用法可以参考:Dynamips_junos_v11_网络刀客.pdf。
使用DynamicsSee工具可以通过图形化的方式生成配置文件。
相关资源:
.打死不写博客 http://hi.baidu.com/dahaqian/blog
.工大瑞普Cisco网络技术论坛 http://ciscobbs.njut.edu.cn/bbs/
.NetEmu: http://www.netemu.cn/bbs/
.Dynagen网站:www.dynagen.org
.netDorker/网络刀客的BBS:www.netdorker.cn, www.eguodu.com
.dynamips作者blog:www.ipflow.utc.fr/blog, 作者BBS:7200emu.hacki.at