E-NetDev 模拟器:Dynamips 镜像导入指南

前言

Dynamips 是一款经典的 Cisco 路由器模拟器,能够直接运行真实的 Cisco IOS 镜像。E-NetDev 模拟器完整支持 Dynamips 技术,可导入各类 Cisco IOS 镜像用于路由交换实验。本文详细介绍 Dynamips 镜像的完整导入流程。


第一章:Dynamips 镜像基础

1.1 Dynamips 技术特点

特性说明
真实 IOS 运行直接加载 Cisco 官方 IOS 镜像,非模拟实现
平台兼容支持 7200、3600、3700、2600 等多个系列
资源占用低相比 QEMU,内存和 CPU 消耗更少
启动速度快秒级启动,适合大规模拓扑构建

1.2 支持的镜像格式

E-NetDev 支持以下 Dynamips 镜像格式:

格式说明适用场景
.bin原始 IOS 二进制文件最常见,直接上传使用
.image重命名的 IOS 文件部分旧版本使用

1.3 支持的设备平台

平台标识对应设备典型用途
c7200Cisco 7200 系列高端路由实验、MPLS
c3600Cisco 3600 系列中端路由、语音网关
c3725Cisco 3725企业边界路由
c3745Cisco 3745高性能路由
c2691Cisco 2691入门级路由
c2600Cisco 2600 系列基础路由实验

第二章:镜像获取与准备

2.1 镜像文件命名规范

Dynamips 镜像文件名需包含平台标识和版本信息:

正确示例:
c7200-adventerprisek9-mz.152-4.M7.bin
c3725-adventerprisek9-mz.124-15.T14.bin
c2691-adventerprisek9-mz.124-15.T14.bin

命名结构:
[平台]-[功能集]-[版本号].bin

2.2 镜像存放目录结构

/opt/unetlab/addons/dynamips/
├── c7200/              # 7200 平台镜像
│   └── c7200-adventerprisek9-mz.152-4.M7.bin
├── c3725/              # 3725 平台镜像
│   └── c3725-adventerprisek9-mz.124-15.T14.bin
└── c2691/              # 2691 平台镜像
    └── c2691-adventerprisek9-mz.124-15.T14.bin

每个平台需创建独立子目录,目录名与平台标识一致。


第三章:FTP 上传步骤

步骤一:连接 FTP 服务器

使用 FileZilla 或命令行工具连接 E-NetDev 服务器:

参数示例值
主机192.168.1.100
端口21
协议FTP / FTPS
用户root
密码服务器密码

步骤二:创建平台目录

导航至 Dynamips 镜像根目录,创建对应平台文件夹:

# 通过 SSH 预先创建目录
mkdir -p /opt/unetlab/addons/dynamips/c7200
mkdir -p /opt/unetlab/addons/dynamips/c3725
mkdir -p /opt/unetlab/addons/dynamips/c2691

# 设置权限
chown -R root:unl /opt/unetlab/addons/dynamips/
chmod -R 755 /opt/unetlab/addons/dynamips/

步骤三:上传镜像文件

FileZilla 拖拽上传:

  1. 本地站点:选中 .bin 镜像文件
  2. 远程站点:导航至 /opt/unetlab/addons/dynamips/c7200/
  3. 拖拽文件至远程目录,等待上传完成

命令行 FTP 上传:

ftp 192.168.1.100
Name: root
Password: [输入密码]

ftp> binary                    # 切换二进制模式
ftp> cd /opt/unetlab/addons/dynamips/c7200/
ftp> put c7200-adventerprisek9-mz.152-4.M7.bin
ftp> quit

步骤四:验证文件完整性

上传后检查文件属性:

ls -la /opt/unetlab/addons/dynamips/c7200/

# 预期输出:
-rwxr-xr-x 1 root unl 68786540 May  8 00:20 c7200-adventerprisek9-mz.152-4.M7.bin

确保权限为 755,属主为 root:unl


第四章:配置 Dynamips 参数

4.1 创建平台配置文件

每个平台需创建 .yml 模板文件,定义运行参数:

c7200.yml 示例:

---
type: dynamips
name: Cisco 7200
description: Cisco 7206VXR Router
icon: Router.png
cpu: 1
ram: 512
nvram: 512
disk0: 0
disk1: 0
confreg: 0x2102
idlepc: 0x606e0538          # 关键参数,降低 CPU 占用
idlemax: 500
idlesleep: 30
exec_area: 64
mmap: true
sparsemem: true
slot0: C7200-IO-FE           # 插槽 0:输入输出控制器
slot1: PA-2FE-TX             # 插槽 1:双口快速以太网
slot2: PA-4E                 # 插槽 2:四口以太网
slot3: PA-GE                 # 插槽 3:千兆以太网
console: telnet

