使用
首先,将你的CISCO的BIN文件都最好放在“C:\Program Files\Dynamips\images”目录下,等会启动系统的时候就是读取这些BIN文件。这里有一个小诀窍,将CISCO的BIN文件改成后缀为“.zip”文件,然后解压,可以使你等会启动路由器的时候快一些,因为你提前进行了解压操作J
安装好以后,主要是配置“.net”文件。这个文件指定了各个路由器交换机的型号以及启动时的BIN文件,指定了路由器交换机的接口如何连接等等选项。
本软件自带了一个“C:\Program Files\Dynamips\sample_labs”目录,里面都是一些已经配置好的例子。下面我们就通过修改“C:\Program Files\Dynamips\sample_labs\simple1\simple1.net”文件来介绍如何配置“.net”文件。系统本来自带的那个“simple1.net”文件这里就不列出了,下面是我修改的“simple1.net”文件,其中红色字体为我新加或修改的部分。
# Simple lab
autostart = false
[localhost]
[[7200]]
image = \Program Files\Dynamips\images\C7200.image
# On Linux / Unix use forward slashes:
# image = /opt/7200-images/c7200-jk9o3s-mz.124-7a.image
npe = npe-400
ram = 160
[[ROUTER R1]]
s1/0 = R2 s1/0
f0/0 = R2 f0/0
mmap = true
[[router R2]]
mmap = true
[[ROUTER R3]]
model = 2691
image = \Program Files\Dynamips\images\c2691.bin
mmap = true
# No need to specify an adapter here, it is taken care of
# by the interface specification under Router R1
这个文件使用“#”进行注释。下面我们介绍红色字体标记的以及一些常用的字段的意思。
1.autostart = false 指定启动此“.net”文件的同时不启动本文件中定义的这些虚拟路由器。强烈建议你这样配置,要不一下子启动好多虚拟路由器可够你的机器受的了。
2.[[7200]] 指定路由器的默认型号为7200
3.[[7200]]下面的“image = \Program Files\Dynamips\images\C7200.image”,指定各路由器默认使用这个BIN文件启动
4.[[ROUTER R1]] 指明接下来是对虚拟的路由器R1进行配置。其他的类似的还有R2和R3等。
5.f0/0 = R2 f0/0 指定虚拟路由器R1的f0/0与虚拟路由器R2的f0/0相连
6.mmap = true 这个意思和PC机上的虚拟内存一样,即可以使用虚拟内存来运行虚拟路由器。我也强烈建议你这么做。
7.model = 2691 指定虚拟路由器R3的型号为2691。前面两个虚拟路由器R1和R2的型号都是前面提到的默认为7200。
8.[[ROUTER R3]]下面的“image = \Program Files\Dynamips\images\c2691.bin ”指定虚拟路由器R3启动的BIN文件为“image = \Program Files\Dynamips\images\c2691.bin”,前面两个虚拟路由器R1和R2启动的BIN文件都是默认的“c7200.bin”。
按以上配置保存以后,我们来实际运行一下。运行的步骤如下。
1.启动“dynamips server”。只要点击“开始--所有程序--Dynagen à Dynamips Server”就可以了。
2.双击我们刚刚配置好的“C:\Program Files\Dynamips\sample_labs\simple1\simple1.net”文件,可以得到一个DOS的界面,为了方便说明,我们称之为DOS1。在DOS1上输入“help”可以看到本软件的各条命令。
3.在DOS1上输入“list”即可看到各个虚拟路由器及其状态。在“Console”一列即是各个虚拟路由器的CONSOLE对应的端口号,采用SecureCRT或者其他TELNET工具使用命令“telnet 127.0.0.1 2000”即可登陆到虚拟路由器R1的CONSOLE口。将后面的端口改成各路由器对应的端口即可登陆到各个虚拟路由器的CONSOLE口。
4.当然,由于配置了“autostart = false”,所以各个路由器都还没有启动,你登陆到CONSOLE口也是白搭。所以,请在DOS1下使用命令“start R1”来启动虚拟路由器R1,这时你就可以登陆到路由器R1的CONSOLE口进行配置了。
5.现在请克制住你激动的心情,暂且不要到路由器R1上进行配置,让我们回到DOS1。在DOS1下使用命令“idlepc get R1”或“idlepc show R1”可以得到以下画面。
这副图中有个注释“取[xx]最大值对应的这一行的0x6077e9fc”,因为这里[xx]最大的为[80],所以我们取了在这一行中的“0x6077e9fc”。等会我们用它来配置idlepc。这个idlepc非常有用。因为这个软件默认是最大可能的占用你的PC的系统资源,配置这个idlepc可以让这个软件对你的系统资源的占用得到有效的控制。你可以同样按这些步骤得到R2和R3的idlepc的值。
这里提醒一下,虚拟路由器的各个端口一开始都是“administratively down”,所以需要到各个端口下使用“no shutdown”让各个端口起来。
以上的介绍都是在一台PC上实现虚拟路由器的互连互通,现在我们来介绍如何使在不同PC上的路由器实现互连互通。
要达到这个目的,说穿了就是让虚拟路由器的端口与PC上的物理网卡对应起来,然后通过物理连接来实现在不同PC上的互连互通。所以,我们对“.net”配置文件要做的仅仅就是将虚拟路由器的某个端口与实际的物理网卡连接起来。要实现这样的功能,我们就要使用前面提到的“network device list”了。点击“开始 à 所有程序 à Dynagen à Network device list”可以得到如下的画面。
在这副图的最后其实有提示的:“F0/0=NIO_gen_eth:\Device\NPF_(..)”。
我在这里选择我PC上D-LINK的网卡与我的虚拟路由器R3的F0/0口对应起来。
所以,根据上面介绍的对idlepc以及配置物理网卡与虚拟路由器端口对应的介绍,我们修改后的“C:\Program Files\Dynamips\sample_labs\simple1\simple1.net”文件的配置最终如下:
# Simple lab
autostart = false
[localhost]
[[7200]]
image = \Program Files\Dynamips\images\C7200.image
# On Linux / Unix use forward slashes:
# image = /opt/7200-images/c7200-jk9o3s-mz.124-7a.image
npe = npe-400
ram = 160
[[ROUTER R1]]
s1/0 = R2 s1/0
f0/0 = R2 f0/0
mmap = true
idlepc = 0x6077e9fc
[[router R2]]
mmap = true
idlepc = 0x6077b778
[[ROUTER R3]]
model = 2691
image = \Program Files\Dynamips\images\c2691.bin
mmap = true
f0/0 = NIO_gen_eth:\Device\NPF_{51179616-52D7_450B-BDCE-090D80AEB467}
idlepc = 0xffffffff8000ad14
# No need to specify an adapter here, it is taken care of
# by the interface specification under Router R1
以上红色部分为对应前面的文件所做的修改。
这里主要是配置了idlepc以减少对系统资源的占用,以及配置R3的f0/0端口与PC机的网卡对应从而实现虚拟路由器与实际物理网络的连接。
前面只简单的介绍了这个文件中的几个字段的介绍,如果要得到更详细的介绍可以参考“C:\Program Files\Dynamips\sample_labs\all_config_options.txt”文件,以及参考资料中提到的桃花岛主的文章《Dynamips自定义拓扑配置》。
参考资料
1. http://www.ipflow.utc.fr/blog/
2. http://dyna-gen.sourceforge.net/
3. 桃花岛主的BLOG:http://www.thdao.cn/
4. http://www.ciscohuawei.com/forumdisplay.php?fid=72&page=1 有一个专门的版块介绍dynamips等。
版权申明
所有版权规 喜玛拉雅(Hmilyajiao@yahoo.com.cn) 所有。
欢迎转载,但转载时请务必注明原始出处并包含本版权申明。