一、镜像(镜像介绍内容来自网络)

PNET 支持多种镜像,比如 dynamips、IOL、QEMU 等。正常 IOL、dynamips 的镜像一般 L2、L3 的网络设备镜像,而 QEMU 格式的镜像就显得非常的多了。比如思科的 ASAv、ESA、WSA、N9K、ISE、CSR、StealthWatch 等网络设备镜像,华为的 USG6000v、WAF5000、AR1000 等网络设备镜像,H3C 的 vAC、vBRAS、vFW、vLB、vSR 等网络设备镜像,还包括了国外的 Check Point、F5、Juniper 等著名厂商设备镜像。

上传镜像自然需要调用到 CLI 登录进服务器,将镜像上传至指定目录,不同的镜像需要上传至不同的目录,才能够被 PNET 所识别。

连接到 PNET 所在的服务器,需要用到类似 XSHELL(配套 XFTP)、secure-CRT、putty、WSL 等终端连接工具,下面推荐一款。

secure-CRT

SecureFX

1、dynamips 镜像介绍

Dynamips 用于模拟思科设备的模拟器,能够模拟 1700、2600、3600、3700、7200 平台。因为它能运行标准的 IOS 镜像,尽管模拟器陈旧,但是很多人还是喜欢用。

目前常用的就是 C3725 和 C7200 镜像

2、IOL 镜像介绍

IOL(IOS on LINUX)是思科路由器和交换机的 OS,可以运行在 x86 平台的任意 LINUX 发行版系统之上。IOL 具备支持交换机的高级特性、占用系统资源更少、启动更快等特点。

缺点就是 BUG 较多,部分高级特性(比如 PVLAN、链路聚合)只有指定版本支持,一般使用 IOL 的 L2、L3 层镜像

3、QEMU 镜像介绍

QEMU 使得 EVE-NG 拥有更加强大的虚拟能力。随着 KVM 与 QEMU 越来越容易使用,很多设备厂商也都开发了能够在 KVM 环境下运行的镜像,甚至能适配 openstack 环境。QEMU 类型的镜像种类众多,不仅仅支持网络设备,连操作系统都支持。所以 QEMU 类型的镜像相比 dynamips 和 IOL 更为复杂,涉及目录和镜像文件的名字也必须和官方给定的名字。

二、上传 Dynamips 镜像

Dynamips 镜像格式以. image 为后缀名,Dynamips 镜像上传至 / opt/unetlab/addons/dynamips / 目录下。

上传 dynamips 全过程:

  1. 上传至 pnet 服务器 /opt/unetlab/addons/dynamips / 目录下
  2. 权限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

修正权限的作用主要是保证 dynamips 对于这个 IOS 镜像有读取的权限。

1、计算 idle 值

Dynamips 是个模拟器,它会在 x86 的平台下模拟 cisco 的 CPU,所以 dynamips 需要实时地将虚拟地 CPU 的指令翻译成在 x86 下可执行的指令。Idle-pc(idle pointer counter)就是空闲计数器,这里简称 idle 值,用来记录虚拟 CPU 何时不工作,从而可以在它不工作时停止翻译工作,这样就能降低 dynamips 的 CPU 占用率。如果使用了错误的 idle 值将会导致 dynamips 的 CPU 占用率过高,所以需要计算出合适的 idle 值以降低 CPU 占用率。计算 idle 值需要用到 dynamips 命令,那么先来看一下 dynamips 的命令。格式: dynamips -P

本例以 3725 平台为例,镜像名为 c3725-adventerprisek9-mz.124-15.T14.image

1、加载镜像:dynamips -P 3725 /opt/unetlab/addons/dynamips/c3725-adventerprisek9-mz.124-15.T14.image

2、计算 idle 值:同时按住 ctrl + ] ,大约 15s 左右,快速放开按 i,即可开始计算 idle 值。记住 idle 值 —idle-pc=0x60c09aa0

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图1

3、退出,同时按住 ctrl + ],也是相同时间,快速放开按 q,即可退出

4、使用计算的 idle 值来启动 dynamips 镜像:dynamips -P 3725 /opt/unetlab/addons/dynamips/c3725-adventerprisek9-mz.124-15.T14.image —idle-pc=0x60c09aa0

