免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1486 | 回复: 0
打印 上一主题 下一主题

windows xp上的dynamips使用指南 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-26 13:01 |只看该作者 |倒序浏览
windows xp上的dynamips使用指南
(本文以bat命令行方式使用模拟器,和unix下面的使用非常类似)

一,概念
    cisco路由器和pc机类似,硬盘对应路由器的flash, 操作系统对应路由器的ios,内存ram的概念一致。
    不同的ios,对路由器 flash ,ram 的容量要求不同,模拟器上只需要满足ram。
    cisco设备上模块插槽和端口都是从0开始计数。
   
    cisco 路由器的配置分两种,一种是当前在内存中的,成为running-config, 另外一种存储在非易失性内存nvram中start-config,
   路由器开机引导后,由nvram中的配置载入到内存中形成running-config, 在路由器上每输入一个命令就进入running-config 并 立即生效,
   如果要把新命令保存到nvram中,输入命令write mem,或者 copy running  start。
二,准备工作
   1,下载dynamips:
http://www.ipflow.utc.fr/blog/
,
      最新版本为 0.2.7-RC3 release
      
      解开到任意目录,我用了d:\dm目录,真正需要的是:dynamips-wxp.exe,README-0.2.7.txt,cygwin1.dll,三个文件。
      
      我把dynamips-wxp.exe改名了,改称dm.exe, 因为文件名太长不好打。
      readme0.2.7.txt 也需要,因为要查看模拟器支持的模块和参数
      cygwin1.dll 模拟nix环境。
  
      这样d:\dm就是工作目录。工作目录下面目前只有这三个文件。
   2,下载 cisco ios,最好用 3660的IOS,因为模拟器这个型号可选模块多。
      如果做atm试验,还需要7200的IOS。
      
      3660为例,建立初始环境,假设下载了ios文件为c3660nnn.bin,放在:d:\dm工作目录下
      假设这个ios运行需要128M ram。
      
      将c3660nnn.bin改扩展名为rar, 然后用winrar解开成 c3660nnn-ex.bin,文件名随意。
      解开后原来的c3660nnn.rar 也就是c3660nnn.bin 就不再需要了,删除都没关系。
      这样得到解压缩的 c3660nnn-ex.bin是为了提高模拟器启动过程,因为他每次启动时候不用再自动解压缩了。
三,初始工作
  1,建立ghost文件,这是因为要节省空间,比如要用到6个路由器,启动每个模拟实例,都会在硬盘上形成映像空间。
     通过建立ghost文件,使这6个相同型号的模拟路由器共用一段映像空间存放启动代码。
  
     进入dm目录,执行命令:
      dm -P 3600 -t 3660 -r 128 -g c3660_ghost c3660nnn-ex.bin
      命令中-P 3600 -t 3660 指定模拟3660路由器
      -r 128 指定需要128M 内存
      -g c3660_ghost 产生一个名为 c3660_ghost的 ghost文件(共用启动映像)
      
   2,确定 --idle-pc值,这是为了解决模拟器独占cpu,利用率达到100%问题。
      在dm目录下,执行命令:
      dm -P 3600 -t 3660 -r 128 -G c3660_ghost c3660nnn-ex.bin
      这次是大写的G。
      由于还没有配制,路由器会提问是否要进入初始配置对话框:
      would you like to enter the initial configuration dialog? [yes/no]:
      输入 n ,按回车出现:
      press return to get started!
      官方说明这个时候按下" ctrl + ]" 组合键,
      我发现最好还是直接按回车,出现路由器提示符 router>,然后按下" ctrl + ]" 组合键,然后按下 i
      稍等,会出现几个数值,如: 0x60529644。。。如果你懒得纪录,就把屏幕拷贝下来。
      关闭这个dos窗口。
   3,在dm目录下,执行命令:
      dm -P 3600 -t 3660 -r 128 --idle-pc 0x60529644 -G c3660_ghost c3660nnn-ex.bin  
      等待路由器启动完成,看cpu利用率在10%以下,ok完成任务。
      否则,换一个0x6052xxxx值,用上述命令继续启动路由器测试cpu利用率。
   
   4,至此,得到idle-pc值,在dm目录下建立第一个路由器的工作目录 R1 ,
      在dm目录下为R1 建立启动批处理命令R1.bat
