dynamips是一个模拟CISCO路由器IOS运行的一个软件,区别于一些培训中使用的模拟器,他几乎可以完美的运行CISCO的命令行,几乎所有的命令他都可以运行

以下简单的介绍一下使用前的配制方法

首先,下载PUTTY.EXE和WinPcap_4_0_beta1.exe这两个文件,然后解压缩你下载的这个模拟包

先安装WinPcap_4_0_beta1.exe,然后将PUTTY.exe拷贝到C:\windows\system32

1运行1 获取网卡参数.cmd,选择相应的网卡参数(具体图片和实例看PDF,注意一定是物理网卡)

2记下来网卡参数后,参看PDF运行2 获取idle_pc参数.bat记录下来你得到的参数,挑一后面的数字最大的那个记下来
===================================================
例如:
Done. Suggested idling PC
0x606d0ef0 (count=32)
0x606d0ef4 (count=25)
0x605c33fc (count=80)*我就用的是这个*
0x605c345c (count=79)
0x605c3490 (count=37)
0x605c34a0 (count=56)
0x6067b690 (count=72)
0x6067b6c0 (count=39)
0x6067c820 (count=31)
0x6067d100 (count=68)
===================================================
下面简单的解释一下"2 获取idle_pc参数.bat"文件用记事本打开文件,可以看到命令
一个是cd dynamips,这条命令是进入相应的目录(dynamips.exe所在的目录),此目录应该和这个BAT文件在相同的目录下,如果你更改了目录的文件名,那么需要在这行命令中作相应的修改
在这个命令下是一些提示信息提示信息以下是主要的命令
简单介绍一下参数
dynamips -t npe-400 -r 64 -X unzip-c7200-is-mz.122-37.bin
-t npe-400 (设置终端的类型,好像不用更改)
-r 128 (设置内存占用,我用的这个IOS需要128M,有的IOS只需要64M,当然内存越大越好)
-X (不晓得是干什么的)
unzip-c7200-is-mz.122-37.bin(IOS映像文件名,如果你下载了其他的IOS文件,也需要把文件先放在和dynamips.exe相同的目录理,然后用相应的文件名替换这个参数注意每当你下载了新的IOS文件,都要重新取得idle_pc参数)

3打开3 修改参数.bat,就可以看到打开了一个记事本如果用记事本直接打开dynamips目录下的rplab.net也是一样,只是记得修改完了存盘就行了
下面以我的rplab.net文件做个示范:
===================================================================
autostart = false

[localhost]
port = 7200
udp = 10000

`router R1`
p_w_picpath = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
确定路由器的IOS映象的绝对路径,根据你的IOS文件名和绝对路径填写,一定要正确
model = 7200
确定IOS的类型
console = 3001
登陆的端口,用SecureCRT登陆,就需要使用这里面的端口,需要保证每台设备的端口不同
npe = npe-400
终端类型
ram = 128
运行时内存大小,可以自己根据IOS映象版本不同自行调整
confreg = 0x2102
可能初始状态时0x2142,其实就是路由器的寄存器状态
idlepc = 0x605c33fc
这个就是第二步得到的数值,需要自己试验,通常是数值最大的那个如果数值不正确,可能导致CPU占用100%,以及IOS运行性能
exec_area = 64
不知道干什么的
mmap = true
两个选择,true和false,内存小于512的朋友可以选为true选true时需要留出相应的硬盘空间,据说是2G左右
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 1
s1/1 = R2 s1/0
s1/2 = R4 s1/0
以上几条是模拟IOS的端口配置,和拓扑连接,我还在继续研究中据说通过更改这些可以更改拓扑结构

一下配置解释同上,不过是另外的路由器的配置,如果镜像的文件相同,建议使用相同的idlepc数值,可以多个路由器使用相同的IOS镜象文件
`router R2`
p_w_picpath = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
model = 7200
console = 3002
npe = npe-400
ram = 128
confreg = 0x2102
idlepc = 0x6080134c
exec_area = 64
mmap = true
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 2
s1/1 = R3 S1/0
s1/2 = R4 s1/1

