分布式 dynamips+dyangen (更新于07.3.30)

更新内容:
很多网友都反映用此文方法行不通,现象为:分布在各计算机上的路由器能起来,但互联的端口是Down的,以至于ping 不通。在此特别感谢 flyxj 网友QQ联系到我才引起我的高度注视使问题得到解决,不会再给读者误导(本人能力是很有限的)。
原因经分析找到了,NET文件中有[localhost]一句,localhost 会被本地的hosts文件解析成127.0.0.1,想毕各位已经明白了吧,分布在各计算机上的路由器之间的连接是通过UDP=后边指定的端口通信的,由于127 和192不在同一子网,所以端口自然UP不起来了。
注意:笔者用最新的dynamips 0.2.7RC1和dynagen 0.90 实验不成功,有错误提示,google 了一下说是两个版本不匹配(晕)。请更新后仍不成功的朋友换本文推荐的版本试一下

dynamips 固然是个好东西,但其对内存苛刻的要求又让人头痛,虽说现在的内存比较便宜了,可对于像我这样的学生一族,又岂能承受的了。笔者01年买的电脑,一直也在升级,到现在才用上了512的内存。
那些有钱人新买来的电脑多是1G内存双核CPU,居然用来玩卡丁车,内存占用没上过500,这自然勾起我节约能源的爱国之心,用他们的电脑分担几台路由器,来完一大网络的模拟。“要学会花别人的钱”,嘿嘿,“要学会用别人的电脑”更恰当!于是笔者尝试了一下dynamips的分布式功能。

我们舍宿四台电脑,通过四口的傻瓜路由相连。不详细说了,充份发挥一下拓朴的优势!

下面以 dynamips for 工大瑞普full version 为蓝本实现如下的拓朴(老版本可能会存在问题)

要再每台电脑上安装上winpcap,并按如下结构复制文件。
e:\
┠─dynamips
        ┃
        ┣ ios ━ unzip-c3620-i-mz.122-37.bin
        ┃
        ┣ dynamips   ━┳cygwin1.dll
        ┃                      ┗dynamips-wxp.exe
        ┣ workingdir         //空目录
     ┗ 启动虚拟服务.cmd         //内容为:cd dynamips
                                                             dynamips-wxp.exe -H 7200

本次实验笔者是在PC1上作的,前端程序dynagen要放到PC1上,所以要加入如下目录和文件:
e:\
┠─dynamips
        ┃
        ┣ dynagen ━┳configspec
        ┃                   ┣dynagen.exe
        ┃                   ┣dynagen.ini
        ┃                   ┗library.zip
        ┣ labini ━━━ test.net   //内容见下
     ┗实验控制台.cmd           //内容为:cd dynagen
                                                           dynagen.exe ..\labini\test.net

test.net 文件内容:

autostart = false

[192.168.1.101]
port = 7200
udp = 10000
workingdir = ..\workingdir\
   
   [[router R1]]
   image = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3001
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false
   slot0 = NM-1FE-TX
   slot1 = NM-4T
   s1/1 = R2 s1/0
   s1/2 = R4 s1/0

[192.168.1.102]
port = 7200
udp = 10000
workingdir = ..\workingdir\

   [[router R2]]
   image = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3002
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false  
   slot0 = NM-1FE-TX
   slot1 = NM-4T
   s1/1 = R3 S1/0
   s1/2 = R4 s1/1

[192.168.1.103]
port = 7200
udp = 10000
workingdir = ..\workingdir\

   [[router R3]]
   image = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3003
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false
   slot0 = NM-1FE-TX
   slot1 = NM-4T
   s1/2 = R4 s1/2

[192.168.1.104]
port = 7200
udp = 10000
workingdir = ..\workingdir\

   [[router R4]]
   image = ..\ios\unzip-c3620-i-mz.122-37.bin
   model = 3620
   console = 3004
   ram = 32
   confreg = 0x2142
   exec_area = 64
   mmap = false
   slot0 = NM-1FE-TX
   slot1 = NM-4T

此时在PC1上运行
实验控制台.cmd
启动虚拟服务.cmd
PC2 3 4 上分别运行 启动虚拟服务.cmd ,这样就可以实验了。

总结:
其实原理很简单,dynagen作为前端,所以只需要在操作此实验的pc上有就行了,net文件也应在此pc上。而路由器是运行在各个服务器端的,所以dynamips要在每个PC上都有,ios也要放在服务器端。dynagen会将NET文件中的信息发送给各各服务器端,并实现各路由器之间的连接,有了这个思想就可以用更多的pc搭建更大的拓朴了。

此文章是回忆实验写的,有出错或不明白的请留言(推荐),或至email到:admin@pppei.cn

7 thoughts on “分布式 dynamips+dyangen (更新于07.3.30)

    • 你说的太简单了,不大好判断哪的问题,我实验时绝对成功了,成功运行rip协议,NET文件就是文中的test.net,(好好看一下net的文件结构是不是有错)。另每个电脑上都要有
      ┠─dynamips
             ┃
             ┣ ios ━ unzip-c3620-i-mz.122-37.bin
             ┃
             ┣ dynamips   ━┳cygwin1.dll
             ┃                      ┗dynamips-wxp.exe
             ┣ workingdir         //空目录
             ┗ 启动虚拟服务.cmd         //内容为:cd dynamips
                                                                  dynamips-wxp.exe -H 7200
      路由器启动后,到各台电脑上的Dynamips服务器程序上看看,是不是有启动成功的字样。还有就是最好关了防火干墙。
      欢迎再交流!!!可以至信admin@pppei.cn 或QQ联系。QQ号查看我的帐户ring0 可见!!

  1. 用gui,然后自己改,想怎么分布就怎么分布,简单多了。
    我就用2台PC,搭建了一个IE机架,轻松的紧。
    NET我也用过,后来改BAT了,不过说实话,你这个net我真的看不懂。

    • net文件看不懂不是我文章问题,你应该去看一下dyna*的管方文档,或去网上找相关资料.bat和net用哪个是个人习惯问题,你觉的bat简单的多,我却觉的net更简单的多,要知道dynamips是个工具,只要能用来作实验就OK了,不要再为了用哪个好而争了,浪费时间啊!

发表评论

电子邮件地址不会被公开。 必填项已用*标注


Verify Code   If you cannot see the CheckCode image,please refresh the page again!