前言:
我和“她”认识已经有十个春秋,3650个日起日落。5年前因为对她的“误会”我们各奔东西,彼此擦肩而错过;5年后由于个人发展原因再次与她重逢。最近由于工作项目上的需要,有了和她朝夕相处的机会,潜滋暗长,日久生情,于是开始萌芽了打算为她写个自传系列文章的念头。
没错,“她”就叫GNS3!因为她的美,她的魅力,她的追随者数不胜数,目前网络大把关于她的文章,有一笔带过的,也有不缺精华的文章,但是觉得对她的描述和赞美不够,总觉的少点什么!求人不如求己,说到不如做到,接下来就开始对GNS3写个超级详细的系列文章,也算是了了我一桩心愿吧!
背景:
记得我自己最早用的网络模拟器是思科的Packet Tracer,那一年是大一,大学选专业,在师兄的影响下果断选了网络专业,经过了洗脑,又果然报了CCNA培训班,于是开始接触了Packet Tracer。
其实Packet Tracer不是真正的模拟器(Emulateor)只能叫仿真器(Simulator),因为它不能运行真正的早期思科IOS,里面的大部分命令都是用程序模拟出来的。后来经同学推荐认识了DynamipsGUI,中文版本的叫"小凡制作"相比纯DOS下的Dynamips,小凡制作有了GUI图像界面也能运行正真的IOS,操作和使用方便了很多!目前对小凡制作的记忆片段,就是图形界面下的设备互联会生成txt文本文档的互连线图和运行IOS后的黑底白字dos界面下的“”小凡“”字符界面,还有需要快枪手般的操作快捷键快速计算idle值,不然CPU直接奔到100%。
其实现在想想,那个年代觉得有了这些东西,对我们学网络的学生而言那已经是很大的福音了,免去了跑学校实验室机柜上那排队等着使用的“锐捷”设备的漫长等待。
在使用了“”小凡制作“”的一年后,印象中是09年吧!开始接触了GNS3,那会对GNS3还比较陌生,当时试用它是冲着她的“美“-图形界面去的,但是那会的GNS3特别占用内存和CPU,觉得徒有其表,使用了一段时间后果然放弃了……
光阴似箭,岁月如梭,冥冥之中,自由安排,5年后再次与她邂逅,此时的GNS3已经不是当年的她“”了,此一时,彼一时,就像此时的诺基亚不是当时的诺基亚一样,此时的苹果不是当时的苹果,此时的女神不是彼此的女神一样!此时的GNS3已经是名声大噪,有口皆碑!要不是因为CCIE,估计可能我又会再一次和她擦肩而过……
现状:
目前,全球数十万网络工程师使用GNS3来模拟、配置、测试和拍错虚拟和真实的网络环境。GNS3允许您运行在你的个人电脑上,或者在多个服务器上托管的设备上,甚至是托管在云端的设备上。
GNS3可以帮助您准备诸如Cisco CCNA,CCNP之类的认证考试,也可以帮助您测试和验证真实环境的部署。GNS3的原始开发人员eremy Grossman最初创建这个软件的目的是为了帮助他学习CCNP认证。由于最初的工作,我们现在可以使用它来完成同样的工作,而无需为昂贵的硬件付费。
GNS3允许网络工程师对真实的硬件设备进行虚拟化超已经超过过10年了。正如我开篇说的,GNS3最初只是使用名为Dynamips的软件来模拟Cisco IOS设备,现在已经发展并支持来自多个网络供应商的许多设备,包括Cisco虚拟交换机、Cisco ASAs、Brocade vrouter、Cumulus Linux交换机、Docker实例、HPE VSRs、multiple Linux applicnces和许多其他设备。更多受支持的设备,可以点击下面链接来查看目前可用的Appliances列表: https://gns3.com/marketplace/appliances
架构:
GNS3 包含两个软件组建:
- The GNS3-all-in-one software (GUI)
- The GNS3 virtual machine (VM)
GNS3-all-in-one:
这是GNS3中带有图像界面的的客户端部分,你可以安装该软件在你的本地计算机中(Windows, MAC, Linux) 然后用它创建你的网络拓扑,这也是你在网络上见得最多的场景,盗用一张官方的图,拓扑如下图所示:
服务器选项:
当你用GNS3 all-in-one图形客户端创建拓扑后, GNS3所运行的设备(模拟或者仿真)需要依赖相应的服务端进程。对于此软件的服务器端,我们有下面3个选项可以选择:
- 本地GNS3服务器
- 本地GNS3虚拟机
- 远端GNS3虚拟机
本地GNS3服务器模式:和GNS3 all-in-one图像界面客户端运行在同一台物理机下;此外, 用于支持思科旧版本IOS的Dynamips也会运行在同一物理机上。此模式适合于设备不多,需要快速创建小型拓扑来测试或者验证某些配置的场景。因为设备太多的话会占用太多的本地计算机资源,导致性能下降!
GNS3虚拟机模式:上面的后两种都属于虚拟机模式,无论虚拟机(VMware或者VirtualBOX)运行在本地或者远端( VMware ESXi 主机或者云端),都是比较推荐的模式,因为这种模式会在你的本地计算机上部署一台虚拟机,然后所有模拟设备都是运行在这台虚拟机上,虚拟机的物理配置你随时可以调节,这样的好处是:虚拟机的物理资源一旦确定下来,那么占用你物理机的顶多就是分配给虚拟机的物理资源而不用担心模拟设备会耗尽你的本地物理机资源。另外一个好处是,虚拟机对模拟设备的支持比较好,因为GNS3虚拟机是居于Linux内核的,而很多模拟设备也是居于Linxu内核的,这样兼容性和性能会好很多。再者,就是受支持的模拟设备比较多,诸如Cisco VIRL(思科虚拟互联网路由实验室) 设备 (IOSvL2, IOSvL3, ASAv) 或者其他依赖于 Qemu模拟器的其他设备。
GNS3 Emulation(模拟器) 对比 Simulation(仿真器):
GNS3同时支持Emulation(模拟器)和Simulation(仿真器)设备,那么,这这两者有什么区别呢?
Emulation(模拟器):就是GNS3利用模拟器虚拟设备的硬件,然后在这虚拟硬件上运行正真的系统或者软件。例如Dynamipcs下运行的的思科IOS就是这种方式。
Simulation(仿真器): GNS3 模拟设备的功能和特性,例如交换机。运行在该仿真设备上的不是真实环境下的系统或者软件,例如前面介绍到的思科Packet Tracer就是类似的仿真器,在GNS3上的VPC也是此类仿真器。
温馨提醒:不用过于偏激或者纠结两者之间的异同点,根据个人需要结合使用即可,使用的时候注意下面两点的区别:
- Dynamips 是一个模拟思科设备比较老的技术了,它使用真正的思科IOS系统。对于小型的实验环境比较适合使用,但是它有一些自己的局限性,例如只能支持老版本的IOS(12.X以及之前的版本),而12.X的版本目前思科以及停止更新和支持了。
- 目前,GNS3推荐使用的思科镜像软件是VIRL (IOSv, IOSvL2,IOS-XRv, ASAv). 因为这些系统目前受思科支持和更新。目前支持的发布版本为 IOS (15.X) 。这些系统虽然比Dynamips要占用内存资源,但是很多新特性都得到支持,用户体验也好。
本小节就先告一段落,为了能够尽量详细的给大家多分享些关于GNS3的东西,请大家原谅我的啰嗦!下节开始,我们真刀×××的实战,我们战场上见!