`router R3`
p_w_picpath = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
model = 7200
console = 3003
npe = npe-400
ram = 128
confreg = 0x2102
idlepc = 0x6080134c
exec_area = 64
mmap = true
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 3
s1/2 = R4 s1/2

`router R4`
p_w_picpath = D:\cisco IOS rom\dy6pre2na\dynamips\c7200-adventerprisek9.124-9.BIN
model = 7200
console = 3004
npe = npe-400
ram = 128
confreg = 0x2102
idlepc = 0x6080134c
exec_area = 64
mmap = true
slot0 = PA-C7200-IO-FE
slot1 = PA-4T
f0/0 = SW1 4

`ethsw SW1`
1 = dot1q 1
2 = dot1q 1
3 = dot1q 1
4 = dot1q 1
5 = access 1 NIO_gen_eth:\Device\NPF_{98ADB87F-0580-4250-800B-68EA41EA38B0}
这个就是第一步得到的那个网卡参数,按照格式填到这里就可以了
=========================================================================

当以上步骤都做完,就可以开始测试了
按照文件夹内PDF文档的说明,先运行4 启动服务.cmd,如果你更改了文件目录,需要编辑此文件的cd dynamips命令,更改为相应的目录名然后运行5 dynagen.bat,同样需要确认目录的正确性
通过以上的操作,你的模拟器应该可以运行了


下面的三个连接可以下载,本文内容在CCNA拓扑的压缩包里其他的两个设置类似,大家自己试验一下吧
其中CCNA和CCNP都是模拟7200系列路由器;交换机模拟,模拟的是3600系列设备
最后一个是SecureCRT一个TELNET登陆软件
另外我在尝试自己做拓扑配置设备型号,等有了结果再在这里记录
下载地址:
[url]http://www.thdao.cn/file/rom/SecureCRT510.rar[/url]()
[url]http://www.thdao.cn/file/rom/WinPcap_4_0_beta1.exe[/url]()
[url]http://www.thdao.cn/file/rom/dynamips.rar[/url]()
[url]http://www.thdao.cn/file/rom/putty.exe[/url]()
如何修改,并生成自己的拓扑图
Dynamips有不同版本,但目前来看它是一个路由器的模拟软件,关于交换的部分是模拟了在路由器上插不同端口板

通常我们用的是0.2.5-RC1到0.2.6-RC2中的某个版本,最新的是0.2.6-RC4
0.2.5版本仅仅可以支持364036607200三个型号的设备,只能模拟路由器
0.2.6-RC1之后,作者加入了在3600系列上对NM-16ESW交换模块的支持,可以支持3620364036607200四种设备,同时解决了某些配置下,电脑CPU占用100%的问题
0.2.6-RC3和0.2.6-RC4是作者最近才开发出来的,听说BUG不少但是这两个版本在原有支持的设备上新增了269137253745

Dynamips有两种运行方式,一是作者开发的(废话),安装完软件后,通过编辑BAT文件运行,打开一个BAT文件,就相当于启动了一台设备其优点是运行比较稳定,没有2G内存占用的限制(后面会说到这个问题),相对后一种方式的CPU和内存占用小(大概3%-5%),一台虚拟设备宕机,不影响其他虚拟设备缺点是文件较多,需要配合SecureCRT等telnet工具使用,且逻辑性较差,如果想自己做拓扑难度较高(虽然有专用的工具)

第二种运行方式是使用Dynagen程序,调用.net文件Dynagen这个程序似乎不是由chris编写,而是另外的一个人制作的它克服了BAT模式下需要SecureCRT等telnet工具的弊病(也可以使用),而且其使用的.net配置文件,逻辑性较强,更适合自己制作拓扑结构但是它对CPU和内存的占用相对BAT模式较高,而且如果一旦某个虚拟设备宕掉,所有开启的设备都需要重新启动另外,由于32位的Windows系统对程序的运行有一个2G内存的限制,所以无法开启过多的设备如果真的需要开启足够数量的虚拟设备,需要用其它的方法来弥补不过就我目前来看,开4个虚拟7200路由器,系统就已经快扛不住了,不知道谁的主机能开10个以上使用Dynagen程序大都是由一些人对整个程序进行了简单的修改,最有代表性的就是工大瑞普模拟器



