一、镜像(镜像介绍内容来自网络)
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全过程:
- 上传至pnet服务器 /opt/unetlab/addons/dynamips/目录下
- 权限修正:/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
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占用量
可以看到dynamips进程占用了CPU资源的100%
使用了计算的idle值CPU占用量
可以看到dynamips进程占用CPU资源的2%
但是你会发现,每次运行都要使用idle值很麻烦,进入/opt/unetlab/html/templates/目录,查看到所有的yml文件,其中部分文件就是修改idle值的关键。
我们通过修改/opt/unetlab/html/templates/下的dynamips设备文件,比如c3725.yml,将计算的idle值填入到idlepc字段,这样下次启动c3725时,就会以该idle值运行,占用CPU资源将非常的少。同理其他dynamips计算出的idle也可以对相应的yml文件进行修改!
刷新页面
三、上传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镜像全过程:
- 上传至pnet的/opt/unetlab/addons/iol/bin/目录下
- pnet安装后CiscoIOUKeygen.py文件已经在目录下
- 赋予可执行权限:chmod a+x CiscoIOUkeygen.py
- 执行CiscoIOUKeygen.py:./CiscoIOUkeygen.py
- 将执行的结果复制到新建名为iourc文件中
- 权限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
[license]
pnetlab = c833425160bc61ec;
- L2开头的文件为交换镜像、L3开头的文件为路由镜像
四、上传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
也就是说,镜像目录名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
到此镜像就导入完毕可以做实验了