title R1
@echo off
cd R1
D:\dm\dm.exe -P 3600 -t 3660 -r 128 -i 1  --idle-pc 0x60529644 -G c3660_ghost c3660nnn-ex.bin  
      参数 -i 1 表示这是序号为1的模拟器运行实例,因为不会只运行一个模拟器,会有多个同时运行 -i 值应该不同。
  
   5 重复步骤4可以建立多个路由器。
      比如建立第二个路由器R2
     在dm目录下建立第一个路由器的工作目录 R2 ,
      在dm目录下为R2 建立启动批处理命令R1.bat
title R2
@echo off
cd R2
D:\dm\dm.exe -P 3600 -t 3660 -r 128 -i 2  --idle-pc 0x60529644 -G c3660_ghost c3660nnn-ex.bin  
6 现在在dm目录下,除了原先的三个文件,还有3660的一个ios解压缩bin文件,一个ghost虚拟启动文件,其他文件都是临时文件,
   可以删除,以后用 bat启动每个路由实例都有各自的工作目录,不会再在dm下面形成临时文件。
   
   对应的R1,R2,R3。。。。。目录下保存了每个路由器工作环境和配置保存。

四 dynamips-xp.exe 命令参数
   通过步骤三,建立了工作环境。但还只是建立了各路由器的启动命令。对于不同的连接方式,需要用到 -p -s这两个重要参数。
   -p :  
             用来指定模拟路由器的已经安装的模块,以上文的3660为例,可以有6个插槽位,从0开始计数分别为0,1,2,3,4,5。
             3660模拟器缺省在slot0带两个快速以太网接口,f0/0 f0/1。
             如果要在插槽1,就是第二个插槽位安装NM-4T模块:-p 1:NM-4T , 这样就有了4个串口,分别是s1/0 ,s1/1,s1/2,s1/3。
             s 代表串口, 1为 插槽位,后面 0-3 为此模块上4个串口的标号。
             在 readme-0.2.7.txt中有可选的模块列表。
             -p 决定了单个路由器的物理组成。
  -s    用来指定绑定路由器上的端口,-s 决定了路由器之间,路由-交换机,路由-pc之间的物理连接。
        
        可以把路由器的端口绑定到pc机上真实的物理网卡上,这样pc机的网卡就和路由器的这一接口桥接起来。
        使用gen_eth参数,-s 0:0:gen_eth:"\Device\NPF_{5FCDCEE4-1549-4F50-AFD1-467021AF1075}"
        第一个0代表模块,第一个模块; 第二个0代表此模块上的端口号,第一个模块上的第一个端口。
        后面:"\Device\NPF_{5FCDCEE4-1549-4F50-AFD1-467021AF1075}"这是通过dynamips-xp -e 命令得到的pc机的网卡名。
        另外一个用处最广的是udp参数,实例:
        -s 0:1:udp:11002:127.0.0.1:21115
       第一个模块上的第二个端口,使用udp 11002端口,和远端udp21115端口联接。可以想象对端那个设备应该是有
        -s ?:?:udp:21115:127.0.0.1:11002 ,?表示不能确定对端的模块和端口号。
       多个设备连接的时候,制定规则就非常重要,不然udp端口就会很混乱。
       我是这么制定规则的,以供参考
       -s n:n:udp:abcde:127.0.0.1:abcde
       a 代表被模拟对象的类别 --- 1 路由器  2 以太网交换机 3 模拟主机  4 帧中继  5 atm
       b 表示设备序号,因为有多个同类型设备:路由器(交换机,模拟主机)  ---   第几个 路由器(交换机,模拟主机)
       c 代表模块号,
       de 两位用来表示端口号,因为模块上的端口数目可能大于10
        
                    
note: 使用不同的拓扑只要使用不同的批处理,
      我的第一个第二个路由器的启动命令.
      r1.bat:
title R1
@echo off
cd R1
D:\dynamips\dm\dm.exe -P 3600 -t 3660 -r 96 -i 1  -p 1:NM-4T  -p 2:NM-4T -p 3:NM-4T -s 0:0:gen_eth:"\Device\NPF_{5FCDCEE4-1549-4F50-AFD1-467021AF1075}"  -s 0:1:udp:11002:127.0.0.1:12002   --idle-pc 0x60529644 -G ..\ghost_3660  ..\c3660-jk9o3s-mz_123-22.bin
      r2.bat:
title R2
@echo off
cd R2
D:\dynamips\dm\dm.exe -P 3600 -t 3660 -r 96 -i 2  -p 1:NM-4T  -p 2:NM-4T -p 3:NM-4T -s 0:1:udp:12002:127.0.0.1:11002 --idle-pc 0x60529644 -G ..\ghost_3660  ..\c3660-jk9o3s-mz_123-22.bin
     
  
   

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19694/showart_310127.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP