EVENG-上传镜像

EVENG-上传镜像

Scroll Down

一、镜像

EVE-NG支持多种镜像,比如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登录进服务器,将镜像上传至指定目录,不同的镜像需要上传至不同的目录,才能够被EVE-NG所识别。

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

XSHELL

XFTP

secure-CRT

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. 上传至EVE-NG/opt/unetlab/addons/dynamips/目录下
  2. 权限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

修正权限的作用主要是保证dynamips对于这个IOS镜像有读取的权限,虽然以root上传的IOS镜像在一般情况下符合要求的,但是进行权限修正是为了万无一失

EVE-NG 2.0.3-110已经更新为自动计算idle值,以下操作只是针对版本低于 2.0.3-110

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 <ios_image>

本例以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值
  3. 退出,同时按住ctrl + ],也是相同时间,快速放开按q,即可退出
  4. 使用计算的idle值来启动dynamips镜像:dynamips -P 3725 /opt/unetlab/addons/dynamips/c3725-adventerprisek9-mz.124-15.T14.image --idle-pc=0x60c086a8

不管是计算idle还是退出,都有点反人类设计,很容易就不能成功,所以多试几次,把握时间精度,嘿嘿还好110版本帮我们自动解决了这个问题!

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

未使用计算的idle值CPU占用量
E4.png
可以看到dynamips进程占用了CPU资源的100%

使用了计算的idle值CPU占用量
E5.png
可以看到dynamips进程占用CPU资源的2%

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

idle2.png

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

idle1.png

三、上传IOL镜像

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

IOL镜像命名规则:

示例:i86bin-linux-l3-adventerprisek9-15.4.1T.bin

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

上传IOL镜像全过程:

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

[license]
EPIOL-EVE = 052f17298eeaf691;

E6.png

  • CiscoIOUkeygen.py文件在生成iourc中的值后,就可以删除了
  • L2开头的文件为交换镜像、L3开头的文件为路由镜像

四、上传QEMU镜像

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

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

QEMU镜像目录命名

比如kali的镜像,上传至/opt/unetlab/addons/qemu/linux-kali-2019.4-amd64/virtioa.qcow2

  • kali镜像名:virtioa.qcow2
  • 存放镜像的镜像目录名(符合官方QEMU镜像目录命名):linux-kali-2019.4-amd64

E8.png

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

1st. 上传镜像至EVE-NG/opt/unetlab/addons/qemu/xxx/virtioa.qcow2
2nd. 权限修正:/opt/unetlab/wrappers/unl_wrapper -a fixpermissions