书名:玩转EVE-NG——带您潜入IT虚拟世界
ISBN:978-7-115-49146-6
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 孙茂森 乔海滨
责任编辑 傅道坤
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
EVE-NG是当前流行的仿真虚拟环境,是Ubuntu系统下的一种应用,也可以看作是一种系统。
本书共20章,介绍了EVE-NG的安装步骤及使用方法,涵盖了常用的操作步骤;介绍了虚拟化的简单原理以及制作EVE-NG环境下的Windows、Linux和定制非官方支持的常用镜像;介绍了EVE-NG底层原理及关键代码剖析。
本书适合备考网络工程师、系统工程师等行业认证考试并需要提升动手能力的读者阅读,也适合正在进行IT架构的功能模拟的IT技术人员阅读。IT培训机构、各大高职院校计算机相关专业的教师也可以参考本书来制作教学演示实验。
孙茂森,毕业于上海第二工业大学网络工程专业和信息安全技术专业,持有CCIE、PMP、ITIL Foundation(IT服务管理认证)等证书。孙先生曾就职于Dimension Data公司,从事网络技术相关工作,在此期间参与过大量知名外企的项目规划与实施,积累了大量的实战经验;随后从事与OpenStack相关的工作,现任国内某云计算公司的系统架构师,提供技术咨询与架构设计服务以及根据客户的需求制订并实施解决方案。
孙先生擅长Cisco路由与交换、安全、无线和数据中心领域的相关技术,对Cisco、华为、H3C、VMware、Juniper、Checkpoint等公司的产品也颇有研究,还擅长Linux、WinServer、Openstack、Ceph、Docker等系统运维技术,熟悉Python、Shell脚本和Ansible自动化运维等。除此之外,他特别爱研究各种软硬件,经常钻研并使用各种网络模拟器、虚拟化等技术,对小凡(DynamipsGUI)、Packet Tracer、GNS3,再到EVE-NG仿真虚拟平台都有独特的见解,也曾向EVE-NG的GitLab提交过合并请求。孙先生创建了国内最大的EVE-NG权威站点EmulatedLab,并在上面分享技术文档;创建了名为EmulatedLab的QQ群,为用户提供了交流平台;还录制了EVE-NG教学视频,该视频已经在51CTO上线。
大家可以通过微信公众号EmulatedLab与作者取得联系。
乔海滨,毕业于大连理工大学城市学院网络工程专业,持有HCIE证书。乔先生在国内某运营商从事网络运维管理工作,参与实施了某省2012年以来的IP专用承载网扩容工程/省内延伸扩容工程、核心网分组域/电路域扩容工程、CM-IMS扩容工程等大规模工程项目,有着丰富的大型运营商网络运维管理经验,对OSPF、ISIS、BGP、MPLS VPN等网络协议有着较为深入的研究。
乔先生热衷于模拟器的研究与二次开发以及基于模拟器创建不同类型的网络环境。他创建了EVE-NG国内更新源,为国内EVE-NG用户提供了方便、快捷的更新方式,编写了EVE-NG Toolkit(旨在以简单的UI方式来管理EVE-NG),还为EVE-NG添加了许多额外的增强型功能,进一步方便了用户的使用。
景广华,EVE-NG资深爱好者,因学习网络技术的需要而接触并爱上EVE-NG,从而成为EVE-NG的用户。景先生有诸多EVE-NG的使用经验,还为本书提供了很多素材,确保本书可以用简单的方式搭配使用步骤截图,用容易理解的示范来讲解相关概念,为EVE-NG新人轻松上手保驾护航。
张杰,EVE-NG资深爱好者,通过版本测试、答疑,协助众多新手学习并掌握EVE-NG的用法,解决了很多新手容易遇到的问题,并提供了很多实质性的建议。
於瑾,EVE-NG资深爱好者,积极参与技术讨论并分享了众多技术资料,还提出了很多合理性建议,这也坚定了作者撰写本书的想法。
得益于网络的发达和信息搜索的便利,当今的技术类工具和图书越来越多。成语“学富五车”用来形容一个人的知识渊博。这个成语出自《庄子·天下》,当时多以竹简成书,满满的一车装上几百斤竹简,其实字数未必比本书字数要多。这样说来,但凡经历过九年制义务教育的人,其读过的书应该都超过了“五车”的范畴。但是越来越多的图书也给读者造成了选择障碍,秦人自称的熟读诗书其实也就是熟读两本书——《诗经》和《尚书》,而到了近代,“熟读诗书”也就成了泛指。别说是“书”,就是“诗”,不提每个朝代各位诗人,仅计算诗人陆游流传下来的9000多首,就读不过来了。
若说数量,如今的IT类技术图书绝对有过之而无不及,读完市面上所有的相关技术图书已然成为不可能完成的任务。掌握IT技术的一个相对高效的方法就是阅读一些高品质而且高效的图书,如被广大读者赞誉的《编译原理》(Compilers: Principles, Techniques, and Tools)。我不否认它是本好书,但我敢说大部分人并没有真正看过或者读懂它。作为一本涵盖了开发一个编译器所需要的全部知识的图书,它的内容包括词汇分析、语法分析、类型检查、代码优化,以及其他很多高深的主题。一个初级的程序员,在阅读本书的过程中如果不是不停地暂时搁置,去补习其他相关内容,那么他们唯一能做的就是记下目录,然后谎称读过此书。
我对图书“高质而且高效”的定义就是除了书中的内容有效、准确,读者在读书的过程中能保持连续性,在学习中除了作为知识储备而必需的基础,其他所需参考的内容可以直接在书中找到,而不是不停地查找其他图书或者借助搜索引擎才能继续读下去。基于这个定义,本书可以满足以上条件。本书用词简单、明了且图文并茂,读者可用来快速了解EVE-NG以及可按之自行部署使用EVE-NG。
我有一位好友,早先从事网络技术相关工作,参与了不少项目,后来成了一名专职讲师,出版过好几本书,而且每次都会送我一本。但我细读之后总觉得除了第一本书,他之后的几本书往往都是在“炒冷饭”,其中的技术更新缓慢,而且案例分析也是新瓶装旧酒,无甚新意。究其原因,可能是当了讲师之后,远离了实践战场,新书的含金量也就逐渐下降了。我也因好奇而打听了每本书的销量,的确是意料之中的每况愈下。不过随着出版图书的增多,他的讲师费倒是水涨船高,当然这已经不在我的关注之中了。所幸据我所知,本书的作者孙茂森、乔海滨先生依然坚持在技术的第一线,尤其是孙茂森先生创办的EmulatedLab交流群和站点,仍在持续为各位EVE-NG爱好者提供支持,这也是我认可本书的一大理由。希望各位读者能通过本书扎实掌握EVE-NG技术。
陆 璜
具有20年行业经验的高级总监
如今,硬件产品迭代速度过快,这一现象铺天盖地地席卷了IT行业,尤其是网络技术几年一更新,学者、工程师、客户也慢慢跟不上技术变革的脚步。随着KVM与QEMU虚拟化技术的成熟稳定、Linux Bridge与Open vSwitch的盛行,将会有越来越多的新事物、新作品衍生出来,或许EVE-NG就是其中一员。EVE-NG将目前流行的技术发挥得淋漓尽致,让用户赞叹不已。
EVE-NG定位为虚拟的仿真环境。在网络技术领域,EVE-NG有着举足轻重的地位。它没有GNS3烦琐的设置步骤,但包含了时下流行的QEMU虚拟化模拟器,融合了以往的Dynamips、IOU等模拟器,使用起来更加简便。但是我一直强调,它不是传统的模拟器,而是全能的虚拟仿真环境。相信你在阅读完本书并掌握EVE-NG的精髓后,会真正意识到它的强大以及无限的愿景。
开始接触网络技术时,我经常会用到小凡和iou-web,外加GNS3;参加工作一段时间以后,安全、无线、语音等多个CCIE方向,甚至是VMware、CheckPoint、Juniper的产品接踵而至,让我在技术实力上应接不暇,这迫使我必须做个自己的实验环境,以便快速地学习技术并提升自己,也方便随时测试功能并为用户制订方案。随后我便潜心研究GNS3。慢慢地,GNS3成了我日常工作和学习中必不可少的工具。曾经因为PC的硬件资源不够,我购买过一台服务器,并借助它在自己家中搭建了Home Lab,这让我的技术实力随之迅速增强。在这段时光中的学习与研究,让我受益匪浅,也让我一直引以为傲。
但是时间久了,接触到的环境越来越复杂,GNS3的缺陷让我在搭建环境时消耗时间较多,于是我试图再去寻找更好的方案来解决这样的问题。这时,UNetLab登场了—它就是EVE-NG的前身。
当时,UNetLab是个非常小众的产品,相关资料寥寥无几。基于工作需要和兴趣爱好,我总算将UNetLab适配到Home Lab上,并频繁地推荐给朋友、同事,也给他们做过展示、宣传,但没有几个人真正注意到它,甚至连我自己都开始怀疑UNetLab的价值了,但我最终决定还是潜下心来多使用一段时间再说。时间久了,我发现了UNetLab的bug和一些缺点,而且在好几个小版本的更新中,这些bug均没有修复,慢慢也就放弃了推荐给别人的想法,但是,UNetLab基于QEMU/KVM和Linux Bridge底层的这种设计思路非常好,也非常超前。
时光飞逝,2017年1月5日,改版后的UNetLab以EVE-NG这个全新的身份横空出世。当我看到官网更新的消息后,欣喜若狂,迫不及待地尝试了改名后的EVE-NG,发现很多bug和缺点已经修复。这让我重新燃起推而广之的想法。我清楚地意识到,如果这一次不做,今后肯定会懊悔不已。我随后便采用微信公众号的方式,创建了EmulatedLab。不言而喻,即“仿真实验室”,就是想借助仿真试验室做些技术内容的分享。随后两天我在各大技术论坛上写了介绍EVE-NG的文章,使得关注公众号的粉丝越来越多。紧接着,便有了交流平台的急切需求,随之QQ群也创建完成。
应众多用户的要求,我又有了制作视频的想法,再加上我一直以来都有个做讲师的梦想。在筹备与努力1~2周后,EVE-NG的视频在51CTO上线了。上线初期,好评与称赞让我逐渐成为国内使用EVE-NG的先锋者,也随之赋予我一点小小的责任,遂将朋友们和自己研究的一点心得发表在EVE-NG官网论坛上,也在GitLab上提交了代码合并的请求。慢慢地便有国外的朋友开始注意到我们这个EmulatedLab大家庭并且加入其中。
这也让我逐渐意识到,将一些原始积累的资料写成书是非常有必要的。这或许是在中国范围内推广EVE-NG的一种较好的方式,将实践经验和心得记录下来,分享给大家。与此同时,我也犹豫过,因为EVE-NG包含了太多的技术,对于很多部分,我也并非完全理解,或者完全掌握,再加上技术更新迭代速度太快,很担心在图书出版后就已经落后或者淘汰了。我经过认真思考后认为,即便在这种环境下,长时间的实践经验对于想要了解和学习EVE-NG的朋友们也非常有意义。同时,我也希望这本书能给更多的朋友一个良好的开端,能让更多的人参与其中,完善并优化EVE-NG,随之能有更多的新奇想法,让EVE-NG变得更加丰富多彩。
对于IT技术的快速迭代,我们要有持之以恒的学习心态,要有探究未知的钻研精神,要有学以致用的创新想法。跟着我,真正地玩转EVE-NG,潜入IT的虚拟世界吧!
本书是对EVE-NG玩法的实践经验总结,在模拟器和仿真虚拟环境方面有丰富的积累,涵盖了Dynamips、IOL等传统模拟器、Linux基本操作、虚拟化及QEMU镜像制作等多方面的技术知识,要求读者对网络、Linux、虚拟化等技术都有一定的了解,不需要特别精通,能做到了解并能独自深入学习即可。本书会对EVE-NG的安装、使用、原理等方面逐一介绍,对用户可能需要的需求点进行详细介绍,希望读者能够对EVE-NG有一个全方位的了解,这对今后的使用、实施等方面有所帮助。
作为市面上首本讲述EVE-NG的图书,本书会从不同的角度,完整地、深入浅出地介绍EVE-NG是什么以及它的优势和不足,希望它能成为你学习和工作中必不可少的工具。
网络工程师。
系统工程师。
虚拟化工程师。
IT技术的相关工作者,包含有制订IT基础架构的需求,有IT技术功能测试的需求,有网络、系统、虚拟化、存储等培训需求的工作者。
有志于从事网路、系统、虚拟化工作的在校大学生。
本书共分为三大篇,即基础使用篇、进阶操作篇和底层原理篇。
第1篇,基础使用篇(第1~11章):介绍了EVE-NG及其特点、功能,安装步骤,基本的使用方法,涵盖常用操作步骤。
第2篇,进阶操作篇(第12~16章):介绍了KVM的简单原理、制作EVE-NG环境下的Windows、Linux等常用镜像,并且讲解如何定制非官方支持的镜像。
第3篇,底层原理篇(第17~20章):介绍了EVE-NG的底层原理,对关键代码剖析,以及EVE-NG的新奇玩法,让定制自己的EVE-NG环境更加灵活、顺手。
根据本书的内容,我们给出的阅读建议如下:
如果是刚接触EVE-NG的读者,请从头开始循序渐进地阅读;
如果对EVE-NG的使用方法非常熟悉,可以直接阅读第2篇;
如果想深入了解EVE-NG,请从第3篇开始阅读。
感谢人民邮电出版社的资深编辑傅道坤。傅老师策划出版了一系列颇具影响力的书籍,与傅老师合作是我的梦想。相信随着时间的推移,有更多的人会对傅老师在互联网技术的巨大贡献表示称赞、敬佩。在这段时间中,让我受益匪浅,期待与傅老师的下次合作。
感谢我的家人,在这段艰苦并快乐的时光中,一直默默地理解我、支持我,你们是我动力的源泉。
感谢我的朋友们、同事们、网友们,也感谢众多的EVE-NG用户,是你们的帮助、建议以及一直以来的关注和信任,让本书从想法变成了现实。
由于撰写时间有限,外加作者水平有限,书中难免存在不足之处。各位读者在阅读本书时如果遇到疑问或者错误,欢迎通过微信公众号EmulatedLab与我联系。另外,该公众号会不定期地发布作者对EVE-NG的一些认识和心得,也会包含其他领域的技术分享,敬请关注。
本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。
如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。
“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。
异步社区
微信服务号
第1章 EVE-NG概述
EVE-NG介绍、特点、功能
第2章 EVE-NG安装指南
EVE-NG的系统要求及多平台安装步骤
第3章 EVE-NG管理
EVE-NG平台操作方法
第4章 Dynamips设备
添加Dynamips设备及使用方法
第5章 IOL设备
添加IOL设备及使用方法
第6章 QEMU设备
添加QEMU设备及使用方法
第7章 集成客户端软件包
EVE-NG客户端的安装及使用方法
第8章 VPCS的使用
VPCS虚拟PC的使用方法
第9章 物理网络与虚拟网络结合
网卡桥接及多平台虚实网络结合的操作步骤
第10章 EVE-NG资源扩容
硬盘及虚拟内存的资源扩容
第11章 EVE-NG系统更新
EVE-NG系统更新的方法及演示
EVE-NG(Emulated Virtual Environment – Next Generation)是一款运行在Ubuntu上的虚拟仿真环境,是由Andrea Dainese、Uldis等行业内顶尖专家完成的优秀作品。它集成了Dynamips、IOL、QEMU,不仅可以模拟网络设备,还可以模拟一切操作系统,包含(但不限于)Cisco IOS、Juniper、Palo Alto、Check Point、Arista、VyOS、MikroTik、VMware ESXi、Windows、Linux等,使你能够在PC或者Server上设计、测试并验证IT技术。
它实现了通过Web连接并管理该平台的操作模式,能快速部署配置虚拟环境,有华丽的操作界面、足够强大的功能、丰富的扩展性、简单易用及快速上手等众多优点。
EVE-NG是继UNetLab之后更强大的版本。开发团队对行业未来的发展以及用户的使用需求做了全面调查后,决定重做虚拟仿真环境并打造了这款EVE-NG平台,致力于使之成为仿真虚拟环境的较好的选择。
新版的虚拟仿真平台能够满足目前的日常需求,它可以让企业、学习平台、培训中心、个人或者团队去创建虚拟的环境,让技术学习起来更容易,让工程师做解决方案更方便,让培训机构做教学更简单。
EVE-NG是第一个无客户端的仿真平台,为网络、安全、系统等专业人员提供了更多的学习和工作机会。
学习新的IT技术时,我们通常会为没有物理硬件而放慢了学习的步伐,为租用物理硬件价格较贵、性价比不高而感到心有不舍,为搭建实验环境的步骤太烦琐而感到劳心费力,抑或为实验环境的架构固定无法修改而感到头疼。有了EVE-NG,这些问题都迎刃而解了,因为它可以满足任何角色的任何需求。它能帮助你更快地了解、学习新技术,设计并验证最好的解决方案,从而提高学习和工作效率。
有了EVE-NG,学生可以快速部署拓扑架构,达到便于观看,易于理解,缩短学习时间的目的;培训讲师可以降低购买物理硬件的成本,实现教学案例永久保存,随时调阅讲解,IT工程师可以模拟完整的公司IT环境,变更时提前测试以降低风险,提高实施成功率。
有了EVE-NG,网络工程师可以模拟Cisco、H3C、Huawei、Juniper、Palo Alto、Check Point等众多厂商的设备;系统工程师可以模拟Linux、Windows、MacOS等大量操作系统;虚拟化工程师可以模拟VMware、Citrix、KVM、QEMU、OpenStack、Docker等所有虚拟化环境;存储工程师可以模拟Open-E、Synology存储的操作系统,支持iSCSI、NFS,用Linux还可以支持Ceph;而程序员可以借EVE-NG模拟大量设备来支撑开发环境;IT爱好者可以借EVE-NG模拟OpenWRT、Pfsense、VyOS等小众常用系统。所以,EVE-NG几乎无所不能!
EVE-NG经历了多次迭代,现已逐渐趋于成熟、稳定,从最初广为流传的iou-web到如今的EVE-NG,其功能越来越多,优势也越来越明显,非常适合广泛使用。
WebIOL是用Perl语言开发的,包含了思科360项目的一些基本实验环境,仅供Cisco内部员工使用。
iou-web是用PHP语言开发的,也经常被称为web-iou,其正式版发布于2012年1月23日,在几个月内赢得了众多业内用户的认可。在当时的环境下,iou-web与GNS3有一段时间是并存的。虽然GNS3与iou-web都能满足需求,但iou-web的许多特点让它更具有优势,比如支持IOL、运行速度快、支持更多的二层协议特性、操作简单、快速恢复配置、更适合做技术认证考试的工具等。所以,许多用户还是更喜欢iou-web。iou-web的操作界面如图1-1所示。
图1-1 iou-web的操作界面
统一的网络实验室(Unified Networking Lab)是由意大利人Andrea Dainese开发的。2013年,他意识到iou-web的局限性太多,并且在IOL上使用组播功能时存在各种故障,特别需要一种统一的方法模拟网络设备(如防火墙、负载均衡设备等),所以他重写了iou-web代码,使之成为可以扩展的网络模拟系统。UNL系统有两个非常重要的突破。
UNetLab于2014年10月6日发布,它的REST API架构用PHP语言开发,应用界面则用jQuery实现。在发布后的几个月内,UNetLab的日活跃用户有500~600人。随后,Andrea Dainese将UNetLab正式命名为UNL,其操作界面如图1-2所示。
图1-2 UNL的操作界面
从2015年开始,Andrea Dainese已经没有足够的空闲时间专注于UNL,致使UNL的更新周期越来越长,但团队内的其他成员还有继续更新并完善UNL的想法,所以一部分人继续潜心研究并于2017年1月5日发布了EVE-NG。而此时的Andrea Dainese已经不属于EVE-NG团队了,他有了更神秘的想法(本书最后有相关介绍)。
Uldis等人以UNL为母版制作了新一代仿真虚拟环境,改进了UNL的代码,增强了功能,修改了界面,并正式将其改名为EVE-NG(Emulated Virtual Environment – Next Generation)。
EVE-NG的版本更新过程如下。
建议各位读者尽量使用最新版,相对于旧版来说,新版功能更多,bug也可能更少一些。
图1-3 EVE-NG的操作界面
图1-4 利用EVE-NG制作的拓扑图
为了让EVE-NG支持的设备更多,更加全能,能真正成为统一的虚拟仿真平台,所以融入了经典模拟器Dynamips、IOL和虚拟化模拟器QEMU。
Dynamips是一个基于虚拟化技术的模拟器,用于运行Cisco路由器真实的操作系统,其作者是法国UTC大学的Christophe Fillot。
Dynamips的原始名称为Cisco 7200 Simulator,源于Christophe Fillot在2005年8月开始的一个项目。该模拟器已经能够支持Cisco的1700、2600、2691、3600、3725、3745、7200等路由器平台。它能运行在FreeBSD、Linux、Mac OS X或者Windows上,但Dynamips毕竟只是个模拟器,在性能上无法与真实设备媲美,所以不能取代真实的路由器。
Dynamips曾经盛行许久,为网络工程师提供了一个学习和实践的工具,让人们更加熟悉Cisco的设备,同时也为Cisco设备的普及、品牌知名度的上涨做出了巨大贡献。
后来,有国内技术人员专门为Dynamips制作了一个GUI界面,并命名为小凡模拟器,其操作界面如图1-5所示。
图1-5 小凡模拟器的操作界面
IOL(Cisco IOS on Linux)是运行在Linux系统上的Cisco IOS,理论上可运行在基于x86的任意Linux发行版系统上。它于2010年开始被广泛使用。
相比Dynamips,IOL的优势较为明显:
当然,没有什么事物是完美的,IOL也依然有很多不足,例如不能支持所有的二层交换特性,但就目前来看,IOL上的二层交换特性支持已经接近完美。
IOL是在Dynamips之后的又一个模拟器方案,借助Linux运行IOS,由于它的优势,让众多Dynamips用户纷纷转移到IOL上,为今后的iou-web、GNS3乃至EVE-NG打下了良好的基础,也为仿真平台的统一提供了可能。
QEMU(Quick Emulator)是虚拟化领域中非常著名的开源产品,最早出现在2006年6月23日,名字为QEMU accelerator,版本为version 1.3.0 pre9。同年7月22日,发布了QEMU 0.8.2版本。随后,经过长达5年半的时间,在2011年12月1日,正式发布了1.0版本。
截至截稿时间,最新版为2.8.1,发布时间为2017年3月31日。历经11年之久,QEMU搭配KVM后,已接近完美,并被云技术广泛应用,为云计算服务提供核心动力,由此可见它在虚拟化领域的重要地位。
EVE-NG在设备仿真上主要针对网络设备,集成的三大组件都有相对应的网络设备操作系统。其中,Dynamips与IOL仅限Cisco的设备模拟,而QEMU可以运行众多厂商、不同种类的网络设备。
EVE-NG借助Dynamips模拟器,运行的是真实的IOS操作系统,可以模拟Cisco IOS 1710、Cisco IOS 3725、Cisco IOS 7206设备,但依然局限在这几种平台范围内。
EVE-NG借助IOL运行Cisco IOS,让网络设备更加丰富、完美。在IOL中,没有设备平台系列的区别,我们可以根据IOL的bin文件名区分类别。其中包含“l2”的就是交换机,作为二层或三层交换机使用;包含“l3”的就是路由器,作为路由器使用,接口仅支持三层口,无二层功能。此外,命名中的其他标识与物理机的IOS命名规则一致。
因为网络设备众多,Dynamips与IOL只能模拟Cisco的网络设备,所以必须借助第三大工具QEMU,这样的话,网络设备就基本齐全了。它支持的Cisco的设备有IOSv路由器、IOSvL2交换机、ASAv虚拟ASA防火墙、NX-OS的Nexus 7000/9000、IPS入侵防护系统、ACS访问控制系统、ISE身份服务引擎、vWLC虚拟无线控制器等多种镜像。除了Cisco,QEMU还能模拟Juniper、H3C、F5、Check Point、Radware等多种厂商的操作系统。
除了网络设备,EVE-NG借助于QEMU,还可以模拟其他各式各样的操作系统。它可以仿真Windows Desktop/Server系统,比如Windows XP/7/8/8.1/10、Windows Server 2003/2008/2012/2016等;也可以仿真Linux发行版的系统,比如Redhat/CentOS/ Fedora/SUSE、Ubuntu/Debian等;还可以仿真基于Unix/Linux开发的厂商系统,比如VMware ESXi、Xen Server、Synology等;甚至可以仿真基于Unix/Linux系统的软路由/软防火墙/软存储服务器,比如OpenWRT、Panabit、Pfsense、FreeNAS等。
除此之外,在完全掌控EVE-NG后,就能做到自定义一些个人使用的系统镜像。相比云技术、容器技术,EVE-NG制作镜像更为简单,仅仅通过上传、安装、修改、重建等简单操作就可以获得想要的镜像。
所以,EVE-NG能实现的虚拟设备仿真已经不仅仅是网络设备,还能支持市面上大多数非网络厂商设备和非主流定制化的操作系统。
EVE-NG虽然强大,但并非完美。融入了Dynamips、IOL、QEMU三大组件后,尽可能地让其功能最大化。EVE-NG有独具一格的优势,也有旦夕祸福的劣势,不论多年后谁与争锋,至少至今无与伦比。
Packet Tracer是一款Cisco开发的入门级模拟器,功能简单,初学者使用起来更容易上手。目前Cisco也一直更新,新版的Packet Tracer 7.0(其操作界面见图1-6)更新了物联网等方面的内容,着实吸引眼球。但对于资深的网络工程师来说,功能尚且不足。
图1-6 Packet Tracer 7.0的界面
VIRL(Virtual Internet Routing Labs)是Cisco开发的一个模拟真实镜像的工具,能运行IOSv、IOSvL2、IOS XRv、NX-OSv等镜像,使用VM Maestro管理,提供了一个可伸缩、可扩展的网络设计和虚拟环境模拟。VIRL有强大的扩展性,支持第三方的虚拟镜像,比如Juniper、Palo Alto、Fortinet、F5等。VIRL有两个不同的版本,个人版与学院版,均为收费版,价格均为199美元/年。
CML(Cisco Modeling Labs)是VIRL的代码分支,也是VIRL的增强版,提供了更大的规模。VIRL有20个节点的限制且只支持一个用户,而CML没有限制。CML与VIRL在功能上相同,都可以提供可运行思科真实IOS的网络环境,用户可以将该实验室部署在本地服务器上,通过客户端程序管理。CML主要针对企业用户,并提供技术支持,而VIRL主要针对个人和教学环境。显然,CML的价格要比VIRL的更高。
GNS3(Graphical Network Simulator-3)一直都是网络模拟器的明星(其操作界面见图1-7),支持虚拟网络与物理网络结合,被用来模拟复杂的网络。它的首次面世是在2008年,凭借着开源,功能多样性以及图形化操作等优势,迅速占领市场,风靡全球。
图1-7 GNS3的操作界面
因为GNS3与EVE-NG均为开源且免费,所以将它们放在一起作对比较为适合,对比情况如表1-1所示。
表1-1 EVE-NG与GNS3对比
EVE-NG |
GNS3 |
---|---|
B/S模型 |
C/S模型 |
Web管理 |
使用GNS3软件管理 |
客户端不依赖操作系统 |
限制为Windows、Mac、Linux |
只运行EVE-NG即可 |
需GNS3、VMware/VirtualBox搭配使用 |
版本更新操作简单 |
更新频繁,耗时耗力 |
接口信息显示准确,不需要手动调整 |
接口信息显示较乱,可能需要手动调整 |
定制个人镜像较容易 |
使用官方支持的镜像较容易,定制化较复杂 |
拓扑界面较为美观、新颖 |
拓扑界面较为老旧 |
总之,EVE-NG在用户体验上占绝对优势,操作简单,更易上手。当然,GNS3也是个非常不错的选择。对于熟悉并已经习惯了GNS3的朋友来说,使用起来更加方便。
由于EVE-NG继承了UNetLab的大量代码,同样也继承了UNetLab的局限性,具体如下。
console端口的限制是因为每个节点控制台都有一个固定的控制台端口,计算如下:ts_port = 32768 + 128 × tenant_id + device_id。此外,同一实验室中不能运行多达512个IOL节点,因为每个租户的device_id必须是唯一的。
再优秀的作品也不能做到完美,对于如上的局限性,笔者更期待后续版本能够进行改进,进而消除。
EVE-NG在扩展性方面,得力于QEMU。EVE-NG在融入QEMU后,EVE-NG几乎可以容纳行业内外90%以上的操作系统。有了操作系统,便可以运行开发工具,程序员也可以加入EVE-NG的用户大军,这也意味着EVE-NG的用户群体几乎能做到横跨整个IT行业。当然,这不是绝对的,比如对于显卡性能要求较高的从业者,EVE-NG目前还不能满足需求,但不意味着将来不可能实现。在目前的云计算领域可以做到将高性能显卡虚拟化,并做成高性能的云GPU主机,所以将来的EVE-NG在这方面也不乏可能。
看过前文后,相信你对EVE-NG已经有了初步的了解,本节将对EVE-NG的版本、功能、特性等方面做详细介绍,为你拨开云雾见真身。
EVE-NG的通用功能如下:
EVE-NG官方对版本做过长期规划,大致上会包含3个版本,Community Edition(社区版)、Professional Edition(专业版)和Learning Centre Edition(学习中心版)。写作本书时,只有Community Edition社区版发布。每个版本之间有不同特性,功能依次增强(以下内容来自于官网)。
EVE-NG通过多版本分级,针对不同用户做相应的功能支持,并做了长期的发展规划,可见EVE-NG的发展前景无限。因为普通用户不需要那么多高级功能,而这些高级功能的开发成本较高,所以将来EVE-NG很有可能会对高级版本收费。
本书作为国内外首本讲述EVE-NG的书籍,涉及EVE-NG的各个方面,希望读者能跟着本书的节奏,逐步学会它的各项功能,并感受它的强大,也希望那些已经习惯了GNS3的用户不要用GNS3的思维学习EVE-NG,不要固化在以前的旧思想中。因为相比之下,EVE-NG更为优秀,有足够的发挥空间。我们可以自由地利用所有的技术技能,充分发挥想象力,完成网络技术之外的更多创新。
EVE-NG更大的魔力在于将大量优秀的技术融合在一起,目前已与乔海滨合力制作出针对EVE-NG定制的Toolkit小工具,可以非常方便地增加一些功能,一键式实现一些简单的操作。如果读者对Web前端、数据库、虚拟化、云等技术有足够能力的话,甚至可以将一些定制化的个人功能增加进去。这也是我想要看到的EVE-NG的未来,它充满着无限遐想。
EVE-NG是一款运行在Ubuntu的虚拟仿真环境。既然它运行在Ubuntu操作系统之上,那就可以把它安装在VMware Workstation、VMware ESXi、VirtualBox、Parallelsl Desktop等虚拟机软件中,当然也可以把它安装在物理机中。本章将采用2.0.3-68版本对各种环境做详细的安装介绍。
EVE-NG的官方安装包有两种:
通常,我们会将虚拟机软件安装在个人电脑上。在这样的情况下,建议选用OVA模板直接导入到虚拟化平台中,非常方便并且快捷。当然,也可以选用ISO镜像安装,但需要连接网络更新一些安装包。这比使用OVA模板的安装速度慢一些,其安装速度取决于互联网的质量。如果你想把EVE-NG直接安装到服务器、工作站等性能较强的物理机中,建议选用ISO光盘镜像安装。除此之外,还有另一个方法,即先安装Ubuntu,再通过因特网安装EVE-NG相关包。
强烈推荐将EVE-NG安装到物理机中,这样可以减少一层虚拟化,虚拟设备的运行速度会有较明显的提升。
安装EVE-NG的系统要求如下。
如果用户的需求仅仅是运行Dynamips与IOU/IOL系统镜像,那硬件资源只要大于1个核心,2GB内存即可。如果还有运行QEMU等系统镜像的需求,那1个CPU,2GB内存是远远不够的,这取决于QEMU系统镜像所占用资源的多少,所以,没有办法确定具体需要多少资源。当然,我们可以简单地估算一下,通常情况如表2-1所示。
表2-1 QEMU镜像的默认资源占用表
镜像名 |
CPU |
内存 |
---|---|---|
vIOS |
1个 |
512MB |
ASAv |
1个 |
2GB |
Windows |
2个 |
4GB |
Firepower 6 |
4个 |
8GB |
VMware ESXi |
2个以上,不封顶 |
4GB以上,不封顶 |
表2-1中只列举了一小部分QEMU的镜像,相信你看到表格中最后一行“不封顶”3个字,应该有所领会,EVE-NG的硬件资源需求无法确定,完全取决于用户的使用需求。
如今,虚拟化技术已经较为成熟,有很多虚拟机平台都支持直接导入OVA模板,比如VMware Workstation、VMware vSphere、VirtualBox等。理论上,只要虚拟机软件支持OVA模板,都可以部署EVE-NG。不管在哪种虚拟化平台上,EVE-NG的安装方法均类似,所以为了避免重复叙述,本书仅演示在VMware Workstation与VMware vSphere环境下的部署。
在部署之前,先准备好OVA模板文件。一般情况下,既可从官网获取,也可以从互联网上获取,模板文件如图2-1所示。
图2-1 EVE-NG的OVA模板
注意:
在安装之前,确保物理机在BIOS中开启过虚拟化Intel VT-x/EPT。
在正式部署之前,请确保采用了表2-2中的VMware Workstation版本和操作系统版本。
表2-2 VMware Workstation演示环境介绍
演示环境 |
版本 |
详细版本 |
---|---|---|
VMware Workstation |
VMware Workstation Pro 12 |
12.5.5 build-5234757 |
操作系统 |
Windows 7 |
Service Pack 1 |
打开VMware Workstation软件,在选项栏中单击“文件”,在下拉菜单中单击“打开”,如图2-2所示。
图2-2 打开VMware Workstation
设置虚拟机名称,并选择虚拟机的存储路径,确定导入,具体操作如图2-3所示,导入进度如图2-4所示。
图2-3 虚拟机配置
图2-4 EVE-NG虚拟机的导入进度
导入完成后,可以看到虚拟机的默认资源情况,如图2-5所示。
图2-5 EVE-NG的默认资源
通过OVA导入的EVE-NG,默认资源如下。
任何操作系统都需要硬件支撑,那么在EVE-NG中,每个硬件都有什么作用呢?请见下文(实体星星的多少表示其重要性)。
★★★★★ 内存决定着运行虚拟设备的数量,影响着虚拟设备的运行效率。
★★★★☆ CPU决定着运行虚拟设备的数量,影响着虚拟设备的运行效率。
★★☆☆☆ 硬盘容量与EVE-NG存放虚拟设备镜像的多少有关,也影响Lab文件的存放数量。
★☆☆☆☆ 网卡是EVE-NG中虚拟设备通向外界的桥梁,决定着可以桥接物理网络的数量。
综上所述,最为重要的硬件就是内存和CPU。建议你根据物理机硬件资源状况,尽可能给EVE-NG虚拟机分配更多的内存和CPU资源。本环境仅用于展示过程,所以用默认配置即可。
当在物理机上运行虚拟机时,需要在物理机的BIOS中开启CPU虚拟化和内存虚拟化等设置,那么在虚拟机中开启虚拟化功能,就需要在虚拟机软件中开启,这就类似于在EVE-NG的BIOS中开启虚拟化功能,具体操作如图2-6所示。
默认的网络适配器是桥接模式,该网卡作为EVE-NG的管理网卡,需要注意的是,EVE-NG的管理网卡默认使用DHCP获取地址,所以请确保EVE-NG的管理网络中存在DHCP服务器,否则EVE-NG获取不到地址,在开机时就可能会出现卡在开机界面的情况。
图2-6 EVE-NG开启Intel VT-x/EPT
本环境中的桥接模式是有DHCP服务器的,所以选用桥接模式,如图2-7所示。这里可根据用户的环境自由选择网卡模式。关于VMware Workstation的几种网卡模式,会在后文做详细介绍。
图2-7 EVE-NG的网卡模式
将EVE-NG开机后,独特的开机Logo显示在整个屏幕上,如图2-8所示。如果EVE-NG能够获取到IP地址的话,便可以顺利地进入到登录提示的界面,紧接着就需要初始化EVE-NG,该内容在2.6节做详细介绍。
图2-8 EVE-NG的开机Logo
VMware vSphere属于VMware的企业版虚拟化,涉及网络、存储等细节,使用该环境需要一定的vSphere基础。如用户对此不了解,则不建议使用该环境运行EVE-NG。本文采用VMware vSphere 6.5环境为例,演示整个安装过程,环境信息如表2-3所示。
注意:
在VMware vSphere环境中安装EVE-NG之前,请确保物理机在BIOS中开启过虚拟化Intel VT-x/EPT。如果用户的vSphere用到的ESXi为5.5或者6.0版本,那么还需要修改ESXi的配置文件/etc/vmware/config,让ESXi支持嵌套虚拟化。具体方法可参照VMware官网的详细文档。
表2-3 VMware vSphere演示环境介绍
环境 |
IP地址 |
软件版本 |
---|---|---|
vCSA |
10.0.0.2 |
VMware-VCSA-all-6.5.0-5973321 |
ESXi |
10.0.0.5 |
VMware-VMvisor-Installer-6.5.0.update01-5969303 |
操作系统 |
10.0.0.99 |
Windows 7 Service Pack 1 |
VMware Remote Console |
N/A |
VMware Remote Console 9.0.0 build-4288332 |
在网卡配置方面,只要保证EVE-NG接入的网络能与物理网络通信即可。那么为了方便读者理解,本环境中网络部分采用相对简单的方式实现,将ESXi服务器接入物理交换机access接口,给EVE-NG使用默认的VM Network网络,即EVE-NG管理网与ESXi的管理网在同一个局域网中,此种场景vSwitch不需要打vlan标签,如图2-9和图2-10所示。
图2-9 vSwitch的配置方法
图2-10 Vmkernel的端口设置
在vSphere环境中,虚拟交换机默认情况下只把发给本机的单播或广播包传递给上层应用,其余包全部丢弃。这会影响EVE-NG的正常使用,所以需要手动开启混杂模式。网卡的工作模式有4种,分别如下:
混杂模式是指不论目的地址是否为该网卡,均接收并做相应处理,由网络层进行判断,确定是递交给上层(传输层),还是递交给下层(链路层),或者直接丢弃。换句话讲,开启混杂模式的网卡,能够接收所有经过该网卡的流量,包含抵达该网卡的流量和穿越该网卡的流量。
混杂模式在网络排障时作用非常大,使用Sniffer等网络监听工具即可监听到经由该网卡的任何数据包。凡事有利也有弊,该特性也容易被他人利用,未加密的数据包在这样的网络中传输极不安全。任何明文数据都可以被恶意分子抓取并分析出来,这很可能泄露用户名和密码等重要信息。
可是在vSphere环境中部署EVE-NG时,开启混杂模式是非常必要的。因为EVE-NG的网卡是EVE-NG中虚拟设备通往外界的桥梁,虚拟设备想要通过EVE-NG的网卡和vSphere虚拟交换机连接外网,那么EVE-NG的网卡以及vSphere虚拟交换机都必须在混杂模式下工作。
很多在vSphere环境下使用EVE-NG的用户,经常会碰到EVE-NG中的虚拟设备不能连接到外部网络,其实就是混杂模式在作祟。所以在安装部署EVE-NG时,就可以规避这样的问题,以免今后排错浪费时间。不过肯定会有读者好奇如何开启和验证混杂模式,跟着我们一步一步破解其中的奥秘吧。
首先,EVE-NG有没有开启混杂模式呢?可以通过以下简单的操作验证。
root@eve-ng:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:31:70:a5
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8013 errors:0 dropped:0 overruns:0 frame:0
TX packets:14108 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:717454 (717.4 KB) TX bytes:18942998 (18.9 MB)
pnet0 Link encap:Ethernet HWaddr 00:50:56:31:70:a5
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe31:70a5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8123 errors:0 dropped:0 overruns:0 frame:0
TX packets:2770 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:587200 (587.2 KB) TX bytes:18311113 (18.3 MB)
// ifconfig查到的eth0和pnet0处于MULTICAST模式,并没有PROMISC MULTICAST混杂模式,使用如下命令查看关于promiscuous的日志
root@eve-ng:~# dmesg | grep promiscuous
[ 13.589797] device eth0 entered promiscuous mode
root@eve-ng:~#
// 可以看到在EVE-NG启动以后,eth0默认进入混杂模式。在有新接口加入到网桥中,接口也会自动进入混杂模式
root@eve-ng:~# dmesg | grep promiscuous
[ 13.589797] device eth0 entered promiscuous mode
[ 161.251568] device vunl0_3_0 entered promiscuous mode
root@eve-ng:~#
当有新接口加入到网桥中,接口会自动进入混杂模式,并且无法手动退出;当接口从网桥中移除后,自动退出混杂模式。而Linux Bridge并没有混杂模式的说法,它是在软件层面实现的,程序根据实际情况对数据包做处理,所以不需要有混杂模式存在。这是Linux Bridge的特性,这种特性在一定程度上简化了Linux Bridge环境中的网络配置。
上述描述意味着我们根本不需要关心EVE-NG,只考虑运行EVE-NG的环境开启过混杂模式即可。那么vSphere的虚拟交换机怎么开启混杂模式呢?
vSphere的虚拟交换机默认不开启混杂模式,所以需要手动开启混杂模式。单击ESXi的“配置”选项卡,选中vSwitch0,单击“编辑”按钮,将混杂模式改为“接受”,具体操作如图2-11和图2-12所示。
图2-11 vSwitch的配置方法
图2-12 vSwitch的混杂模式配置
对于VMware vSphere不了解的读者,可能对此内容有所疑问,建议试着通过学习第9章的内容帮助理解。
在进行这一步骤时,你应该了解以下基础知识。
OVF(Open Virtualization Format):开放虚拟化格式。
OVA(Open Virtualization Appliance):开放虚拟化设备。
一个OVF包应该包含如下文件。
通常情况下,OVF文件包仅仅包含一个对虚拟机资源和信息描述的OVF文件,而OVA是用tar格式将OVF文件、磁盘镜像文件压缩到一起的文件包,所以OVA和OVF通用。当导入OVF模板时,相当于创建了一个虚拟机模板,这个模板设置了虚拟机的硬件资源,比如CPU、内存、硬盘等信息,但并未包含磁盘镜像文件、ISO光盘镜像等内容。如果导入OVA文件包时,就相当于把完整的虚拟机导入进去,包含虚拟机的配置参数、硬盘数据等。
在vSphere环境中,“部署OVF模板”选项同样可以部署OVA文件包,与VMware Workstation道理一样,将EVE-NG的OVA文件包导入到vSphere环境中。右键单击ESXi主机,单击“部署OVF模板”,具体操作如图2-13所示。
图2-13 部署OVF模板
指定EVE Community Edition-2.0.3-68.ova文件的路径,选择“本地文件”,单击“下一步”,操作如图2-14所示。
图2-14 选择OVA文件
设置EVE-NG虚拟机的名称,并选择运行EVE-NG虚拟机的集群,然后单击“下一步”,操作如图2-15所示。
图2-15 选择名称和位置
在vSphere数据中心中可能存在多个集群,每个集群又可能包含多个ESXi主机,所以需要指定运行EVE-NG虚拟机的ESXi主机或集群,本演示环境中只有一个ESXi主机,所以选中“10.0.0.5”这个主机,然后单击“下一步”,操作如图2-16所示。
图2-16 选择资源
此时能看到模板中的详细信息以及磁盘占用的空间,直接单击“下一步”,如图2-17所示。
图2-17 查看详细信息
如果比较细心的话,可以发现两个磁盘使用的置备方式不一样。在vSphere环境中,虚拟机磁盘的置备模式有3种,具体如下所示。
接下来选择虚拟磁盘模式、存储EVE-NG的存储位置,请根据需要选择,理论上置备模式选择哪一种都不会影响EVE-NG的运行,本文以“厚置备延迟置零”为例,然后单击“下一步”,操作步骤如图2-18所示。
图2-18 选择存储
选择EVE-NG管理网络接入的网络,本环境下的VM Network是ESXi的管理网络,那么当把EVE-NG虚拟机的网卡接入到VM Network后,EVE-NG的管理网络与ESXi的管理网络在同一个网段。
如果了解vSphere的网络部分,可以根据用户的环境选择合适的网络,需要注意的是,该网络内存在一个可用的DHCP服务器,确保EVE-NG可以正常获取地址。本演示环境按照常规方式操作,选择VM Network,并单击“下一步”继续,操作如图2-19所示。
图2-19 选择网络
在模板设置完成后,即可看到EVE-NG虚拟机的详细信息,如有需要修改的情况,可以返回“上一步”修改,确认无误后,单击“完成”,具体操作如图2-20所示。
图2-20 完成部署
部署进度显示在“近期任务”栏中,如图2-21所示。
图2-21 部署进度
为了今后使用EVE-NG方便,可以在EVE-NG部署完成后,对EVE-NG虚拟机做些调整。打开虚拟机编辑配置界面,操作如图2-22所示。
图2-22 编辑设置
默认情况下,OVA模板导入的EVE-NG默认的硬件资源如下所示。
如前文所述,根据宿主机的硬件资源情况,调整EVE-NG的硬件资源。合理分配EVE-NG虚拟机的资源,可以让宿主机及EVE-NG效率更高,具体操作如图2-23所示。
图2-23 编辑EVE-NG的硬件资源
与VMware Workstation的环境一样,需要开启EVE-NG虚拟机的虚拟化,类似于在EVE-NG的BIOS中开启CPU与内存的虚拟化功能。与VMware Workstation不同的是操作方法,在vCenter中开启虚拟化的操作如图2-24所示。
图2-24 开启EVE-NG虚拟化
打开EVE-NG的电源,操作如图2-25所示。
图2-25 将EVE-NG开机
在VMware vSphere环境下,打开控制台的方法与VMware Workstation不一样,我们需要借助VMware Remote Console软件连接虚拟机的控制台,如果用户的终端没有该软件,那么在单击“打开控制台”按钮时,会提示安装。如果该软件已经安装,在单击“打开控制台”按钮后,自动链接到该软件并连接EVE-NG的控制台界面,具体操作如图2-26和图2-27所示。
正常情况下,如果EVE-NG可以正常获取DHCP地址的话,便会自动进入到系统登录界面。接下来可以根据2.6节的内容初始化EVE-NG。
图2-26 打开控制台
图2-27 EVE-NG的开机Logo
注意:
在安装之前,确保用户的物理机在BIOS中开启硬件虚拟化。
前文讲述的均为使用OVA文件包的便捷方法,其实使用ISO光盘镜像安装的方法与安装其他操作系统并无太大区别,所以理论上EVE-NG可以被安装在任何虚拟化环境下,比如VMware Workstation、VMware vSphere、VirtualBox、Parallels Desktop等。当然,也可以把ISO刻录到U盘、光盘等存储介质中,将EVE-NG安装到物理机中。
为了让用户使用更加方便,官方将安装Ubuntu系统与安装EVE-NG的步骤做成一体化,并打包成ISO光盘镜像,所以安装EVE-NG与安装其他操作系统还是有细微的差别。使用ISO安装EVE-NG时,后台的操作顺序如下。
1.安装Ubuntu系统。
2.更新系统包(需要连接因特网)。
3.安装EVE-NG包(需要连接因特网)。
EVE-NG官方的镜像将这3个步骤做成自动化,不需要手动设置系统。当然,也可以通过手动操作完成,这样的话对操作系统的控制更加灵活,可以根据个人需要做一些Ubuntu系统层面的调整。
在安装之前,准备好EVE-NG的ISO文件,如图2-28所示。
图2-28 EVE-NG的ISO光盘镜像
将U盘或光盘设置为第一启动项。当系统从ISO中启动后,第一界面即选择系统安装过程中使用的语言,选择“English”,如图2-29所示。
图2-29 选择系统语言
接下来会看到有3种选项,如图2-30所示。
图2-30 选择安装方式
对于用户来说,Install EVE VM和Install EVE Bare都需要联网才可以正常安装EVE-NG,所以在安装之前设置好DHCP服务器,让EVE-NG能获取到地址并能连接因特网。
在表2-4中可以看到,EVE VM 与EVE Bare没有太大区别,对于EVE-NG来说,没什么影响。两者均和Ubuntu的安装方式一致,EVE VM方式省去了麻烦的设置,相比EVE Bare的方式更加简单;而EVE Bare纯净方式与安装Ubuntu的步骤稍微少一些,但基本一样。
表2-4 Install EVE VM与Install EVE Bare的区别
选项 |
Install EVE VM |
Install EVE Bare |
---|---|---|
检测键盘类型 |
默认English(US) |
需要手动设置 |
设置主机名 |
默认eve-ng |
默认ubuntu |
磁盘分区 |
默认使用LVM |
需要手动设置 |
安装GRUB |
默认安装 |
需要手动设置 |
安装EVE-NG |
重启后自动安装 |
重启后自动安装 |
本节选择以Install EVE VM方式安装。下一节将详细介绍以Install EVE Bare方式进行安装的方法,以及在Ubuntu上如何手动安装EVE-NG。
就选择Ubuntu系统语言,用方向键将光标移动到相应选项,按回车键确认,如图2-31所示。
图2-31 选择安装过程的语言
选择您所在的位置,如图2-32所示。
图2-32 选择您所在的位置
配置主机名,默认为eve-ng,这里不需要修改,直接进入下一步,如图2-33所示。
图2-33 设置主机名
系统检测到时区是Asia/Shanghai,如正确请选择Yes,如不正确选择No后手动修改,如图2-34所示。
图2-34 设置时区
确认后,能看到Ubuntu系统的安装进度,如图2-35所示。
图2-35 安装进度
中途提示是否需要HTTP代理,如用户的网络中不需要设置代理,可按回车键直接进行下一步,如图2-36所示。
图2-36 设置HTTP代理
设置系统更新的选项,选择No automatic updates即不自动更新,如图2-37所示。
图2-37 系统更新
接下来会继续安装系统,安装成功后会提示重启,如图2-38所示。
图2-38 安装完成
至此,Ubuntu操作系统的安装就此结束。选择Continue按回车键后,系统会自动重启。接下来是安装EVE-NG的部分,请确保机器可以正常联网,EVE-NG才能正常安装。该步骤是为了更新系统包以及安装EVE-NG。
在安装过程中,能看到有eve-ng字样的字符,并且有数据在传输,如图2-39所示。如果看到卡在某一个过程,请检查网络是否正常或网络状况是否良好。
图2-39 安装过程
安装完成后,系统会自动进入到终端登录界面,即EVE-NG的命令行登录界面。输入默认的root/eve后,即可初始化EVE-NG,初始化步骤在2.6节有详细介绍。
注意:
在安装之前,确保物理机在BIOS中开启过硬件虚拟化。
上节讲到使用EVE-NG.iso安装,当系统重启后,会自动执行安装EVE-NG的脚本,不需要手动干预。当然,也可以手动完成这部分操作,本节将为读者介绍完整的步骤。
EVE-NG运行在Ubuntu操作系统上,所以安装EVE-NG包含两大步骤,如下:
首先安装Ubuntu系统,可以使用EVE-NG官方镜像包EVE-NG.iso或者Ubuntu官方镜像包ubuntu-16.04.2-server-amd64.iso。无论使用哪个光盘镜像包,在Ubuntu系统安装过程中,步骤基本一样。如果使用EVE-NG.iso的Bare方式,操作系统安装更简单一点,并且在系统安装完重启后,EVE-NG自动安装。如果使用Ubuntu官方镜像包,在系统安装完重启后,需要手动调整Ubuntu系统,并手动安装EVE-NG。
将U盘或光盘设置为第一启动项,当系统从iso中启动后,第一界面即选择系统安装过程使用的语言,选择English,如图2-40所示。
图2-40 选择系统语言
选择Install Ubuntu Server安装Ubuntu服务器,按回车键继续,如图2-41所示。
图2-41 选择安装系统
选择Ubuntu系统语言为English,按回车键继续,如图2-42所示。
图2-42 选择系统安装的语言
选择你的位置,United States默认即可,按回车键继续,如图2-43所示。
图2-43 选择位置
跳过键盘布局测试,选择No,按回车键继续,如图2-44所示。
图2-44 检测键盘布局
配置键盘布局“English(US)”,按回车键继续,如图2-45和图2-46所示。
图2-45 设置键盘
图2-46 设置键盘
系统会自动检测服务器硬件信息,如CPU、网卡、硬盘等信息,如图2-47所示。
图2-47 检测硬件
硬件信息检测完成后,系统会尝试通过DHCP方式获取IP地址。如果没有问题,则提示成功,如图2-48所示。
图2-48 配置网络
配置系统主机名,默认为ubuntu,将其修改为eve-ng,如图2-49所示(在初始化EVE-NG阶段,还会再次提示修改系统名称,所以此处填写任何名称都可以)。
图2-49 配置主机名
设置一个新用户emulatedlab,全名为emulatedlab,如图2-50和图2-51所示。全名仅仅是新用户emulatedlab的全名标识,不是新用户的登录名。
图2-50 配置新用户eve-ng的全名
图2-51 配置新用户eve-ng的用户名
设置新用户emulatedlab的密码,如图2-52所示。
图2-52 配置新用户eve-ng的密码
确认新用户emulatedlab的密码,如图2-53所示。
图2-53 确认新用户eve-ng的密码
如果密码为弱口令,会提示该密码为弱口令,直接选择Yes跳过即可。
接下来提示用户是否加密账户的家目录,通常情况下,不需要设置该项,所以选择No继续,如图2-54所示。
图2-54 是否加密家目录
系统会自动检测到用户的时区,如果正确,请选择Yes;如果不正确,选择No后修改,如图2-55所示。
图2-55 设置时区
设置用户的磁盘分区,系统默认为“Guided-use entire disk and set up LVM”,我们选择默认即可。如果用户对Linux比较熟悉,可以根据需要自行选择,如图2-56所示。
图2-56 设置磁盘分区
选择用户的硬盘,如果在物理机上安装,请选择相应的磁盘,可以检测到IDE、SCSI、Raid等类型的硬盘,如图2-57所示。
图2-57 选择磁盘
选择完磁盘后,系统提示是否将刚才的设置写入到磁盘并且配置LVM。如果设置没有错误的话,直接按回车键继续,如图2-58所示。
图2-58 写入配置到磁盘
分配磁盘大小,如使用整块磁盘的所有空间,请按回车键继续。用户可根据需要自行选择,如图2-59所示。
图2-59 分配磁盘空间
设置完成后,系统提示是否将配置写入到磁盘,选择Yes,按回车键继续,如图2-60所示。
图2-60 写入配置到磁盘
系统进行安装,将系统文件复制到磁盘,能看到安装进度,如图2-61所示。
图2-61 安装进度
配置网络代理,如用户没有代理,直接选择Continue,如图2-62所示。
图2-62 设置HTTP代理
接下来提示配置管理系统更新的方式。在一般情况下,选择No automatic updates不自动更新,按回车键继续,不建议开启自动更新,如图2-63所示。
图2-63 管理系统更新方式
选择要安装的系统服务,选中OpenSSH server,将光标移动到相应选择,按空格键选中或取消,设置完成后,按回车键继续,如图2-64所示。如果在安装Ubuntu的过程中,未选中OpenSSH server,可以在系统安装完成后,进入系统手动安装OpenSSH Server,执行命令“apt-get update && apt-get install openssh-server –y”。
图2-64 选择需要安装的软件
安装GRUB引导程序,选择Yes,按回车键继续,如图2-65所示。
图2-65 安装GRUB
安装完成后提示移除CD-ROM并重启,选择Continue,按回车键继续,如图2-66所示。
图2-66 系统安装完成
在系统重启后,Ubuntu操作系统就已安装完成。
提示:
如果用户在此过程中选用EVE-NG.iso镜像包,后面的步骤就不需要操作了,因为在系统重启后EVE-NG会自动安装,EVE-NG安装完后会自动进入到EVE-NG的终端登录界面。
Ubuntu安装完成重启后会自动进入到Ubuntu登录界面,使用前文创建的账户emulatedlab登录,更改root用户密码后,使用“su –”命令切换到root用户,如图2-67所示。
图2-67 登录系统切换root用户
在做系统设置时,需要修改配置文件,必然会用到文本编辑器。常用的文本编辑器有如下几种。
nano:基本的字符文本编辑器,使用简单,适合初学者使用,Linux系统默认集成,但使用OVA模板导入的EVE-NG默认没有集成。
vi:Linux最基本编辑器,Linux默认集成,使用广泛;使用OVA模板导入的EVE-NG只集成了vi-tiny版。
Ubuntu系统下,默认集成nano较为好用,同时也预装了vi-tiny版,但tiny版本中键盘键位乱序,使用非常不方便。通常情况下会安装完整版的vi或者功能更强大的vim。
为方便在Ubuntu/EVE-NG系统中对文件操作,简单介绍一下文本编辑器的常用操作。
(1)nano常用操作
(2)vi与vim常用操作
语法:vi/vim 文件名。
安装方法:apt-get install vim –y。
有3种模式,具体如下所示。
一般模式进入编辑模式的按键。
学会如上文本编辑器的操作方法,在EVE-NG环境下就足够了。如果有更高级的需求,可以深入学习文本编辑器的相关内容。
根据你的使用习惯选择合适的文本编辑器,使用nano或vim等文本编辑器编辑/etc/ssh/sshd_config文件,目的是允许root用户使用SSH远程登录。
执行命令“nano /etc/ssh/sshd_config”,打开SSH的配置文件,将第32行的“PermitRootLogin prohibit-password”修改为“PermitRootLogin yes”,如图2-68所示。
图2-68 修改sshd_config
修改完成后,可直接按Ctrl和x键,会提示用户是否保存,按Y键后按回车键,即可保存退出。
执行命令“service ssh restart”重启SSH服务,如图2-69所示。
图2-69 重启SSH服务
这时,就可以通过SSH等终端工具登录到EVE-NG,进而做后续操作。使用ifconfig或ip address命令查看Ubuntu的IP地址,并使用SecureCRT登录,如图2-70~图2-73所示。
图2-70 查看Ubuntu的IP地址
图2-71 SeucreCRT连接Ubuntu
图2-72 SecureCRT连接Ubuntu
图2-73 输入Ubuntu的用户名密码
看到如下内容,就证明登录成功了。
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
142 packages can be updated.
62 updates are security updates.
Last login: Fri Sep 26 21:43:25 2017
root@eve-ng:~#
更新GRUB参数。
root@eve-ng:~# sed -i –e 's/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_ LINUX_DEFAULT="net.ifnames=0 noquiet"/' /etc/default/grub
//一整条命令,目的是让网卡以ethX这样的名称命名。如eth0、eth1,以此类推
root@eve-ng:~# update-grub
//更新grub文件,让刚才的设置生效
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-62-generic
Found initrd image: /boot/initrd.img-4.4.0-62-generic
done
root@eve-ng:~#
在更新GRUB配置文件后,必须要修改网卡的配置文件,否则在系统重启后网卡不能正常工作。
使用nano等文本编辑器编辑文件nano /etc/network/interfaces,将网卡名称由原来的ens160更改为eth0。
root@eve-ng:~# nano /etc/network/interfaces
//打开网卡的配置文件
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0 (更改为eth0)
iface eth0 inet dhcp (更改为eth0)
按Ctrl+O和Ctrl+X保存退出。
注意:
如果用户的网卡是“Broadcom interfaces NetXtreme II 10Gb”这样的10Gbit/s接口网卡,需要执行apt-get install firmware-brx2x命令,让Ubuntu识别网卡。
修改完成后重启服务器,执行命令reboot。以上步骤是针对Ubuntu环境做的一系列初始配置,目的是让Ubuntu适配EVE-NG,下面才是真正安装EVE-NG的过程。
下载并添加EVE-NG源的密钥。
root@eve-ng:~# wget -O - http://www.eve-ng.net/repo/eczema@ecze.com. gpg.key | sudo apt-key add –
//从EVE-NG官网获取密钥,并添加到Ubuntu系统上
--2017-10-02 14:35:21-- http://www.eve-ng.net/repo/eczema@ecze.com.gpg.key
Resolving www.eve-ng.net (www.eve-ng.net)... 91.134.167.218
Connecting to www.eve-ng.net (www.eve-ng.net)|91.134.167.218|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1702 (1.7K) [application/pgp-keys]
Saving to: 'STDOUT'
- 100%[===================>] 1.66K --.-KB/s in 0s
2017-10-02 14:35:22 (191 MB/s) - written to stdout [1702/1702]
OK
root@eve-ng:~#
添加EVE-NG的更新源,并进行软件更新。
root@eve-ng:~# sudo add-apt-repository "deb [arch=amd64] http://www. eve-ng.net/repo xenial main"
//添加EVE-NG的更新源
root@eve-ng:~# apt-get update
//获取最新软件包
Get:1 http://www.eve-ng.net/repo xenial InRelease [1,437 B]
Get:2 http://www.eve-ng.net/repo xenial/main amd64 Packages [4,329 B]
可以看到EVE-NG的源已经在软件列表中。
Hit:3 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Hit:4 http://security.ubuntu.com/ubuntu xenial-security InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:6 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease
Fetched 5,766 B in 6s (883 B/s)
Reading package lists... Done
root@eve-ng:~#
注意:
如果使用root用户,在命令前不需要增加sudo;如果使用普通用户,需要在命令前增加sudo。我们可以临时获取root权限去执行命令,例如“sudo apt-get update”。
下面执行安装EVE-NG的命令。系统会自动检索出需要哪些安装包,并自动下载安装。
root@eve-ng:~# DEBIAN_FRONTEND=noninteractive apt-get -y install eve-ng
//安装EVE-NG
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2 apache2-bin apache2-data apache2-utils attr augeas-lenses authbind
binutils bridge-utils build-essential ca-certificates-java cgroup-lite
...
...
...
Get:78 http://www.eve-ng.net/repo xenial/main amd64 linux-headers-4.9.40- eve-ng-ukms+ amd64 4.9.40-eve-ng-ukms-brctl [8,585 kB]
...
...
...
Processing triggers for libc-bin (2.23-0ubuntu5) ...
Processing triggers for systemd (229-4ubuntu16) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for libapache2-mod-php7.0
(7.0.22-0ubuntu0.16.04.1) ...
Processing triggers for initramfs-tools (0.122ubuntu8.8) ...
update-initramfs: Generating /boot/initrd.img-4.9.40-eve-ng-ukms-2+
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
Processing triggers for dbus (1.10.6-1ubuntu3.3) ...
root@eve-ng:~#
安装完成后,就可以进行EVE-NG的初始化操作了。这种安装方式是通过网络安装的,始终安装的是最新版。当然,也可以使用命令通过网络在线时时更新。
apt-get update
apt-get upgrade
关于更新方法,在第11章还会做详细介绍。
当安装完EVE-NG后,首先要初始化EVE-NG,目的是根据用户的环境需要,对EVE-NG做些简单的设置。
当EVE-NG通过DHCP拿到IP地址后,就进入了登录界面,有两行提示:默认root用户的密码是eve,登录地址为http://10.0.0.100,输入用户的用户名、密码。如果用户是在Ubuntu上安装EVE-NG的,请输入在安装系统时设置的root密码,如图2-74所示。
图2-74 EVE-NG的登录界面
登录后提示用户修改root密码,输入时不显示任何字符,如图2-75所示。
图2-75 修改root密码
设置hostname主机名,用默认的eve-ng即可,也可以根据需要修改,如图2-76所示。
图2-76 EVE-NG设置主机名
设置域名,默认为example.com,将其改为emulatedlab.com,可以根据用户的环境修改,如图2-77所示。
图2-77 EVE-NG设置域名
设置EVE-NG管理地址,EVE-NG支持DHCP获取和static静态设置,可以根据提示设置。本文选择的是DHCP模式,如图2-78所示。
图2-78 EVE-NG设置IP地址
指定NTP服务器,设置成pool.ntp.org,该NTP服务器为CentOS默认的NTP服务器,也可以设置其他NTP服务器,比如ntp1.aliyun.com等,如图2-79所示。
图2-79 EVE-NG设置NTP服务器
选择EVE-NG连接因特网的方式,如用户的网络需要设置代理,选择后面两项,本环境选择direct connection直连的方式连接因特网,如图2-80所示。
图2-80 EVE-NG连接因特网的方式
按回车键设置完成后,系统会自动重启,并应用用户刚才的设置。有可能会一直卡在EVE-NG的欢迎界面上,原因是DHCP获取不到地址。不过没关系,我们强制关机,再启动一次就恢复正常了。如果EVE-NG可以获取到IP地址,那么启动速度比较快,启动后仍然会进入到终端登录界面。
进入到登录界面后,可以通过Web的方式管理EVE-NG,如图2-81所示。
图2-81 EVE-NG的Web界面
本节针对各种环境、各种安装方式分别做了详细的介绍,当熟悉了虚拟化环境以及EVE-NG之后,就有能力根据不同的环境定制属于自己的EVE-NG环境了。希望各位勤加练习,多学习,多尝试。跟着本书做,让你成为EVE-NG仿真平台的大师!