您的当前位置:首页正文

Dynamips使用说明

2020-09-12 来源:欧得旅游网


Dynagen + Dynamips 使用说明

一、软件介绍

1、Dynamips

http://www.ipflow.utc.fr/blog/

Cisco路由器模拟软件,支持17xx、26xx、36xx、7200等Cisco路由器系列。

它是在计算机上模拟路由器硬件,并在虚拟路由器中运行真实的IOS。

因此,从逻辑上看用户面对的就是真正的Cisco路由器。

2、Dynagen

http://dynagen.org/

一款基于字符界面的、使用Python开发的Dynamips管理前端,也就是说可以通过它更好

地使用Dynamips。Dynagen通过更友好的操作简化了Dynamips的配置和网络拓朴的实现。

3、WinPcap

http://www.winpcap.org

用于实现虚拟路由器与本地网卡的桥接。

二、Dynagen使用

1、安装

安装前需要下载3个软件:WinPcap、Dynagen、Dynamips(可选,建议使用最新版本)

首先安装WinPcap,所有安装项均使用默认配置即可。

其次安装Dynagen,默认安装即可。

最后检查Dynamips官方网站下载的程序版本与Dynagen集成的Dynamips程序版本,

建议使用最新版本的Dynamips程序。

我的个人配置习惯:

a) 更改默认telnet程序 (C:\\Program Files\\Dynamips\\dynagen.ini)

+-----------------------------------------------------

| ...

| telnet = start C:\\windows\\system32\\putty.exe -telnet %h %p

| ...

+-----------------------------------------------------

b) 建立d:\\ios目录,专门存放IOS映像。

c) 建立d:\\cfg-net目录,专门存放各种.net文件。

d) 针对不同IOS映像文件计算主机使用的idlepc值。

e) 获取本地网卡设备ID。

f) 更新已有.net文件的idlepc值和本地网卡设备ID。

2、初始化idlepc参数

2.1) 运行一个路由器实例,这需要事先编辑一个bat文件,请见下面示例。

例一:3640的镜像启动bat文件

+-----------------------------------------------------

| pause

| \"C:\\Program Files\\Dynamips\\dynamips\" -P 3600 -t 3640 -r 128 -X D:\\ios\\c3640-jk9o3s-mz.124-7a.img

| pause

+-----------------------------------------------------

+-----------------------------------------------------

| pause

| \"C:\\Program Files\\Dynamips\\dynamips\" -P 3600 -t 3640 -r 128 -p 0:NM-4T -p 1:NM-4E -X D:\\ios\\c3640-jk9o3s-mz.124-7a.img

| pause

+-----------------------------------------------------

例二:7200的镜像启动bat文件

+-----------------------------------------------------

| pause

| \"C:\\Program Files\\Dynamips\\dynamips\" -t npe-400 -X D:\\ios\\c7200-jk9o3s-mz.124-12.img

| pause

+-----------------------------------------------------

例三:2600的镜像启动bat文件

+-----------------------------------------------------

| pause

| \"C:\\Program Files\\Dynamips\\dynamips\" -P 2600 -X -r 96 -p 1:NM-16ESW .\\c2600-adventerprisek9-mz.124-10a.img

| pause

+-----------------------------------------------------

2.2) 登录路由器,当出现“router>”提示符后,按下“Ctrl+]”,再按“i”,稍等一会就会出现idlepc的运算结果,如

+-----------------------------------------------------

| Please wait while gathering statistics...

| Done. Suggested idling PC:

| 0x81538008 (count=64)

| 0x805246fc (count=75)

| 0x81adf56c (count=45)

| 0x8051ffac (count=29)

| 0x8051ffc0 (count=51)

| Restart the emulator with \"--idle-pc=0x81538008\" (for example)

+-----------------------------------------------------

选择count值最大的结果作为本机的idlepc值,以3640为例:

+-----------------------------------------------------

| [[3640]]

| image = D:\\ios\\c3640-jk9o3s-mz.124-7a.img

