热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下Dynamips+Dynagen路由器模拟环境的搭建与使用

Dynamips是一个基于虚拟化技术的模拟器,用于模拟思科的路由器。Dynagen是思科模拟器的前端。它使用类似Windows下的ini配置文件来生成网络拓扑,主要用于分配端口的配

Dynamips是一个基于虚拟化技术的模拟器,用于模拟思科路由器
Dynagen是思科模拟器的前端。它使用类似Windows下的ini配置文件来生成网络拓扑,主要用于分配端口的配置,生成和匹配NIO描述符,指定桥、帧中继、ATM交换机等。它提供了一个管理端口用于列出设备,恢复和保存实例,管理PC空闲时间,抓包等等。


一般而言,模拟器的前端会有图形化的界面,更容易进行直观的配置,Dynamips+Dynagen这种命令行的方式会显得有些鸡肋。但如果想自己编写一个管理模拟路由器的程序,就需要对命令行的配置有一定的了解。

一.安装Dynamips+Dynagen

1.在http://sourceforge.net/projects/dyna-gen/files/这里下载Dynamips和Dynagen的安装包
2.安装支持包libpcap,详细步骤参考这里
3.安装Dynamips

[root]# cp dynamips-0.2.8-RC2-x86.bin /usr/bin/dynamips
[root]# chmod +x /usr/bin/dynamips
[root]# ln -s /usr/bin/dynamips/dynamips-0.2.8-RC2-x86.bin dynamips

说明:下载的如果是bin文件,是可执行文件,改名放入对应的位置即可。如果是RPM文件,直接安装即可。

4.安装Dynagen

[root]# rpm -ivh dynagen-0.10.1-1.el6.rf.noarch.rpm

5.下载思科的ISO文件

二.编写拓扑配置文件

编写*.net配置文件,里面存储模拟路由器的相关信息,这里以编写test.net为例

[root]# vim test.net
autostart = False
[localhost]
workingdir = /tmp
prot = 7200
udp = 10000
[[2691]]
image = root/IOS/c2691-advipservicesk9-mz.124-25d.bin
ram = 128
[[ROUTER R0]]
model = 2691
cOnsole= 2000
slot0 = GT96100-FE
f0/0 = NIO_linux_eth:eth1

这里模拟了一个思科2691型号的路由器R0,其网口f0/0连接到本地电脑的eth1网口,远程登陆端口为2000


三.编写启动脚本

每次启动需要先开启Dynamips守护进程,然后再启动模拟器运行.net文件。可以编写脚本减少工作量

[root]# vim start_dynamips.sh
#!/bin/bash
echo "*===========================*"
echo "* 开启Dynamips守护进程 *"
echo "*===========================*"
/usr/bin/dynamips -H 7200 &


[root]# vim start_dynagen.sh
#!/bin/bash
echo "*===========================*"
echo "* 开启Dynagen *"
echo "*===========================*"
/usr/bin/dynagen test.net


编写完脚本还要记得赋予权限

[root]# chmod 777 start_dynamips.sh
[root]# chmod 777 start_dynagen.sh

四.运行模拟器

1.运行Dynamips
《Linux下Dynamips+Dynagen路由器模拟环境的搭建与使用》



2.运行dynagen
《Linux下Dynamips+Dynagen路由器模拟环境的搭建与使用》



3.查看模拟的路由器设备列表,并启动路由器R0
《Linux下Dynamips+Dynagen路由器模拟环境的搭建与使用》



4.第一次启动时,需要计算路由器的idlepc值,这里截不到图了,借用下别人的图
《Linux下Dynamips+Dynagen路由器模拟环境的搭建与使用》



5.现在可以用telnet登陆路由器R0,进行相关配置
《Linux下Dynamips+Dynagen路由器模拟环境的搭建与使用》


五.模拟器保存配置文件

有两种常见的方法:
方法一:用Dynagen提供的export命令。注意,使用此命令之前,必须先保存配置文件,用write命令或是用copy run start,然后再用下面命令
=> export R1 d:\
The directory “d:\” already exists. Ok to overwrite (Y/N)? y
Exporting R1 to “d:\\R1.cfg”
=>
执行结束后,会在D:\有一个R1.cfg的文件,当然,你也可以用export /all D:\来导出所有设备的配置文件。
如果你想导入以前保存好的配置文件的话,就用import /all D:\ 命令。


方法二:用Dynagen的save命令。这种方法备份的配置信息会保存在当前用的net文件中,这些信息是经过处理过的,你看不明白,它会在每个路由器中增加一个属性,如:
[[router R1]]
model = 3660
f0/0 = NIO_gen_eth:\Device\NPF_{BA68CE2E-1ACE-4DCB-AF5D-92179DD5F49C}
cOnfiguration= IQohIExhc3QgY***********Cg==
下次再启动net文件时,系统会提示你是否加载配置信息,你自由选择就可以了。





推荐阅读
  • 【从零到壹】Koa 从理解到实现
    【从零到壹】Koa从理解到实现-【点击查看文中的相关源码】根据官网的介绍,Koa是一个新的Web框架,致力于成为Web应用和API开发领域中的一个更小、更富有表现力和更健壮的基石。 ... [详细]
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • Spark 贝叶斯分类算法
    一、贝叶斯定理数学基础我们都知道条件概率的数学公式形式为即B发生的条件下A发生的概率等于A和B同时发生的概率除以B发生的概率。根据此公式变换,得到贝叶斯公式:即贝叶斯定律是关于随机 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了MongoDB快速入门教程(4.1)相关的知识,希望对你有一定的参考价值。4 ... [详细]
  • 吴恩达“机器学习”——学习笔记二
    定义一些名词欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数。过拟合(overfitting):使用过量的特征集合, ... [详细]
  • 来自Google的前端工程师-PhilipWalton分享了本身关于怎样成为优异的工程师的一些看法。个人感觉很有代价,所以翻译成中文,轻易人人浏览。程度有限,如翻译不妥的地方请在批 ... [详细]
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • 什么是API接口?给大家举例说明
    Api接口也就是所谓的应用程序接口,api接口的全称是ApplicationProgramInterface,通过API接口可以实现计算机软件之间的相互 ... [详细]
  • 摘自:https:www.cnblogs.comnick-huangp4076273.htmlselect*from(select'Nick'asitemfromd ... [详细]
  • http://segmentfault.com/a/1190000000440293?page=1#c-1190000000440293-1050000000449039这是博主原帖 ... [详细]
  • 最近学习了数据挖掘常用的两种算法:FP-Growth和K-Means。现在把我的学习结果分享给大家。以下是本文的目录,大家可以根据需要跳过一些章节:1.FP-Grow ... [详细]
  • 媒介这里大部份是本身碰到过的状况,另有一部份自创了偕行的文章,假如人人有碰到别的坑,迎接提出来一同研讨。学问要点1.Meta标签1.制止用户缩放页面,页面强迫让文档的宽度与装备的宽 ... [详细]
  • springboot系列(二)创建springboot工程
    https:www.cnblogs.commagicalSamp7171716.html简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spri ... [详细]
  • 关键词:LinuxJDKJRE解决JRE中文乱码解决FireFox不支持appletl 安装JDK1、  安装jdkroot用户进入jdk安装文件所在目录,键入chmoda+xjd ... [详细]
  • flutter 环境安装以及配置
    首先需要下载flutter源码,以下是github地址:https:github.comflutterflutter然后需要安装git环境吧,下图红框可以自行下载安装接下来需要安装 ... [详细]
author-avatar
书友69391618
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有