使用Dynamips + Dynagen构建你自己的Cisco网络实验室.docx
《使用Dynamips + Dynagen构建你自己的Cisco网络实验室.docx》由会员分享,可在线阅读,更多相关《使用Dynamips + Dynagen构建你自己的Cisco网络实验室.docx(44页珍藏版)》请在冰点文库上搜索。
使用Dynamips+Dynagen构建你自己的Cisco网络实验室
使用Dynamips+Dynagen构建你自己的Cisco网络实验室
0.前言
这篇文章介绍了如何使用Dynamips+Dynagen构建你自己的虚拟Cisco网络实验室。
这篇文章将帮助你了解Dynamips和Dynagen的作用,介绍设置Dynagen的配置文件,指定虚拟设备之间的拓扑连接方式以及正确计算Idlepc值的方法。
1.Dynamips简介
Dynamips是由法国贡比涅科技大学的克里斯托弗•菲尔洛特(ChristopheFillot)编写的Cisco设备模拟器。
Dynamips不同于传统的纯软件式模拟器,它模拟了多种型号的Cisco路由器的硬件平台,用户可以在模拟器中直接加载并运行真正的IOS镜像,这使得Dynamips可以成功模拟出99%以上的IOS功能,并且确保在绝大多数情况下得到的结果与真实设备的结果相同。
Dynamips是一款最初在Linux平台上开发的开源软件。
后来被成功迁移到了Windows和MacOSX平台。
Dynamips最开始仅能够模拟Cisco7200路由器,现在已经可以模拟Cisco1700/2600/3600/3700多种型号路由器。
Dynamips最新版本是0.2.8-RC2,你可以在http:
//www.ipflow.utc.fr/blog/下载到最新版本的源程序和二进制编译包。
最新版本的Dynamips更新于2007年10月,此后作者再也没有对该模拟器进行过更新。
有迹象表明该项目目前已经被中止。
注意:
Dynamips从来没有实现过模拟交换机的功能。
在模拟Cisco3600等型号时,Dynamips可以模拟NM-16ESW模块来实现交换机的一小部分功能。
NM-16ESW和真正的交换机在功能上还是有非常大的差距。
注意:
Dynamips仅仅模拟了相应路由器的“功能”,而并非“性能”,所以不要期望模拟器可以替代真实的设备。
2.Dynagen简介
Dynamips是一个纯粹的命令行程序。
当我们需要模拟一个由多台设备组成的复杂网络时,纯粹的命令行配置会显著地增加配置复杂度。
许多第三方团体或个人开发了各种Dynamips的前端程序来简化Dynamips的配置过程。
其中最著名的前端程序是Dynagen。
Dynagen通过类似INI文件格式的配置文件(后缀为.net)来定义Dynamips模拟设备的型号、参数,以网络的拓扑连接方式。
Dynagen同样是一款开源软件,你可以在http:
//dynagen.org/下载到其最新版本。
该软件最后一次更新于2008年4月,最新版本号是0.11。
3.安装Dynagen和Dynamips
Dynagen开发组制作了针对不同操作系统的打包安装包,你可以在Windows和ForMacOSX的安装包集成了最新版的Dynamips0.8.2-RC2,所以你不需要再额外下载Dynamips。
Dynamips依赖WinPcap这个著名的动态链接库,你可以从http:
//www.winpcap.org/下载。
最新的版本是4.0.2。
将Dynagen和WinPcap下载后,运行安装。
安装过程非常简单,一路点击“下一步”就可以。
两个程序的安装顺序没有要求,但是在成功安装WinPcap之前你无法正常使用Dynamips。
4.启动DynamipsServer
DynamipsServer是整个Dynamips模拟器的核心,在开始模拟虚拟路由器设备之前必须首先启动DynamipsServer。
在整个的模拟过程中DynamipsServer不能被关闭,否则所有正在运行的虚拟路由器也会立即被关闭。
安装Dynagen后在桌面上会产生若干个快捷方式,双击“DynamipsServer”即可启动DynamipsServer。
正常的结果应该是看到类似这样的一个窗口:
建议:
为了防止在实验过程中意外关闭DynamipsServer,建议你将该窗口最小化。
切记:
在实验过程中关闭该窗口会导致模拟器终止运行!
DynamipsServer总是应该首先启动,最后关闭。
5.准备IOS镜像文件和.NET配置文件
DynamipsServer成功启动后,我们就可以开始编写Dynagen的.NET配置文件设置虚拟设备的连接拓扑结构。
你需要为模拟设备准备相应版本的CiscoIOS镜像文件,并将镜像文件放置在一个路径中没有中文的目录中。
注意:
CiscoIOS镜像文件受版权保护,XX不得复制、使用IOS镜像文件。
接下来我们需要准备Dynagen需要的.NET配置文件。
.NET配置文件是纯文本文件,所以你可以使用如记事本等程序创建和编写。
不要使用写字板或Word之类的rich-text编辑器修改。
.NET文件也必须放置在路径中没有中文的目录下。
切记:
CiscoIOS镜像文件和Dynagen的.NET配置文件必须放置在路径中没有中文的目录中,否则会导致模拟器出错。
6.编写.NET文件
.NET文件有自己的一套语法,下边是一份配置样例:
autostart=false
model=3640
ghostios=true
sparsemem=true
[localhost]
[[3640]]
image=D:
/c3640-jk9o3s-mz.124-10a.bin
ram=128
idlepc=0x604fb194
slot0=NM-4E
slot1=NM-4T
[[RouterR1]]
e0/0=ETHSW11
[[RouterR2]]
s1/0=FRSW12
[[RouterR4]]
s1/0=FRSW14
[[RouterR5]]
e0/0=ETHSW15
s1/0=FRSW15
[[RouterR6]]
s1/0=FRSW16
e0/0=R8e0/0
[[RouterR8]]
[[RouterR9]]
e0/0=ETHSW19
[[FRSWFRSW1]]
5:
502=2:
205
5:
506=6:
605
2:
206=6:
602
2:
204=4:
402
[[ETHSWETHSW1]]
1=access15
5=dot1q1
9=access59
开始的四行是全局配置参数。
Autostart:
指定是否所有虚拟路由器在Dynagen控制台启动后立即自动启动,这里推荐值是false,我们可以在控制台用命令按需启动以降低对计算机资源的无谓消耗
Model:
指定虚拟路由器的默认型号。
尽管Dynamips可以模拟出多种型号的Cisco路由器,在功能丰富程度与资源消耗之间最平衡的一个型号就是3640。
我个人推荐你模拟这个型号的路由器,无论是准备CCNA/CCNP/CCIER&S/CCIESec任意一门考试都没有问题。
Ghostios和sparsemem:
这两个选项降低了模拟器对内存的需求。
如果你的计算机内存少于1G,强烈建议你将这两个选项设置成true。
如果你的计算机内存大约2G,可以将ghostios设置成false。
打开这两个选项会轻微地降低模拟器的运行速度,但是考虑到对内存的节省,对于没有海量内存的计算机而言是值得的。
接下来的[[3640]]部分是对模拟路由器具体参数的指定。
Image:
指定CiscoIOS镜像文件的路径,在Windows下不区分大小写。
这里要注意不要把斜杠写反。
Ram:
指定每台虚拟路由器的内存。
对于3640而言,128M是一个最合适的值。
不同的路由器型号与IOS的组合对这个值都有有最低限制,因此不要随意降低这个值。
Idlepc:
这是Dynamips最重要的一个参数。
如果这个参数设置不正确,即使模拟一台路由器,宿主计算机的CPU使用率也总是100%,即便一台高性能的计算机也无法顺利模拟3台以上的路由器。
而一旦正确设置,即使两年前生产的笔记本电脑也可以轻松模拟高达8台路由器。
计算Idlepc值的正确方法附在本文的最后。
Idlepc值是对应IOS镜像文件的。
也就是说,每个IOS镜像文件有自己固定的Idlepc值,一旦计算出有效的值,无论在哪一台计算机上,只要运行相同的IOS镜像文件这个值总是有效的。
另外,每个IOS镜像文件可能有多个有效的Idlepc值,如果你按照正确的方法计算出了一个和别人都不一样的值,请放心使用。
注意:
Idlepc值的计算是Dynamips设置步骤中最复杂却最重要的一步。
强烈建议你在正式开始实验项目前计算出正确的Idlepc值。
不使用Idlepc值或者使用无效的Idlepc值会导致CPU长期持续工作在100%负载下,会对计算机的散热产生非常严重的影响。
在夏季甚至会导致某些笔记本电脑死锁或烧毁!
Slot:
指定每个路由器模块插槽里的模块型号。
Cisco3640一共有4个slots,分别是slot0到slot3。
你可以根据对路由器接口的需要在模拟路由器上添加不同的模块。
虽然Dynamips能够模拟多种模块,但是最常使用的是NM-4E,NM-4T和NM-16ESW(如果你确实想模拟一台简化版的交换机)。
NM-4E带有4个10M以太网接口,而NM-4T带有4个串行接口。
将模块插在不同的slot中会导致不同的最终接口名。
在上边的配置样例中,每台路由器的4个以太网接口分别是e0/0到e0/3,而4个串行口分别是s1/0到s1/3。
最后就是生成每一台虚拟设备和指定虚拟设备之间的连接拓扑。
在上边的配置样例中我们使用命令[[RouterRx]]创建了7台虚拟路由器,每台路由器拥有和[[3640]]部分定义完全相同的配置。
这条命令中的字母是大小写区分的,即[[routerR1]]并不会创建一台虚拟路由器R1,而是一条不存在的命令。
接下来我们定义了每台虚拟设备是怎么连在一起的。
例如在上边的配置样例中,R1的e0/0连接在虚拟以太网交换机ETHSW1的接口1,R2的s1/0连接在虚拟帧中继交换机FRSW1的接口2。
虚拟以太网交换机和虚拟帧中继交换机通过[[ETHSWxxx]]或[[FRSWxxx]]命令创建。
这两种虚拟交换机用户不能登录上去,也不能在运行时更改它们的配置。
它们只是用来提供特殊的连接功能。
在上边的配置样例中,我们在虚拟以太网交换机ETHSW1上定义了三个接口,其中接口1是access模式,分配给VLAN15,接口5是trunking模式。
虚拟以太网交换机仅支持802.1Q封装。
我们在虚拟帧中继交换机FRSW1上定义了一系列的DLCI交换规则,例如接口5上的DLCI502交换到接口2上的DLCI205,接口5上的DLCI506交换到接口6上的DLCI605。
注意:
在编写拓扑连接规则时,不需要考虑线缆的类型问题(即不需要关心直通线与交叉线的区别),在使用串行连接时不需要考虑DCE的时钟问题,DCE由Dynamips自动模拟和分配时钟,所有的路由器都是DTE端。
7.开始模拟虚拟路由器
.NET配置文件编写完成后,将其放置在一个路径中没有中文的目录下。
在DynamipsServer保持运行时双击该文件即可开始模拟路由器设备。
如果.NET文件编写正确,双击后稍等即会出现类似下边的窗口:
其中的“NetworkSuccessfullyStarted”表示之前你在.NET文件中所输入的命令是完全正确的。
如果.NET文件中有任何语法或逻辑错误,相应的错误提示会出现。
你必须修改所有的错误后才能开始配置模拟路由器。
这个弹出的窗口是DynagenConsole(控制台),你可以在这里控制每一台模拟路由器的启动、停止与重启。
使用list命令列出当前模拟的设备:
左边第一列表示每台虚拟路由器的名字,第三列是这台虚拟路由器的状态。
如果状态是running,表示其正在运行中;如果状态是stopped,表示其处于停机状态。
如果需要启动一台处于停机状态的虚拟路由器,使用命令startR1。
如果需要使一台正在运行的虚拟路由器停机,使用命令stopR1。
如果需要重启一台虚拟路由器,使用命令reloadR1。
注意:
上边三条命令的设备名部分是大小写敏感,对于上边的例子,输入命令startr1会提示没有这台设备。
8.登录到虚拟路由器
在控制台上确定某台虚拟路由器处于running状态后,可以使用命令例如telnetR1登录到R1的console端口。
当新的窗口打开后,你就可以开始对虚拟路由器进行操作了。
附1.计算Idlepc值的正确方法
1) 在不填写Idlepc值的情况下启动任意一台虚拟路由器
2) 登录到虚拟路由器上后,对于这两个问题严格按照下图回答:
切记:
在输入最后一个yes后只按一次回车键!
之后会有一串syslog弹出,但是不应该出现Router>的命令提示符,如果出现了命令提示符即失败。
3) 回到Dynagen控制台,等待大约10秒后输入命令idlepcgetR1(如果刚才你是登录到R1上的),稍等会得到类似下图中的结果:
正确的结果应该会看到至少一个带有*的值,这些带有*的值就是可能正确的Idlepc值,你可以依次尝试应用。
在光标处直接输入要应用的值的序号。
注意:
如果你没有看到任何带有*的值,意味着你的这次计算失败了。
请用stop命令关闭虚拟路由器,严格按照上边的步骤重新再试一次。
4)如果你选择的Idlepc值是正确的,在应用之后几秒内宿主计算机的CPU使用率会从100%降至5%一下(如果你只运行着一台虚拟路由器的话)。
看到这个结果说明这是一个有效的Idlepc值,你可以将它记录下来,写到.NET配置文件中的相应位置。
这个值对于这个IOS镜像文件总是有效的。
如果CPU使用率没有下降,或者下降并不明显,说这个值是无效的,你可以在Dynagen控制台上用命令idlepcshowR1再次显示刚才的计算结果,并输入另一个值的编号继续尝试,直到找到有效的值。
Dynagen安装和初步使用(版本0.11.0)
1、Dynamips和Dynagen,及WinPcap介绍:
Dynamips:
Dynamips是一个Cisco路由器模拟软件,由ChristopheFillot编写,它运行真实的CiscoIOS,从而达到完全仿真Cisco路由器的目的。
有其他的Cisco路由器模拟器,但那些是通过软件模拟,所以很难达到真实路由器的效果。
Dynagen:
Dynagen是Dynamips的一个基于文本的前端控制系统(Dynagenisatext-basedfrontendforDynamips),它采用Hypervisor超级监控模式与Dynamips通信。
简单说:
Dynagen就是为了简化我们对Dynamips的操作和配置的这么一个东东。
WinPcap:
WindowsPacketcapture,是Windows平台下一个免费、公共的网络访问系统,它为win32应用程序提供访问网络底层的能力。
Winpcap不能阻塞、过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。
WinPcap简介。
2、下载和安装:
Dynagen官方网站:
http:
//dynagen.org/
WinPcap官方网站:
http:
//www.winpcap.org/
目前最新版本为Dynagen0.11.0andDynamips0.2.8-RC2WindowsXPinstaller,下载下来为一个dynagen-0.11.0_win_setup.exe的安装文件,直接安装即可,新版本的安装比较简单,不用解压拷贝什么的那么多步骤。
安装好Dynagen后还需要安装WinPcap,WinPcap可以到官方网站下载最新版。
安装完成后,“程序”-“Dynagen”下和桌面上会生成“DynamipsServer”、“Networkdevicelist”、“PemuServer”、“DynagenSampleLabs”几个快捷方式。
3、初步配置:
首要要下载一个7200的CiscoIOS,下载得到的bin文件试着改后缀为rar,解压,如果能解压,就使用解压后的bin文件,不能解压当然就直接使用了。
放到C:
\ProgramFiles\Dynamips\images目录下。
请网络搜索下载。
我们以Sample1为例,记事本打开S文件,修改image=\ProgramFiles\Dynamips\images\c7200-jk9o3s-mz.124-7a.image,将c7200-jk9o3s-mz.124-7a.image修改为你放在images下的实际的IOS文件名,比如为C7200-IS.bin。
其他东西先不要修改。
4、开始使用Dynagen:
注意:
使用模拟器之前,必须先运行DynamipsServer,然后再运行DynagenSampleLabs下的.net文件。
1.双击“DynamipsServer”快捷方式,然后运行“S”文件
2.命令行窗口中输入list,可以看到R1和R2两个路由器在运行了
3.输入telnetR1就可以连接到路由器R1的Console口了
4.当出现IOS初始配置的提示时,选no
5.等一会儿所有接口初始化后,就会出现Router>,可以开始使用了
5、注意:
我的电脑上出现了一点小问题,但不影响使用:
当telnetR1后,Telnet窗口出现ConnectedtoDynamipsVM"R1"(ID0,typec7200)-Consoleport文字后,等了很久后就没有其他显示,我只有关掉重新telnetR1,其实这个时候你敲几下回车,就显示正常了,不过有点迷惑人。
如图:
dynamips+dynagen详细使用教程
概述
dynamips的原理是模拟CISCO路由器的硬件平台,直接运行CISCO的软件,从而达到几乎完全仿真CISCO路由器、交换机的效果。
而dynagen则是在dynamips基础上更加方便大家的使用,配置也更加的人性化,本文主要也是介绍dynagen在windowsxp下使用dynagen。
另外,在linux以及其他平台下的使用和配置也基本相同。
你可以使用这个软件根据本文的介绍来实现在同一台或多台PC上仿真运行任意多个路由器并实现他们的互连互通,这对你组网学习CISCO路由器的配置等很有帮助。
这篇补充介绍了在同一台或者多台PC(windows)上配置任意多个路由器并实现他们的互连互通。
暂时没学会在这上面使用交换机,不过本软件最新版本已经支持交换模块了,希望哪位同仁能不吝赐教!
软硬件要求
1.操作系统我采用的windowsxpsp2,我在公司使用的电脑是联想扬天系列,内存有1G
2.dynamips和dynagen,还有WinPcap,在本文的附件里可以下载
3.CISCO的BIN文件就像chris说的,我们都不可能提供,但是如果你购买了CISCO的产品,这些都不是问题。
安装
下面这一段是我的同事张晔给我们的介绍:
Dynagen支持Linux,WindowsXP(注意2000不支持,2000的话可以试试DynamipsGUI)
1)首先安装dynagen-0.8.3_dynamips-0.2.6-RC5_Win_XP_setup.exe。
Dynagen集成了WinPcap,无需另外安装WinPcap了。
2)解压dynamips-0.2.6-RC5-cygwin.zip。
把解压后的几个文件考到C:
\ProgramFiles\Dynamips下。
需要的文件在这个论坛上有的请大家搜索
安装好以后,可以在
开始--所有程序--看到这个(桌面上也有):
等会我们主要使用“dynamipsserver”,如果要在多台PC上实现路由器的互连互通的话还要使用“networkdevicelist”。
所以,我先介绍这两个东东的作用:
1.“dynamipsserver”每次使用必须先要启动它,但是无论在一台PC上运行多少个路由器或者交换机,都只要启动一次就可以了。
2.“networkdevicelist”这个主要是用来显示你的物理网卡的信息的,当你想指定虚拟的路由器的某个端口(如下文中要介绍的R1的f0/0)到某个具体的网卡时,你就要使用这个工具来获得物理网卡信息然后填进你的配置文件。
好了,接下来我们学习如何配置、使用这个软件。
使用
首先,将你的CISCO的BIN文件都最好放在“C:
\ProgramFiles\Dynamips\images”目录下,等会启动系统的时候就是读取这些BIN文件。
这里有一个小诀窍,将CISCO的BIN文件改成后缀为“.zip”文件,然后解压,可以使你等会启动路由器的时候快一些,因为你提前进行了解压操作J
安装好以后,主要是配置“.net”文件。
这个文件指定了各个路由器交换机的型号以及启动时的BIN文件,指定了路由器交换机的接口如何连接等等选项。
本软件自带了一个“C:
\ProgramFiles\Dynamips\sample_labs”目录,里面都是一些已经配置好的例子。
下面我们就通过修改“C:
\ProgramFiles\Dynamips\sample_labs\simple1\”文件来介绍如何配置“.net”文件。
系统本来自带的那个“”文件这里就不列出了,下面是我修改的“”文件,其中红色字体为我新加或修改的部分。
#Simplelab
autostart=false
[localhost]
[[7200]]
image=\ProgramFiles\Dynamips\images\C7200.image
#OnLinux/Unixuseforwardslashes:
#image=/opt/7200-images/c7200-jk9o3s-mz.124-7a.image
npe=npe-400
ram=160
[[ROUTERR1]]
s1/0=R2s1/0
f0/0=R2f0/0
mmap=true
[[routerR2]]
mmap=true
[[ROUTERR3]]
model=2691
image=\ProgramFiles\Dynamips\images\c2691.bin
mmap=true
#Noneedtospecifyanadapterhere,iti