以上简单说了Dynamips模拟器的情况,下面我们来看它的配置因为我个人更喜欢Dynagen的运行方式,所以我们先来看它的配置文件注:需运行在0.2.6-RC2版本下
以下我们截取一段配置文件,来看看它的配置方法
蓝色字体为说明
*****************************************************************************
autostart = false
是否开启自动运行,如果该值为true,那么你运行程序后,所有的设备都会自动启动(如果设备有很多,那将是个灾难),建议设置为false,以后用哪个开那个就可以了
[localhost]
port = 7200
udp = 10000
以上是设置所有的虚拟设备使用的端口号,应该是定义了一个起始端口,后面的自行分配,我没有查到具体的设备端口,仅仅是猜测

`router R1`
前面的router是定义设备的类型,由此也可以看出,其实Dynamips只能模拟路由器
后面的R1是你自己定义的设备名称,需要区别于其他设备

p_w_picpath = D:\cisco IOS rom\IOS\c3640-jk9o3s-mz.124-10a.bin
这个就是网上下载的IOS文件路径,最好写绝对路径
model = 3640
这句定义了你的路由器型号,根据不同的IOS写不同的型号,不同型号的虚拟设备有差异的,这个是3640
console = 2001
这个是定义了登陆的接口,在整个配置中此值必须唯一2001其实就是2001端口,看到上面的[localhost]了吗?那是地址,也可以用127.0.0.1来代替也就是说,如果你要用telnet的方式登陆,那么地址就是127.0.0.1:2001,我会专门写出SecureCRT软件的用法
ram = 96
定义这个虚拟设备使用多大的内存,可以自己试试看,如果值太小,虚拟设备启动不了的,如果你的内存够大,也可以扩大此值
confreg = 0x2102
配置寄存器的值,我建议直接设置为2102,很多朋友都说配置存储不了,就是因为这个配置寄存器设成了2142其实不是不能保存设备,而是如果配置为2142,设备启动时不会读取配置
idlepc = 0x603e0068
这个数值影响了程序的性能,最好多试几个
exec_area = 64
看样子象是命令或者程序的空间,但是我一直不清楚这个设置是干什么的
mmap = true
如果你的内存足够大,那么可以把它设置成false,让程序完全在内存里运行如果你和我一样,只有512M内存,那么我建议你设置为true注意:如果设置为true,需要在程序所在的磁盘内留出一定的磁盘空间,推荐预留1G以上的空间
slot0 = NM-1FE-TX 36系列的1端口快速以太网模块,连接虚拟交换机必须使用这个
slot1 = NM-4T 36系列的4端口串口模块
slot2 = NM-1FE-TX 36系列的1端口快速以太网模块,这个用来连接其他的设备
上面的三行显示了在虚拟设备的插槽内所使用的模块(或者叫线卡)3640可以支持4个模块,3660支持6个支持的模块种类后面再说
f0/0 = SW9 1 本机的f0/0连接到了名称为SW9的设备的1端口
s1/1 = R2 s3/0 本机的s1/1连接到了名称为R2的设备的s3/0端口
s1/2 = FR1 1 本机的s1/2连接到了名称为FR1的设备的1端口
f2/0 = SW1 f1/15 本机的f2/0连接到了名称为SW1的设备的f1/15端口
以上4行显示了拓扑的连接情况,=前面的是本机的端口,=后面的是链接到的设备名称和端口格式为:本机端口=对方名称 对方端口一旦在这里定义了连接,则不需要在对端设备进行设置,否则会出错