4.2 idlepc 参数获取

idlepc 是 Dynamips 的关键优化参数,用于降低空闲时 CPU 占用:

# 1. 手动启动 Dynamips 获取 idlepc
dynamips -P c7200 -t npe-400 /opt/unetlab/addons/dynamips/c7200/c7200-adventerprisek9-mz.152-4.M7.bin

# 2. 在控制台执行 idlepc 计算
idlepc get <设备ID>

# 3. 测试多个值,选择 CPU 占用最低的
idlepc show <设备ID>

# 4. 将最优值填入模板文件

不同 IOS 版本的 idlepc 值不同,需针对每个镜像单独计算。


第五章:修复权限与验证

5.1 执行权限修复

上传镜像和配置后,必须执行权限修复:

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

或 Web 界面操作:

System → System Settings → Fix Permissions

5.2 Web 界面验证

  1. 刷新 E-NetDev Web 页面
  2. 进入实验室编辑模式
  3. 右键 Add Node → 选择 Dynamips 分类
  4. 确认设备列表显示:
  • Cisco 7200
  • Cisco 3725
  • Cisco 2691 等

5.3 启动测试

添加节点后启动测试,验证镜像正常运行:

检查项预期结果
节点状态绿色运行指示灯
控制台连接成功进入 IOS 命令行
基础命令show version 显示正确版本信息
CPU 占用空闲时低于 10%(idlepc 生效)

第六章:高级配置技巧

6.1 多平台镜像批量上传

# 创建所有平台目录
for platform in c7200 c3600 c3725 c3745 c2691 c2600; do
    mkdir -p /opt/unetlab/addons/dynamips/${platform}
done

# 批量设置权限
chown -R root:unl /opt/unetlab/addons/dynamips/
chmod -R 755 /opt/unetlab/addons/dynamips/

# 上传完成后统一修复
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

6.2 插槽模块配置

Dynamips 支持灵活配置接口模块:

模块标识功能适用平台
PA-2FE-TX2 口快速以太网c7200
PA-4E4 口以太网c7200
PA-GE千兆以太网c7200
NM-1FE-TX1 口快速以太网c3725/c3745
NM-4E4 口以太网c3725/c3745
WIC-1T1 口串行接口c2691/c2600

6.3 NVRAM 与配置保存

参数说明建议值
nvram非易失性内存大小512 KB
disk0外部存储卡 00(禁用)或指定大小
disk1外部存储卡 10(禁用)或指定大小
confreg配置寄存器0x2102(正常启动)

第七章:常见问题排查

问题现象可能原因解决方案
节点启动后 CPU 100%idlepc 未配置或错误重新计算并设置 idlepc 值
控制台无法连接镜像损坏或权限错误重新上传,执行 fixpermissions
show version 无输出镜像与平台不匹配确认镜像适用于对应平台
接口不显示插槽模块配置错误检查模板中 slot 配置
NVRAM 配置丢失nvram 参数过小增大 nvram 值至 512 或 1024
启动报错 “bad CPU type”Dynamips 版本不兼容更新 Dynamips 至最新版
Web 界面无 Dynamips 选项目录结构错误确认路径为 /opt/unetlab/addons/dynamips/平台名/

文件路径速查表

用途绝对路径
Dynamips 镜像根目录/opt/unetlab/addons/dynamips/
7200 平台镜像/opt/unetlab/addons/dynamips/c7200/
3725 平台镜像/opt/unetlab/addons/dynamips/c3725/
2691 平台镜像/opt/unetlab/addons/dynamips/c2691/
平台模板文件/opt/unetlab/html/templates/intel/amd/
权限修复命令/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

Dynamips vs IOL vs QEMU 对比

特性DynamipsIOLQEMU
真实性运行真实 IOS基于 Linux 的 IOS完整硬件模拟
资源占用
启动速度极快较慢
功能完整度完整 IOS 功能基础功能最完整
配置保存支持 write mem支持支持
适用规模中型拓扑(10-20台)大型拓扑(50+台)小型拓扑(5-10台)
学习成本中(需理解插槽)高(需配置模板)

Dynamips 是 E-NetDev 模拟器中运行真实 Cisco IOS 的经典方案,特别适合需要完整 IOS 功能验证的路由实验场景。通过 FTP 上传配合 idlepc 优化,可在保证真实性的同时实现高效的资源利用。


© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享