不管是计算 idle 还是退出,都有点反人类设计,很容易就不能成功,所以多试几次,把握时间精度,

2、使用计算的 idle 值前后比较

未使用计算的 idle 值 CPU 占用量

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图2

可以看到 dynamips 进程占用了 CPU 资源的 100%

使用了计算的 idle 值 CPU 占用量

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图3

可以看到 dynamips 进程占用 CPU 资源的 2%

但是你会发现,每次运行都要使用 idle 值很麻烦,进入 / opt/unetlab/html/templates / 目录,查看到所有的 yml 文件,其中部分文件就是修改 idle 值的关键。

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图4

我们通过修改 / opt/unetlab/html/templates / 下的 dynamips 设备文件,比如 c3725.yml,将计算的 idle 值填入到 idlepc 字段,这样下次启动 c3725 时,就会以该 idle 值运行,占用 CPU 资源将非常的少。同理其他 dynamips 计算出的 idle 也可以对相应的 yml 文件进行修改!

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图5

刷新页面

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图6
pnet模拟器导入dynamips、IOL、QEMU镜像 - 图7

三、上传 IOL 镜像

IOL 镜像格式一般以. bin 为后缀名,IOL 镜像需要上传至 pnet 的 / opt/unetlab/addons/iol/bin / 目录中。导入 IOL 镜像后,需要执行 CiscoIOUKeygen.py 的工具来生成 license,然后将 license 导入进 iourc 中。

IOL 镜像命名规则:

示例:i86bi_linux-adventerprisek9-ms.155-2.T.bin

  • i86bin:x86 平台
  • linux: 运行在 linux 系统上
  • l3:支持 3 层功能,如果是 l2,则支持二层功能
  • adventerprisek9:IOS 特性
  • 155.2.T:IOS 版本
  • bin: 文件名后缀

上传 IOL 镜像全过程:

  1. 上传至 pnet 的 / opt/unetlab/addons/iol/bin / 目录下
  2. pnet 安装后 CiscoIOUKeygen.py 文件已经在目录下
  3. 赋予可执行权限:chmod a+x CiscoIOUkeygen.py
  4. 执行 CiscoIOUKeygen.py:./CiscoIOUkeygen.py
  5. 将执行的结果复制到新建名为 iourc 文件中
  6. 权限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

[license]

pnetlab = c833425160bc61ec;

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图8

  • L2 开头的文件为交换镜像、L3 开头的文件为路由镜像

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图9
pnet模拟器导入dynamips、IOL、QEMU镜像 - 图10

四、上传 QEMU 镜像

QEMU 的镜像,官方对于该镜像的上传和识别有着相应的标准。就是 QEMU 的镜像需要放在符合命名规则的目录下面,这样才能够被识别和使用。

QEMU 镜像格式一般以. qcow2 为后缀的,QEMU 镜像需要上传至 pnet 的 / opt/unetlab/addons/qemu/xxxx / 目录中,xxxx 目录命名必须符合 pnet 官方给定的命名规则。

QEMU 镜像目录命名

比如 centos 的镜像,上传至 / opt/unetlab/addons/qemu/centos-8-minimal/virtioa.qcow2

  • centos-8-minimal 镜像名:virtioa.qcow2
  • 存放镜像的镜像目录名(符合官方 QEMU 镜像目录命名):centos-8-minimal

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图11

也就是说,镜像目录名 centos - 不能修改,”-“ 后面可以自定义,但是一般都是发行版本号。

1、上传镜像至 pnet /opt/unetlab/addons/qemu/xxx/virtioa.qcow2

2、 上传模板至 pnet /opt/unetlab/html/templates/centos.yml

3、 上传图标至 pnet /opt/unetlab/html/images/icons/Server.png

4、. 权限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

pnet模拟器导入dynamips、IOL、QEMU镜像 - 图12
pnet模拟器导入dynamips、IOL、QEMU镜像 - 图13
pnet模拟器导入dynamips、IOL、QEMU镜像 - 图14

到此镜像就导入完毕可以做实验了
https://zhuanlan.zhihu.com/p/397041906