`router R2`
同上,这个设备叫R2
p_w_picpath = D:\cisco IOS rom\IOS\c7200-jk9o3s-mz.124-10a.bin
这个设备使用的是7200的IOS,7200和3600可以使用的模块不一样喔
model = 7200
定义设备为7200
console = 2002
这个设备用2002端口登陆
npe = npe-400
定义7200的NPE类型,具体干什么用,我还不明白,不过用这个数值就挺好
ram = 128
7200当然要大一些的内存喽,我设置128M据说有人设置256M
confreg = 0x2102
idlepc = 0x6074ae38
exec_area = 64
mmap = true
以上几条和第一个设备相同,是通用配置,以下不再赘述
slot0 = PA-C7200-IO-FE 7200的1端口快速以太网模块,连接虚拟交换机必须用这个
slot1 = PA-FE-TX 7200的1端口快速以太网模块,这个端口用来连接其他的设备
slot2 = PA-A1 7200才支持的1端口ATM模块,36系列不支持这个的
slot3 = PA-4T 7200的4端口串口模块
[color=blue]好了,看到了嘛,36系列和72系列的模块是不一样的,自己做拓扑的时候可别弄乱了[/FONT-COLOR]
f0/0 = SW9 2 本机的f0/0连接到了名称为SW9的设备的2端口
f1/0 = SW1 f1/14 本机的f1/0连接到了名称为SW1的设备的f1/14端口
s1/2 = FR1 2 本机的s1/2连接到了名称为FR1的设备的2端口
a2/0 = AT1 1 本机的ATM a2/0端口连接到了名称为AT1的设备的1端口
以上是这个虚拟设备的拓扑连接,R1和R2有一条串行链路,因为在R1上进行了定义,所以不用再在这里定义了

`router SW1`
这个设备叫SW1,因为它的主要功能是模拟交换机,但是设备类型依然是router
p_w_picpath = D:\cisco IOS rom\IOS\c3640-telco-mz.123-11.T.bin
这次我们使用3640的IOS文件注意:如果你想要模拟可管理的交换机,必须用3600系列的IOS,而且版本越高越好否则无法支持所需的模块
model = 3640
console = 3001
定义登陆端口3001
ram = 128
confreg = 0x2102
idlepc = 0x60fe8088
exec_area = 64
mmap = true
slot0 = NM-1FE-TX 36系列的1端口快速以太网模块,上面说过了
slot1 = NM-16ESW 36系列的16端口快速以太网模块,模拟可管理交换机就靠他
f0/0 = SW9 3 本机的f0/0连接到了名称为SW9的设备的3端口
f1/11 = PC1 f0/0 本机的f1/11连接到了名称为PC1的设备的f0/0端口

`router PC1`
这个设备叫做PC1,我们用一个路由器来模拟一台PC,可以多模拟几个,然后接到交换机上练习VLAN配置,这里就说一个
p_w_picpath = D:\cisco IOS rom\ios\c3640-i-mz.112-20.P.bin
这个IOS其实没什么要求,越小越好因为我们只需要它有个以太口,同时我们不用它什么功能,有个ping 和trace命令就够了
model = 3640
console = 4001
虚拟PC从4001开始
ram = 32
只要能运行,内存越小越好
confreg = 0x2102
idlepc = 0x6017144c
exec_area = 32
mmap = true
slot0 = NM-1FE-TX 就这一个模块

`ATMSW AT1`
前面的ATMSW说明这个设备是ATM交换机,后面的AT1是它的名字,方便大家连接他这个设备不可管理,就象是ISP的设备
1:1:100 = 2:2:200
应该是ATM的参数,但是我还没有学会ATM技术,所以这个数值我也不知道是怎么回事以后学了再补上

`ethsw SW9`
前面的ethsw说明这个设备是以太网交换机,后面的SW9是它的名字,方便大家连接他这个设备同样不可管理
1 = dot1q 1 端口1,封装802.1Q,属于VLAN1
2 = dot1q 1 端口2,封装802.1Q,属于VLAN1
3 = dot1q 1 端口3,封装802.1Q,属于VLAN1
4 = access 1 NIO_gen_eth:\Device\NPF_{DE5D9A8A-6CC2-4F44-BEC4-4FC0EEEB566C}
这个是你的网卡,相当于你的网卡也接在了这个虚拟的交换机上,建议将网卡设置上

`FRSW FR1`
前面的FRSW说明这个设备是帧中继交换机,后面的FR1是它的名字,方便大家连接他这个设备也不可管理
1:102 = 2:201
以上应该是帧中继交换机的虚电路,还没有比较透彻的理解帧中继,以后补吧
*****************************************************************************

另外需要说明的是,在配置文件中你可以用#来进行配置语句的注释
例如:slot0 = NM-1FE-TX #36系列的1端口快速以太网模块
好了,.net文件就这样,我们可以自己搭建自己的拓扑了