array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 EVE-NG简单入门介绍 - 爱码网

此篇文章简单的介绍下模拟器EVE-NG的使用,具体包括Dynamips设备导入与运行,IOL设备的导入与运行,QEMU设备的导入与运行,客户端软件的安装,物理网络与虚拟网络的结合等。

EVE-NG简单入门介绍

  • 导入镜像

Dynamips是由法国人Chris Fillot于2005年发布的用于模拟Cisco设备的模拟器,它可以运行标准的IOS镜像,虽然此模拟器比较陈旧,但仍然有很多网工愿意使用。EVE-NG支持Cisco IOS 1710、3725与7206,这些镜像可从思科官网或互联网上下载到。推荐使用WinSCP向EVE-NG服务器上传镜像,WInSCP具体使用方法不多叙述,将下载好的.bin文件拖至服务器/opt/unetlab/addons/dynamips/目录下,然后重命名此文件,后缀改为.image。接下来修正权限,作用是保证Dynamips对于这个镜像有读取权限,运行SecureCRT或直接在虚拟机上操作,运行命令/opt/unetlab/wrappers/unl_wrapper -a fixpermissions修正权限。接下来是计算idle值,Dynamips是个模拟器,会在x86平台下模拟思科的CPU,所以要对虚拟的CPU指令翻译成可在x86下执行的指令,idle值用来记录虚拟CPU何时不工作,这样就可以在它不工作时停止翻译,降低CPU利用率。控制台执行命令dynamips -P 3725 /opt/unetlab/addons/dynamips/镜像名,模拟器会加载此镜像并显示启动过程,进入后同时按Ctrl+]键,松手后按i键,便会计算idle值,计算完毕后记录下,然后按Ctrl+]键回到控制台。接下来此镜像就可以在EVE-NG的Web界面中使用了。

EVE-NG简单入门介绍

由于EVE-NG是基于linux的Ubuntu系统实现的,所以了解Linux基础知识与命令十分重要,在此推荐《Linux就该这么学》这本书来了解并学习Linux基础知识。

IOL为IOS on Linux的简写,可以运行在基于x86平台的任意Linux发行版系统上,支持交换机高级特性,占用资源更少,启动快等优点。IOL在思科官方是不提供下载的,需要在网上自己寻找资源。运行IOL需要两个文件,一个是以bin为后缀的镜像,一个是以iourc为名的license文件,iourc是通过名为CiscoIOUKeygen.py的工具自动生成的。接下来把两个文件拖入/opt/unetlab/addons/iol/bin/中,然后修正权限/opt/unetlab/wrappers/unl_wrapper -a fixpermissions。操作完成后即可进入Web界面测试使用。

QEMU可以帮助EVE-NG运行更多的虚拟设备,完成复杂实验,越来越多的设备商开始开发并释放出适配KVM环境的系统,EVE-NG可以协助qcow2镜像运行更多设备,提高可玩性。EVE-NG需要QEMU镜像的后缀名为qcow2,该文件本质是一个操作系统的虚拟硬盘文件,正因如此,可以通过自己手动制作镜像。首先在各个厂家官网中查找qcow2镜像,并且要拖入指定目录中,EVE-NG对目录和文件名有要求,可以到官网http://www.eve-ng.net/documentation/images-table中查看。接下来仍然是修正权限/opt/unetlab/wrappers/unl_wrapper -a fixpermissions。

  • 集成客户端软件包

EVE-NG最大特色就是借助HTML5实现去客户端化,但毕竟实现的功能只是管理设备,诸如抓包等功能无法实现,所以需要通过本地终端软件去管理设备。EVE-NG官方提供了一个客户端集成软件包,里面包含PuTTY,UItravnc和Wireshark,只要安装此软件包并导入注册表文件,就能正常使用。进入http://虚拟机ip/files/windows.zip,下载该文件,解压后编辑wireshark_wrapper.bat,确认好用户名密码,并修改一下wireshark的程序路径,然后将整个UNetLab文件夹放入C:\Program Files下,运行win7_64bit_wireshark.reg注册。

  • 物理网络与虚拟网络的结合

在EVE-NG中,网络结合必不可少,实现此功能需要桥接技术。桥接可以将两个或多个网卡在逻辑层面接入到同一局域网,这样虚拟设备就可借助自身物理网卡去访问真实物理网络。在Lab拓扑中添加Network时有多个选项,分为两类,一类是Bridge,一类是Cloud,这些都显示为虚拟网桥,并有不同的用途。Bridge仅作用于内部,为节点对象互联互通,可以理解为傻瓜交换机。Cloud0为桥接到EVE-NG的第一块网卡,以此类推。如果将虚拟设备节点连接到Cloud0中,那么此节点就会被桥街道EVE-NG的第一款网卡。虚拟机中有三种网络模式,Bridge默认使用VMnet0虚拟网卡,NAT模式使用VMnet8网卡,Host-Only使用VMnet1网卡。Bridge模式中是将宿主机和虚拟机都连到VMnet0网卡上,虚拟机直接镰刀物理网络,并和宿主机在同一网段,共同访问物理网络。NAT模式默认打开DHCP与NAT服务,连接到此模式的虚拟机在访问物理网络时,源地址都会被翻译成宿主机的物理网卡ip。如需实现物理网络访问NAT下的虚拟机,需要在宿主机设置端口转换。Host-Only模式下的虚拟机可以互相通信,但不能访问物理网络。

EVE-NG的使用方法就简单介绍到这,此款模拟器功能强大,更多的功能需要各位自己学习和探索。

相关文章: