实现原理:
1>测试实验端(本本)用dynagen实现各PC上的dynamips服务的分配调用。
2>各PC设备运行dynamips服务。
3>dynagen运行后将调用命令分配给运行相应的dynamips的服务PC,使其启动并配置相应的ios。
4>测试实验端shell将命令传递给dynamips服务PC。
5>dynamips服务端PC将运行结果返回给测试实验端的shell显示。

以下引用两篇文章做解释,完整的实验过程以后发布。

文章一:
[ 转载于:[url]http://www.pppei.cn/blog/read.php?34[/url] ]

我们舍宿四台电脑,通过四口的傻瓜路由相连。不详细说了,充份发挥一下拓朴的优势!
dynamips分布式实现详解_第1张图片
下面以 dynamips for 工大瑞普full version 为蓝本实现如下的拓朴(老版本可能会存在问题)
dynamips分布式实现详解_第2张图片
要再每台电脑上安装上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`
   p_w_picpath = ..\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`
   p_w_picpath = ..\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`
   p_w_picpath = ..\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`
   p_w_picpath = ..\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到:[email][email protected][/email]

===========================================================================

文章二:
[ 转载于:[url]http://www.eguodu.com/bbs/viewthread.php?tid=5107&[/url]
highlight=%E5%88%86%E5%B8%83%E5%BC%8F%2B%E7%BD%91%E7%BB%9C%E5%88%80%E5%AE%A2 ]

在一台PC上运行dynamips的路由器个数是很有限的,如果你有很多PC,那么你就可以做一个 分布式的网络,每个PC上都运行几个路由器,这样一来就可以做一个很大的网络拓扑了。呵呵。
今天测试了linux做服务器的情况,share出来,大家一同分享。

服务器: linux fc5, ip=192.168.0.1
运行dynamips: /usr/dynamip
需要ios: /usr/dynamips/ios.bin

客户端:winXP
运行dynagen。

在服务器上必须得有dynamips.bin这个没什么好说的,如果用linux系统的话,大家可以到网上去下载。如果服务器是winxp的话,用论坛里面提供的dynamips就可以了。
当然服务器上必须得有ios,否则无法运行。呵呵。两个条件缺一不可。
/usr/dynamips:
dynamips -H 7200


客户机:
dynagen s1.net

关于s1.net的写法如下,不过idlepc的值需要自己根据情况来调整:
autostart = false

[192.168.0.1]

    port = 7200
    workingdir = /usr/dynamips

`7200`
    p_w_picpath = /usr/dynamips/ios.bin
    npe = npe-400
    exec_area = 128
    idlepc = 0x613096c0
        
    `ROUTER R1`
    exec_area = 128
    idlepc = 0x613096c0
    s1/0 = R2 s1/0
    f0/0 = H1 f0/0
   
    `router R2`
    exec_area = 128
    idlepc = 0x613096c0
    f0/0 = H2 f0/0

    `ROUTER H1`
    exec_area = 128
    idlepc = 0x613096c0

    `ROUTER H2`
    exec_area = 128
    idlepc = 0x613096c0