EVE-NG是一款流行的网络实验平台,对比思科的packet tracer它的优势是不受操作系统的限制,在Linux和MacBook上都能运行,并且可以导入不同厂家的虚拟设备,包括Juniper, Arista, 华为,甚至vmware的ESX服务器,来模拟真实的多态设备下的网络环境。
我因为工作和考证上的需求,在自己的个人电脑上安装了eve-ng这个软件,感觉挺好用,所以分享一下。
安装eve-ng需要使用vmware的workstation, vmware官方提供免费版本,只要下载时同意不用于商业活动即可。如果你使用MacBook,那就得用vmware fusion, 这个app不免费。。。我使用MacBook装了vmware fusion,与使用workstation安装eve-ng的方法基本一致。好了,我们现在开始安装eve-ng,步骤大概如下:
(如果你使用virtualbox, 安装方式也大同小异,安装eve-ng成功后,导入镜像方式是一样的)
1. 下载eve-ng官方的OVA文件,导入eve-ng虚拟机 (以下简称EVE VM)
2. 初始化eve-ng虚拟机
3. 导入网络设备虚拟机的镜像(这里我们会导入思科的vIOS,在后文中导入其它镜像)
4. 试用eve-ng实验平台
首先我们去到eve-ng的官网下载OVA文件,OVA官网地址,选择下载‘Free EVE Community Edition’ 版本。
https://www.eve-ng.net/index.php/download/
打开vmware fusion ,在其界面作如下操作,选择 add > import > 在打开窗口选择eve-ng的ova文件 > 选择VM的存储路径 > 确认导入。EVE VM加载成功后,你将看见如下图的命令行界面,至此EVE VM就算安装成功啦。
进入下一步初始化需要先登陆,eve-ng的缺省用户名和密码是root / eve。
从上一步登录后进入初始化界面,下图是第一个初始化步骤,重设root用户密码。
EVE-NG要求对以下参数进行设置, 这是我的配置,建议使用DHCP比较简单, DNS 和 NTP可以不设置。
初始化配置完成后VM会重启,当命令行界面再次出现时使用root和新密码登录,然后在命令行使用命令‘shutdown now’关闭VM(因为配置资源需VM在关闭的情况下执行),这样我们可以根据个人电脑的性能,配置EVE VM的资源。
在vmware fusion的界面,选择Virtual Machine>Settings>Processors&Memory, 配置EVE VM的CPU,内存和硬盘资源。下图是我给EVE VM分配的资源,记得很重要的一点是要打开‘enable hypervisor application in this virutal machine’ (VT-x/EPT support)这个属性,因为EVE VM需生成二级的VMs,就是虚拟技术中所谓的Nested Virtualization。
设置好资源后在vmware fusion上启动EVE VM。虚拟机启动后,我们就可以进入eve-ng的网页界面看看它长什么样。在上一步中我们设置了使用DHCP,vmware会自动给eve-ng分配一个IP地址,这个IP地址在vmware的console 上就能看到,如下。
你也可以在命令行界面登录后,使用如下命令 'ifconfig | grep -A 1 pnet0' 获得IP地址。
root@eve-server:~# ifconfig | grep -A 1 pnet0
pnet0 Link encap:Ethernet HWaddr 00:0c:29:a7:de:a4
inet addr:172.16.84.129 Bcast:172.16.84.255 Mask:255.255.255.0
打开你的网页浏览器输入该IP地址,用eve-ng网页界面的缺省用户名和密码登录:admin / eve。
好了,到此我们完成了初始化,但现在我们还不能做任何网络实验,因为还需要导入虚拟设备的镜像。
镜像就是虚拟技术中所用的image,是用来导入导出各设备虚拟机的文件数据。EVE-NG在其官网上给每一个厂商的镜像都提供了相应的加载方法及文档,这些方法步骤基本类似。EVE-NG支持如下三种镜像,1)dynamicips 2) IOU或IOL 和 3)QEMU。其中第三种QEMU是最常见的虚拟机镜像,如果你使用过KVM虚拟机的话对它应该不陌生。QEMU的镜像文件格式名是qcow2。这里我们会看看怎样导入思科IOS的qcow2镜像。
以下连接是eve-ng官网上导入vIOS的文档,思科虚拟机的名称为vIOS。这里有一个问题是你要有相应的lincese才能在思科官网下载相应的镜像,然后才能根据eve-ng的文档导入vIOS。
https://www.eve-ng.net/index.php/documentation/howtos/howto-add-cisco-vios-from-virl/
我在网上找到了一个直接就做好的vIOS的qcow2镜像,下载地址,所以这里我们就直接使用这个镜像。下载好镜像后,可使用命令行SCP或winscp之类的软件,把镜像复制到EVE VM上,然后进行操作。以下是我在我机子上的操作(记得把IP换成你EVE VM上的IP)。
$ scp virtioa.qcow2 [email protected]:~
virtioa.qcow2 100% 39MB 121.3MB/s 00:00
$ ssh [email protected]
root@eve-server:~#
root@eve-server:~# ls
virtioa.qcow2
root@eve-server:~/eveimagess# mkdir /opt/unetlab/addons/qemu/viosl2-adventerprisek9-m-15.2-2017032/
root@eve-server:~/eveimagess# mv virtioa.qcow2 /opt/unetlab/addons/qemu/viosl2-adventerprisek9-m-15.2-2017032/
root@eve-server:~/eveimagess# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
在进行以上操作时有两个要点 :
如以上操作都成功执行的话,那么恭喜,我们可以开始做实验了。
现在回到eve-ng的网页界面,即可部署思科的虚拟机实验环境。下图是执行方式。
新建一个实验,点击Add new lab
在实验界面,创建新的node, 点击 Add an object > node
在node的列表中选择Cisco vIOS Switch
根据需要配置vIOS的CPU和内存资源,也可以使用默认值,最后给vIOS重命名。
右键点击vIOS虚拟机,点击start
虚拟机启动后,点击会弹出一个telnet的窗口,在窗口登录即可在IOS的命令行配置虚拟交换机。
到此,我们的eve-ng实验平台就初步建成了。为了让实验平台更丰富,在后面的文章里我们会研究怎么导入其它镜像,包括dynamicips镜像vmdk镜像,还会研究一下Arista vEOS镜像。最后,我们会把使用或安装eve-ng过程中遇到的问题汇总解决。
文末提一句,在EVE-NG官网提供了一个客户端安装包,这个包提供的是VNC,telnet,Wireshark等软件的安装模块,如果你的电脑上已经有相关的软件就不需要安装,而VNC是可装可不装的,所以在这里我没有安装这个客户端安装包。
前面说了要介绍如何导入Arista交换机的镜像,今天我来更新一下这部分的内容。
Arista是2004年由两位业界大牛创立的公司,交换机是一个成熟的市场,对于后来者是非常不利的。然而Arista的业务发展却非常良好,尤其在数据中心网络和金融领域方面。Arista交换机有很多亮点其中一点就是它的操作系统,名为EOS。EOS的命令行比较简洁也更符合工程逻辑,因此容易记住,另外它可以直接跑Linux命令,这给查看网络日志和状态时带来很多便利的工具。
EOS的虚拟镜像叫vEOS在Arista的官网注册即可下载。由于vEOS镜像提供的是vmdk格式,所以在导入eve-ng时首先要转换成qcow2格式。在eve-ng官网有完整的导入vEOS的步骤。
https://www.eve-ng.net/index.php/documentation/howtos/howto-add-arista-veos/
以下是我做的列子和讲解,这里我使用的vEOS 版本是4.21.9M, 记得除了下载镜像,还得另外下载一个叫aboot的iso文件。
1. 首先把下载好的vEOS镜像拷贝到你的EVE VM上,并用ssh登录到EVE VM上。
$ scp veos-4.21.9M.vmdk aboot.iso root@eve-server:/tmp
$ ssh root@eve-server
2. 创建对应的文件夹,把vEOS镜像移动到该文件夹。
# mkdir -p /opt/unetlab/addons/qemu/veos-4.21.9M
# mv /tmp/veos-4.21.9M.vmdk /opt/unetlab/addons/qemu/veos-4.21.9M/
# cd /opt/unetlab/addons/qemu/veos-4.21.9
3. 把镜像的vmdk格式转换成qcow2
# /opt/qemu/bin/qemu-img convert -f vmdk -O qcow2 veos-4.21.9M.vmdk hda.qcow2
# rm veos-4.21.9M.vmdk
4. 把aboot文件重命名为cdrom.iso
# mv /tmp/aboot.iso /opt/unetlab/addons/qemu/veos-4.14.0F/cdrom.iso
5. 最后像导入其它镜像一样,要给eve-ng授权一下。
# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
成功完成上述步骤后,在eve-ng的网络界面就能看到vEOS被激活,能够部署虚拟的EOS进行实验。特别提示,在EOS命令行输入bash就能使用Linux命令。