在Redhat AS 5.2上使用Dynamips创建一个c7200路由器

在Redhat AS 5.2上使用Dynamips创建一个c7200路由器
Hansel He <[email protected]>
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 

你可能感兴趣的:(ios,c,redhat,interface,Cisco,路由器)