dynamips出来这么久了,网上的教程有很多种,但还是经常有新手问:模拟器怎么用?
总结一下,主要是这个模拟器有很多种用法,比如:用bat和net,用GUI和不用GUI等等,搞的新手头昏脑涨,不知道该从哪里入手。最近有点时间,所以把各种方法整理了一下,把我最常用的方法帖出来供大家参考,有什么不对的地方请大家指正!
用dynagen,使用net文件编写拓扑
1、下载dynagen
2、下载wincap
运行Dynamips Server开启服务,Dynagen Sample Labs里有简单的net拓扑wejian ,运行net文件模拟器就可以用了,下面简单说下net文件的格式
net文件格式如下,
autostart = false //这里是设置是否自动启动路由器,true为自动启动,如果你模拟的机器台数较多,最好不要设置自启动。
[localhost] //这里是服务器地址,就是运行了Dynamips Server的电脑,localhost指本机,如果不是本机的话,可以填服务器的ip地址,如果想做分布式处理的话,这里的localhost换成启动dynamips服务器的IP地址就可以了。
port = 7200 //这里是服务器的端口号,不需要改动它
udp = 10000 //熟悉dynamips的都知道,路由器接口之间是通过udp来互联的。这里的upd就是指接口互联是利用的UDP端口。
ghostios = true //这里选择true,可以减少内存的使用。
[[ROUTER SW1]] //这里是设备的名称
image =F:\IOS\3640\c3640-ik9o3s-mz.124-8a.bin //这里是所用到的ios路径和名称
idlepc = 0x606f808c //idlepc值,据说选好了可以有效降低内存使用率,不过我随便用的,感觉没什么影响。
ram = 96 //内存使用大小,根据具体的ios设置,太小了会出错,太大了耗内存,自己调整一个合适的值就好
confreg = 0x2102 //寄存器值,有很多朋友在运行的模拟器里改,但是那里是改不了的,必须在这里改,0x2102是保存配置到nvram,0x2142是不保存,自己看着办不吧
mmap = true //这个意思和PC机上的虚拟内存一样,即可以使用虚拟内存来运行虚拟路由器。我也强烈建议开启,如果你内存够大则另当别论。
exec_area = 96 //这个没搞清楚,我用的都和ram同一个值呵呵,哪位知道的指点下!
console = 4001 //这个是控制端口,各台设备端口必须不同,具体用哪个你自己决定
model = 3640 //这里是路由器的型号
slot0 = NM-1FE-TX //这里是接的模块,具体的模块介绍我会帖出来。
slot1 = NM-16ESW
F1/15 = GATEWAY F0/0 //这里是用SW1的F1/15端口和GATEWAY的F0/0端口连接,
端口的连接只要写一次就可以了,不要两边都写,重复了会报错的
[[ROUTER GATEWAY]]
image =F:\IOS\unzip-c7200-is-mz.122-37.bin
idlepc = 0x605c345c
ram = 64
confreg = 0x2102
mmap = true
exec_area = 64
console = 4002
model = 7200
npe = npe-400 //7200系列特有的参数,类似于处理器频率,一般就写这个
slot0 = PA-C7200-IO-FE
Dynamips路由模拟器使用心得
在学习中一个好的模拟器必不可少。很多兄弟都用boson,因为他更贴近试题,但是boson的缺陷在于,他仅仅是模拟了cisco IOS(下简称IOS)的部分命令,很多和实际相关的问题无法模拟。而Dynamips是在模拟思科路由器的实际运行环境,可以支持不同版本的IOS,只要下载相应的IOS文件就可以(但是仅限于思科的设备。最近一段时间,我对dynamips的使用,有了一些小小的心得,写出来与大家分享。Dynamips是由一位叫做chris的外国朋友开发的,如果你的英文不错,可以去作者的BLOG看看,那里有最新版的下载,,作者的BLOG。需要说明,该软件为开源软件,如果有对编程熟悉的朋友,可以去作者的BLOG上DOWN源代码下来,如果能通过修改模拟华为的设备,对我们搞网络应用的来说可是天大的福音啊。
Dynamips有不同版本,但目前来看它是一个路由器的模拟软件,关于交换的部分是模拟了在路由器上插不同端口板。
通常我们用的是0.2.5-RC1到0.2.6-RC2中的某个版本,最新的是0.2.6-RC4。
0.2.5版本仅仅可以支持3640、3660、7200三个型号的设备,只能模拟路由器。
0.2.6-RC1之后,作者加入了在3600系列上对NM-16ESW交换模块的支持,可以支持3620、3640、3660、7200四种设备,同时解决了某些配置下,电脑CPU占用100%的问题。
0.2.6-RC3和0.2.6-RC4是作者最近才开发出来的,听说BUG不少。但是这两个版本在原有支持的设备上新增了2691、3725、3745。
Dynamips有两种运行方式,一是作者开发的(废话),安装完软件后,通过编辑BAT文件运行,打开一个BAT文件,就相当于启动了一台设备。其优点是运行比较稳定,没有2G内存占用的限制(后面会说到这个问题),相对后一种方式的CPU和内存占用小(大概3%-5%),一台虚拟设备宕机,不影响其他虚拟设备。缺点是文件较多,需要配合SecureCRT等telnet工具使用,且逻辑性较差,如果想自己做拓扑难度较高(虽然有专用的工具)。
第二种运行方式是使用Dynagen程序,调用文件。Dynagen这个程序似乎不是由chris编写,而是另外的一个人制作的。它克服了BAT模式下需要SecureCRT等telnet工具的弊病(也可以使用),而且其使用的配置文件,逻辑性较强,更适合自己制作拓扑结构。但是它对CPU和内存的占用相对BAT模式较高,而且如果一旦某个虚拟设备宕掉,所有开启的设备都需要重新启动。另外,由于32位的Windows系统对程序的运行有一个2G内存的限制,所以无法开启过多的设备。如果真的需要开启足够数量的虚拟设备,需要用其它的方法来弥补。不过就我目前来看,开4个虚拟7200路由器,系统就已经快扛不住了,不知道谁的主机能开10个以上。使用Dynagen程序大都是由一些人对整个程序进行了简单的修改,最有代表性的就是“工大瑞普模拟器”。
好了,上面介绍了模拟器的简单情况,我比较喜欢使用第二种运行方式,不过还是依大家的习惯把。具体的运行方法.
简单解读文件
以上简单说了Dynamips模拟器的情况,下面我们来看它的配置。因为我个人更喜欢Dynagen的运行方式,所以我们先来看它的配置文件。注:需运行在0.2.6-RC2版本下。
以下我们截取一段配置文件,来看看它的配置方法。
蓝字体为说明。
*****************************************************************************
autostart = false
是否开启自动运行,如果该值为true,那么你运行程序后,所有的设备都会自动启动(如果设备有很多,那将是个灾难),建议设置为false,以后用哪个开那个就可以了。
[localhost]
udp = 10000
以上是设置所有的虚拟设备使用的端口号,应该是定义了一个起始端口,后面的自行分配,我没有查到具体的设备端口,仅仅是猜测。
[[router R1]]
前面的router是定义设备的类型,由此也可以看出,其实Dynamips只能模拟路由器。
后面的R1是你自己定义的设备名称,需要区别于其他设备。
image = D:\cisco IOS rom\IOS\c3640-jk9o3s-mz.124-10a.bin
这个就是网上下载的IOS文件路径,最好写绝对路径。
model = 3640
这句定义了你的路由器型号,根据不同的IOS写不同的型号,不同型号的虚拟设备有差异的,这个是3640。console = 2001
这个是定义了登陆的接口,在整个配置中此值必须唯一。2001其实就是2001端口,看到上面的[localhos
t]了吗?那是地址,也可以用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”
image = D:\cisco IOS rom\IOS\c7200-jk9o3s-mz.124-10a.bin
这个设备使用的是7200的IOS,7200和3600可以使用的模块不一样喔。
定义设备为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端口串口模块。
好了,看到了嘛,36系列和72系列的模块是不一样的,自己做拓扑的时候可别弄乱了。
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。
image = 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 配置,这里就说一个。
image = 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端口快速以太网模块
好了,文件就这样,我们可以自己搭建自己的拓扑了。
简单解读.bat文件
说实话,我个人并不太喜欢用BAT模式运行模拟器,总觉得它的拓扑配置很繁琐,很难看懂。由于有一个叫做DynamipsGUI的软件可以制作BAT文件,所以也有很多使用者使用BAT模式,那么我们就来看看BAT 模式。
BAT模式是每个虚拟设备一个.bat文件。也有文件中的一些数值,下面几个实例是我使用DynamipsGUI 软件生成的,简单的看一下配置参数。
mmap格式怎么打开******************************************************************************
title R1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论