| idlepc = 0x805246fc /*计算结果中count最大值对应idlepc*/

| ...

+-----------------------------------------------------

3、使用本地网卡通信

运行 Dynagen 安装后出现的批命令 Network device list.cmd ,找到本地网卡的设备ID。

形式为

NIO_gen_eth:\\Device\\NPF_{50FBC283-9098-434E-99FF-FBDB1892247E}

将虚拟路由器的接口与本地网卡桥接,以3640为例:

+-----------------------------------------------------

| [[ROUTER r1]]

| model = 3640

| console = 3001

| f0/0 =

NIO_gen_eth:\\Device\\NPF_{50FBC283-9098-434E-99FF-FBDB1892247E}

| ...

+-----------------------------------------------------

运行虚拟路由器实例,可以发现f0/0自动启用,如果本地网络有可用的DHCP服务器,

f0/0会自动获得IP地址,可以通过 show int f0/0 查看IP。

如果没有DHCP,则可以为 f0/0 手工配置IP地址。

4、设计网络拓朴(.net文件)

下面,以一个.net实例进行说明

#

# Legend: ( Router ) [ Switch ]

#

# Topology:

#

# ( r1 ) ( r2 ) ( r3 )

# | | |

# |-s1/0----------s1/1-| |

# |-f3/0----------f3/2-| |

# |-f3/1----------f3/3-| |

# | |-s1/0----------s1/1-|

# | |-f3/0----------f3/2-|

# | |-f3/1----------f3/3-|

# |-f0/0--Local NIC | |

#

autostart = False

ghostios = True

[localhost]

[[3640]]

image = D:\\ios\\c3640-jk9o3s-mz.124-7a.img

idlepc = 0x6042bdb4

ram = 96

slot1 = NM-4T

slot2 = NM-4E

slot3 = NM-16ESW

[[ROUTER r1]]

model = 3640

console = 3001

f0/0 =

NIO_gen_eth:\\Device\\NPF_{50FBC283-9098-434E-99FF-FBDB1892247E}

s1/0 = r2 s1/1

f3/0 = r2 f3/2

f3/1 = r2 f3/3

[[ROUTER r2]]

model = 3640

console = 3002

s1/0 = r3 s1/1

f3/0 = r3 f3/2

f3/1 = r3 f3/3

[[Router r3]]

model = 3640

console = 3003

5、运行虚拟路由器

5.1) 运行虚拟路由器的步骤是:

A. 运行 Dynamips Server.bat (见Dynagen开始菜单或安装目录)

B. 运行 .net 文件,正常启动后会出现一个基于命令行控制台窗口

C. 在控制台通过各种命令实现路由器的启动、关闭、登录等操作

5.2) Dynagen安装后会自动关联 .net 文件,因此直接运行 .net 文件就可以执行拓朴。

5.3) 在 .net 文件运行产生的控制台上,输入 ? 或 help 可以获得命令帮助。

5.4) 常用命令

A. start r1 启动路由器R1,不区分大小写

B. start r1 r2 同时启动路由器R1和R2

C. telnet r1 r2 登录R1和R2

D. reload r2 重启R2 (Dynamips虚拟的路由器自身不能通过reload重启)

E. stop r2 关闭R2

F. stop /all 关闭所有路由器

6、其它说明

6.1) 详细阅读2个手册:Dynamips的README-x.x.x.txt、Dynagen的Tutorial(HTML)

6.2) 在我的不完全测试中得出的结论是,如果要运行BGP,那么至少需要128M内存。

6.3) 通过不断的实验和阅读 (Dynagen, Dynamips) 文档,我发现文档中已有的一个重

要信息,即运行2600 IOS文件时一定要将bin文件解压才能正常运行。

Dynagen Tutorial中的原谅如下:

* Note that currently imgs for 2600 routers must be uncompressed to work with Dynamips.

因篇幅问题不能全部显示,请点此查看更多更全内容