更新内容:
很多网友都反映用此文方法行不通,现象为:分布在各计算机上的路由器能起来,但互联的端口是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的分布式功能。

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

Copyright by Beafuture's blog

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

Copyright by Beafuture's blog

要再每台电脑上安装上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]admin@pppei.cn[/email]

作者:Beafuture'blog
地址:[url]http://www.pppei.cn/blog/post/34/[/url]
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

相关日志
dynamips/dynagen 汉化版(7.31)
dynagen-0.9.3-CHS(测试)
Dynamips 0.2.7 汉化版(测试)
新dynamips前端GNS-3(6月6日更新)
关于BGP同步和路由反射

dynamips 休闲

0

分享

微博 QQ 微信

收藏

上一篇:CCIE实验笔记之-第3章 WA... 下一篇:IP UNNUMBERED
cnhbhg

19篇文章,8W+人气,0粉丝

关注

Ctrl+Enter 发布

发布

取消

转载于:https://blog.51cto.com/82880/71011

分布式 dynamips+dyangen (更新于07.3.30)相关推荐

  1. 2小时07分30秒!尘封逾15年中国马拉松国家纪录被打破 | 美通社头条

    美通社消息:全新的历史时刻!特步见证!2023年3月19日,何杰和杨绍辉穿着特步160X冠军跑鞋在无锡马拉松赛道上书写了中国马拉松新的骄傲:何杰以2小时07分30秒的成绩冲过终点.杨绍辉紧随其后,以2 ...

  2. 掌握分布式环境缓存更新策略,提高缓存与数据库双写一致性!

    概述 随着时代的发展,服务系统架构也已经由最初的单体架构转变为分布式.微服务架构模式. 从数据体量上来看,各系统存储的数据量越来越大,数据的查询性能越来越低. 此时,就需要我们不断的进行优化,最常用的 ...

  3. klock 分布式锁重大更新

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   klock简介 基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring ...

  4. 深入理解分布式技术 - 先更新数据库,还是先更新缓存

    文章目录 Pre 数据不一致 更新缓存的方式 先更新数据库,再更新缓存 (数据库是新的,但缓存中数据是旧的) 先删缓存,再更新数据库 (并发操作下出现业务不一致) 先更新数据库,再删缓存 ( Cach ...

  5. 开发路上踩过的坑要一个个填起来————持续更新······(7月30日)

    欢迎转载,请注明出处! https://gii16.github.io/learnmore/2016/07/29/problem.html 踩过的坑及解决方案记录在此篇博文中! 个人理解,如有偏颇,欢 ...

  6. 小程序弹出层禁止列表滑动_是时候展现真正的技术了!小程序教程来了——百战Web前端课程更新05.07...

    百战程序员十大精品课程,实时更新,保持行业领先.本次更新课程Web前端第二十九阶段安心食疗-微信小程序全部7个章节及课程资料.小程序是依托微信而生的,是一种不用下载就能使用的应用,也是一项创新,经过近 ...

  7. 2022华中杯数学建模思路实时更新-ABC思路已更新(A一二程序已更新)-4月30日19时

    [关注我,思路实时更新,详细思路持续更新.去年原创思路,被很多机构贩卖,都是免费的,程序也是免费的,以前是您好啊数模君/数模孵化园,现在改名啦,认准:,原创发布,别被坑了] 目录 [详细思路,B已更新 ...

  8. 【SSM分布式架构电商项目-07】后台管理系统查询商品列表以及日志的书写

    查询商品列表 JS EasyUI的datagrid的格式化输出 默认情况下,会直接显示返回的数据,但是有些情况下不能直接显示,如:价格.日期.性别,需要指定formatter函数. 后台实现 Cont ...

  9. golang 分布式框架 (持续更新)

    源码地址: https://github.com/MwlLj/go-micro-service go-micro-service golang分布式框架 zookeeper 安装与启动 http:// ...

最新文章

  1. 剑指offer_第16题_合并两个排序的链表_Python
  2. 【ValueError: Target is multiclass but average=‘binary‘. Please choose another average setting, one 】
  3. .NET6之MiniAPI(一):开始Mini API
  4. python程序题斐波那契数列_Python_经典题_斐波那契数列
  5. java、sqlserver复习
  6. kubevirt在360的探索之路(k8s接管虚拟化)
  7. 自定义video控制栏,移动端可行
  8. Kent Beck 的《测试驱动开发》(TDD) Money示例Ruby版
  9. 很实用的,GridView中使用DataFormatString属性格式化内容
  10. Windows系统性能分析
  11. 中科大2021计算机应用数学期末回忆版
  12. 常用的电气制图软件有哪些?以及各自的优缺点
  13. 超好用的卸载工具——geek(免安装)
  14. oracle g1 gc,G1 GC日志分析
  15. Python计算机视觉-仿射扭曲简单实例
  16. 微信小程序之文本换行居中
  17. 减少代码重复率的方法
  18. C++ :线程的暂停、恢复和停止
  19. ●●●观世音菩萨●●●
  20. AR剪辑笔记之视频调色

热门文章

  1. 速卖通手机端怎样加入html,如何正确使用速卖通手机版的关联营销模板
  2. mysql解压包安装linuex_CentOS下安装Apache,php,Mysql
  3. 文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx
  4. 华为交换机s2700怎么重置_华为交换机忘记console的密码,怎么恢复出厂设置
  5. spring注入普通java类_普通java类如何取得注入spring Ioc容器的对象
  6. C/C++课程设计 新生入学管理系统(二)
  7. java被放弃了_为什么学Java那么容易放弃?
  8. set和map去重调用什么方法_【ES6】Set、Map
  9. java 相对路径获取_在java项目中通过相对路径获取资源的方式
  10. weblogic命令行操作