书名:GNS3实战指南
ISBN:978-7-115-42309-2
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
• 著 [美] Jason C. Neumann
译 曹绍华 张青锋 佟梦竹
责任编辑 傅道坤
• 人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
• 读者服务热线:(010)81055410
反盗版热线:(010)81055315
Jascon C. Neumann是GNS3项目的一名活跃的参与人员,先后承担了提供代码、调整论坛以及在各个平台上对GNS3软件进行beta测试的相关工作。Neumann还是一位具有20多年从业经历的网络工程师,持有Cisco、Juniper、Microsoft、Novell和VMware公司的多项认证。他还是Cisco Routers for the Small Business(Apress)一书的作者。
Copyright © 2015 by Jason C. Neumann. Title of English-language original: The Book of GNS3: Build Virtual Network Labs Using Cisco, Juniper, and More(1st Edition), ISBN978-1593275549, published by No Starch Press. Simplified Chinese-language edition copyright © 2016 by Posts and Telecom Press. All rights reserved.
本书中文简体字版由美国No Starch出版社授权人民邮电出版社出版。未经出版者书面许可,对本书任何部分不得以任何方式复制或抄袭。
版权所有,侵权必究。
GNS3是一款具有图形化界面的网络虚拟软件,可以运行在Windows、OS X和Linux平台上,它通过模拟路由器和交换机来创建复杂的物理网络的模拟环境。本书采用类似于教程的讲解方式,由浅入深地为网络工程师和系统管理员讲解了使用GNS3的方法。
本书共分为10章,其内容包括:GNS3的基本介绍、安装与配置;在GNS3上创建和管理项目;在项目中添加主机并使用Wireshark来抓包;创建Juniper虚拟路由器并配置基本的vSRX防火墙;GNS中包含的设备节点和交换机的使用方式;Cisco ASA、IDS/IPS和IOS-XRv的配置方法;在UNIX上安装Cisco IOS的方法;使用GNS3可以尝试的其他事情。本书的附录还列出了一些常见的GNS3问题、可以兼容GNS3的Cisco路由器,以及NM-16ESW和IOU L2在GNS3上的限制。
本书适合正在备考思科认证考试,且急需提升动手能力的读者阅读;具有网络行业背景的工程师和运维管理人员也可以通过本书搭建虚拟网络,在无需真实设备的情况下进一步提升自己的网络配置和排错能力。
网络无所不在。它们连接了各种各样的商业,从当地书店到大型企业到高校,跨越了多个城市和大洲。网络在概念上的理解很简单,然而它们变得越来越复杂,在许多领域里有所创新,例如软件定义网络(SDN)、物联网(IoT)以及一些其他指日可待的技术。
为了理解、设计和管理今天复杂的网络,网络专家们不仅必须要掌握理论,还必须在不断变化的环境中实践和验证这些概念。这就是GNS3的目标所在:它给予了用户非常大的灵活性来构建他们自己的网络实验室,允许做一些具有新型网络特征的实验,抓包以解析协议,验证稍后部署在真实设备上的配置。所有这些都无需昂贵的硬件投资。GNS3是一个强大且具有适应性的工具,发展到现在,集成了多个供应商并且不断满足网络专家们日益增长的需求。但是,你如何掌握GNS3本身,并且从哪里开始呢?
本书涵盖了网络工程师、管理员和为了获得网络相关证书的人们入门需要的所有基础知识,从指导完成安装和配置GNS3到创建和管理项目,不一而足。随着展示本软件的真实宽度,涵盖了诸如如何抓包、如何连接到真实网络和实时交换机、如何在实验室中加入Juniper的vSRX Firefly和Cisco的IOS-XRv高端系统等主题,本书逐渐深入。Jason花了大量的时间解释能使你立即成为专业用户的概念和小技巧。
Jason的书对于管理GNS3来说是完美的,并且可以充分利用你的网络实验室。无论你是在网络领域的初学者还是经验丰富的专业人士,相信你都将会学习到一些新的东西。
——Jeremy Grossmann
GNS3联合创始人之一
据说,抚养一个孩子是全村人的责任,GNS3是每个人的孩子。我想感谢所有帮助创建和推广GNS3的人,他们使它成为非常优秀的软件工具。你们所有人都是伟大的!
特别感谢以下各位。
我的妻子Sharon,感谢她的耐心,并且允许我成为GNS3的一名超级极客。
Jeremy Grossmann,我们亲切的GNS3霸主。
Christophe Follot,Dynamips的创造者,启动一切的人。
Julien Duponchelle,沉默的代码大师。
Stephen Guppy,一天中回复的邮件比我一年回复的邮件都多的人。
Mark Blackwell,GNS3非凡的布道者。
Flávio J. Saraiva,Dynamips大师。
Chris Welch,GNS3 WorkBench和Jungle集群控制的创造者。
Radovan Brezula,可以使任意网络操作系统在GNS3上运行的人。
Daniel Lintott,我们可以转换这个项目,但是让我们使用Debian!
Rene Molenaar(gns3vault.com),一个超级英雄。
Chris Bryant,就职于Bryant Advantage公司。
Jeremy Cioara,Cisco公司的神一级人物。
Keith Barker,Cisco公司的神一级人物。
Andrew Coleman,GNS3的超级仲裁人,睡一会儿吧!
GNS3的所有投资者——你知道是谁的!
我也想要特别感谢No Starch出版社所有帮助本书付梓的人员。特别要感谢以下人员。
Jennifer Griffith-Delgado,你是最棒的!
Serena Yang,你对我非常耐心,而且你也是很棒的!
Bill Pollock,No Starch出版社的老大。
由于本人资质愚钝,因此难免疏漏一些很重要的人员,但是请放心,我也非常感谢你们!现在,让我对这里未提及的所有人说:谢谢你!
GNS3还在早期研发阶段时,我在就开始使用它了,并且使用得如鱼得水。从一开始,我就能预见它将会是一件重要的网络工具。我已经使用它获得了实际经验,在诸如Cisco IOS、Junos OS和Arista等操作系统上,也通过了一些认证考试。至今,在部署到真实设备之前,我经常用它来进行路由器的基础配置测试。本书让我有机会向大家分享这些非常优秀的资源。
本书是为了任何涉及网络路由器、交换机或防火墙的人员写的。无论你是使用Cisco、Juniper、Arista、Vyatta,或者一些其他的网络操作系统,GNS3都是建立物理实验室的一个非常棒的选择。不像使用物理设备的实验室,GNS3虚拟实验室可以创建和保存无限的网络配置,而不必拆分一个已存在的实验室。本书包含了所有让项目启动并快速运行的细节。
本书会引导你在Windows、OS X和Linux上安装、配置、运行GNS3,并且会展示一些有趣的技巧。无论你是刚刚接触还是以前使用过GNS3,当你有正确的工具时,你对其可行性都会有新的理解。本书不介绍TCP/IP网络基础,但是提供了大量例子说明如何配置GNS3设备。
最有效的学习方法就是实践。这就是我为什么使用基于教程的方法来创建全功能多厂商的GNS3实验室。教程解释了如何使用书中介绍的虚拟设备来构建、配置实验室。本书提供了配置Cisco IOS、Junos OS和Juniper vSRX Firefly等的示例。你不需要成为网络操作系统方面的专家,因为我会在配置过程中一步一步引导你。你可能花费数天甚至数周时间在网上搜索诸如如何连接到实时交换机、如何创建虚拟访问服务器或连接你的虚拟实验室到互联网上等功能配置。本书将解答以上所有疑问。
本书指导你完成GNS3的安装和使用,并且每一章都会介绍一些建立在前面技术之上的新概念。你将了解仅使用一台计算机或跨多台计算机的共享负载,如何创建和管理简单到复杂的项目。
第1章,GNS3介绍,介绍GNS3是什么,怎样工作,提供GNS3的概述,讨论虚拟网络的好处。
第2章,基础GNS3系统的安装,讨论如何在Windows、OS X和Linux上安装GNS3,说明在PC上直接安装GNS3并在其上运行虚拟设备的好处。
第3章,配置,安装Cisco的IOS镜像并且使用Dynamips建立第一台虚拟路由器,并讨论为Dynamips路由器设置Idle-PC值的重要性。
第4章,创建并管理项目,教你怎样设置一台虚拟路由器。此后,给出所有的工具栏选项,并介绍如何创建一个只有两台路由器的简单网络。
第5章,主机集成以及Wireshark的使用,展示如何安装VPCS并使用它向项目中添加类似PC的主机。你会了解如何使用VirtualBox添加成熟虚拟PC、使用Cisco IOS路由器和VirtualBox Linux PC创建实验室。然后,你会学习使用Wireshark抓包。
第6章,Juniper Olive和vSRX Firefly,说明如何安装QEMU并使用它来创建自己的Juniper虚拟路由器。你会使用Juniper和Cisco创建网络,学习如何安装Juniper vSRX Firefly并配置基本的vSRX防火墙。
第7章,设备节点、真实交换机和互联网,展示GNS3中的内置设备节点,解释它们为什么可以节约PC上的资源。你会学习如何将GNS3项目连接到真实交换机和互联网上。
第8章,Cisco ASA、IDS/IPS和IOS-XRv,讲述如何设置GNS3设备以及配置它们,提示如何创建Cisco ASA防火墙、IDS/IPS以及使用Cisco IOS-XRv创建一个网络实验室。
第9章,UNIX和NX-OSv专用版Cisco IOS,继续讨论设备创建方面的主题,讲述如何在UNIX上安装Cisco IOS,以及使用NX-OSv创建虚拟NX OS交换机。
第10章,雨中作乐,展示一些可以用新的GNS3知识做的趣事,例如,创建一个模拟访问服务器来管理设备,将GNS3虚拟设备配置部署到真实的Cisco路由器上。
附录A:故障诊断,讨论一些可能在GNS3上遇到的常见问题,并提供一些解决方案。
附录B:Cisco硬件与GNS3的兼容性,列出一些兼容GNS3的Cisco路由器,并指出哪些Cisco IOS镜像文件效果最好。
附录C:NM-16ESW和IOU L2的限制,提供一些关于UNIX上的IOS和GNS3中使用的NM-16ESW Cisco交换机的信息。
现在,准备好深入了解GNS3。在开始这段旅程之前,请一定和你的家人们吻别,因为你一旦开始就不能停下!
GNS3是一款运行在Windows、OS X和Linux上的跨平台图形网络模拟器,是Christophe Fillot、Jeremy Grossmann和Julien Duponchelle等超级优秀的行业专家协作努力的成果,此处只提到了几个人。Fillot是MIPS处理器仿真程序(Dynamips)的开发者,Dynamips使你可以运行Cisco路由器操作系统;Grossmann是GNS3的开发者,他把Dynamips和其他开源软件集成到一个易于使用的图形用户界面中;Duponchelle协助GNS3的编程,他的贡献推进了软件开发。
GNS3使你能够在PC上设计并测试虚拟网络,包括(但不限于)Cisco IOS、Juniper、MikroTik、Arista、Vyatta网络,在CCNA与CCNP考试中学习Cisco IOS路由和交换时需要实践经验的学生也常使用它。但这仅仅是GNS3功能的表面。本章会讨论GNS3是什么以及这个软件的优点和局限性。
在对虚拟化、网络工程师、管理员好奇之前,学生不得不使用物理硬件搭建实验室,或在机架上花费时间。这两个选择都华而不实,还限制了可用的网络设计。像RouterSim和Boson NetSim等软件模拟程序也已经存在了很长时间,但是,这些有限的应用程序仅仅能模拟Cisco IOS的命令。基于UNIX上的Cisco IOS(IOU),Cisco Education的确提供了更便宜的虚拟化机架租赁,但是借助它只可以练习特定预配置的网络配置。还要求有一个活跃的网络连接来访问实验室。Cisco也提供了一款名为虚拟网络路由实验(VIRL)的产品,它类似于GNS3,但是它需要缴纳年费,限制实验室中可以使用的对象数量,并且只用于模拟Cisco操作系统。
然而,GNS3可以定制符合要求的网络实验室,使用Cisco和非Cisco技术创建无限的项目,在项目中添加无限的对象,不论网络连通性如何,可以在任意时刻访问这些项目。GNS3通过对运行在真实网络操作系统(如Cisco IOS)和模拟操作系统(如NX-OSv)上的模拟硬件设备的组合,以及对跨多台计算机资源的分享能力,为设计提供了最大的灵活性。
GNS3的图形界面可以让你使用大量的路由器、交换机和PC创建虚拟网络实验室,但它与Cisco IOS搭配使用时才发挥真正的作用。不像类似的应用程序,GNS3不仅仅模拟Cisco IOS的命令或特性。相反,它使用一个后台虚拟机监控程序来仿真运行Cisco IOS的硬件。因为只有对硬件仿真,才可以在PC上运行真实的IOS镜像文件。所有的配置命令和输出都来自真实的IOS,并且理论上,IOS版本支持的任何协议或特性在网络设计中都可用。这个功能将GNS3与RouterSim、Boson NetSim或VIRL等程序区分开,这些程序模拟整个程序,只为你提供有限的环境、命令和场景。
除了硬件仿真之外,GNS3集成了模拟操作系统,并且对于其他GNS3设备,它们是完全网络化的。一个这样的例子就是Cisco IOU,它会在第9章介绍。IOU由一系列仿真IOS镜像特征的Linux二进制文件组成,GNS3完全支持它。
除了Cisco IOS之外,GNS3可以集成QEMU和运行Linux、BSD或Windows等操作系统的VirtualBox虚拟机。例如,为了在Linux上练习安装、配置Apache Web服务器,在GNS3中添加一个运行Linux和Apache Web服务器的VirtualBox虚拟机(VM),并且通过从另一台VirtualBox主机上浏览它来测试。所有这一切都是在GNS3用户环境中完成的。如果想在Apache服务器前放置防火墙,可以使用Cisco路由器、自适应安全设备(ASA)防火墙,甚至基于Linux的Vyatta等防火墙。
GSN3使用客户端/服务器技术;就像Web浏览器连接到Web服务器来访问和显示网页,GNS3图形用户界面(GUI)程序访问GNS3服务器,让它开始、停止或控制GNS3设备。这使得项目可以扩展,因为它们不局限于在一台计算机上运行。如果要使用更大、更复杂的拓扑,还可以在不同的PC上运行GNS3服务器程序,而不是GSN3 GUI程序。如果访问有大量内存和处理能力的高端服务器,可以在服务器硬件上安装GNS3服务器程序,但从运行在更普通的PC上的GNS3 GUI程序控制所有的设备。
GNS3真正的魅力在于可以将虚拟设备连接到一起,通常使用IPv4和IPv6等协议,来创建可以运行在单台计算机上的实验室。一些简单的设计可能只有几个组件,如图1.1所示的项目一样。
图1.1 集成了Fedora Linux、Cisco和Juniper路由器的GNS3拓扑
图1.1中的项目允许Fedora Linux主机通过交换机、Juniper路由器、Cisco路由器和GNS3云节点访问真实的互联网。那是一个简单网络,但是可以创建由许多路由器、交换机、PC组成的复杂网络,就像图1.2所示的设计。
图1.2 一个复杂、多协议的GNS3拓扑
图1.2所示的项目由多于25台的设备所配置,包括冗余的交换机群、EtherChannel、二层热备份路由协议(HSRP)、帧中继、增强型内部网关路由协议(EIGRP)、开放最短路径优先(OSPF)和边界网关协议(BGP),但是项目可以运行在适度配置的PC上。为了保持设备整齐,可以使用带颜色、可扩展的文本进行注释,就像我在本例中做的。如果有一台笔记本电脑,甚至可以在旅途中参与项目以展示给客户,解决设计问题,或者准备认证考试。CCNA或CCNP候选者也可以创建练习实验室,进而学习Cisco考试内容,在真实操作系统上练习,在所有地方学习。
GNS3可以将实验室设备中的虚拟接口桥接到PC上的一个或多个物理以太网接口。这使你可以将虚拟网络连接到路由器、交换机、PC等真实硬件上。例如,可以使用多台PC运行两个或多个GNS3网络,使用以太网交叉电缆或物理交换机将PC连接在一起。这样做使你可以把所有PC上的所有GNS3设备连接在一起(我把这亲切地称为GNS3 ubernet)。
GNS3借助开源技术展示它的神奇魔力,其中包括Dynamips、QEMU和VirtualBox等开源模拟器。它可以像运行Cisco IOS那样轻松地运行Juniper、Arista和其他很多网络操作系统。
为了仿真Cisco硬件,GNS3捆绑了Dynamips模拟器,这个完美的应用程序是法国人Christophe Fillot在2005年创建的,到目前Flávio J. Saraiva和其他人也做出了很多贡献。Dynamips模拟器程序可以仿真Cisco1700、2600、3600、3700和7200系列路由器硬件。借助这个模拟器程序,使用GNS3中各种模拟的网络插槽和广域网接口卡(WICS),可以快速、轻松地配置以上这些路由器。虚拟输入/输出(I/O)卡允许添加多个以太网接口卡、交换机模块、串口到设备中,甚至可以在每个基本设备上添加/删除内存,这取决于项目需要和Cisco IOS版本。
可以添加QEMU和VirtualBox虚拟机到GNS3中,并把它们用到你的项目中,这些设备可以和其他的GNS3设备形成一个完整的端到端网络,例如,可以连接一个VirtualBox主机到一系列交换机和路由器,并且允许它访问网络中另外一个VirtualBox主机上的资源。在这个场景中,可以配置和测试各种路由协议和NAT、ACL、VPN等特性。当然,物理计算机硬件位置限制了资源,但是现代计算机有很多未使用的资源等待着被GNS3开发利用。
GNS3并非没有限制,Dynamips模拟器只能用于教育,而不能用于生产环境。另外,交换限制在一个适度的命令集内,除非该GNS3项目中集成了一个或者多个物理交换机。幸运的是,IOU弥补了这方面的空白。
所有伟大的事情都是要付出代价的,GNS3也不例外。最值得注意的是,GNS3运行虚拟Dynamips路由器时,需要一个或者多个Cisco IOS映像,但GNS3不能提供。映像可以从路由器上复制,或者,如果和Cisco公司有合同,可以使用CCO账号在网上获取。
Dynamips模拟器不能仿真Cisco高级Catalyst交换机中的专用集成电路(ASIC),这对CCNA甚至CCNP影响不大,但是对于需要使用交换机高级特性的Cisco认证互联网专家(CCIE)来说,它是一个妨碍。然而,功能强大的GNS3允许虚拟实验室和真实交换机成为一体,这就大大降低了CCIE实验室的成本,因为大部分实验室是虚拟的,这样配置时更灵活。
当不需要那些高级特性时,可以添加一个像Cisco NM-16ESW这样的交换机模块到虚拟路由器,生成一个简单的三层交换机。这个设备可以满足适度的交换需要,包括VLAN、802.1Q trunking、spanning-tree、EtherChannel,以及使用EIGRP、OSPF、BGP和其他路由协议的多协议路由。最后,Cisco IOU映像可以用于仿真Cisco交换机,并且能够提供比Dynamips交换机模块更多的命令。
GNS3的另外一个限制是网络性能,因为Dynamips模拟器不能提供任何硬件的加速,而且根据使用的IOS和配置不同,吞吐量限制在1.5Mbit/s~800Mbit/s。这看起来是一种限制,但它其实是一件好事,因为它可以防止用户将虚拟化的Cisco硬件放到生产环境中。想象一下,如果仿真设备可在最大吞吐量下运行:每个网络书呆子都可能在便宜的PC上安装虚拟路由器并用到生产环境中,这严重盗窃了Cisco的知识产权。如果这种情况发生,Cisco将不依不饶地追责Dynamips模拟器的开发者,GNS3也不会存在到今天。这个限制对于在教育和测试环境中使用GNS3影响不大。
既然本书涉及GNS3的重点,我希望你在你自己的计算机上使用它时和我一样激动。与类似的应用程序和工具不同,GNS3给你全部控制权,让你自由发挥你的想象力来创建、学习、开发复杂网络来满足需求。此外,你可以轻松做到这一切,不会遇到这些麻烦:路由器需要大量资金、交换机集中在一个充满噪声的房间内、硬件耗电量大等。
下一章将介绍如何安装GNS3。
对硬件世界说拜拜,对GNS3说你好吧!它是一种学习网络的全新方式。本章将介绍在Windows、Mac OS X和Ubuntu Linux上安装基本GNS3系统的全过程。
基本安装包括GNS3应用程序和几个助手程序。在Windows和Mac OS X上,所有必备应用程序和GNS3安装包捆绑在一起,它们可以在GNS3网站上获得(http://www.gns3.com/)。
当在Linux上安装时,可以通过一个安装包管理器的特定平台下载安装GNS3,或者直接使用源代码。使用源代码安装的原则可以应用到任何基于UNIX的系统上,它是一种可以确保拥有最新版软件的巧妙方法。
运行GNS3的要求大多取决于所安装的操作系统、模型和项目中所要使用路由器的数量,以及是否集成诸如QEMU或VirtualBox等外部程序到设计中。近几年购买的大多数计算机都应该能够无故障地运行此基本安装。
那就是说,如果决定不仅使用Cisco路由器创建项目,还想要在GNS3设计中加入其他虚拟环境(如Linux、BSD、ASA、IDS或Juniper),需要获得你手边尽可能多的马力。拥有越多的内存和处理能力,程序会运行得越顺畅,这是由于像QEMU和VirtualBox等程序需要内存来运行它们的客户机操作系统,它们会与本地操作系统竞争CPU时间。也需要额外的磁盘空间来存储客户机操作系统。
可以访问GNS3网站来验证操作系统的要求,但是简单的基本安装最好遵守以下规则。
这些是最低的标准,拥有这些配置的系统能够运行一个有少量Cisco路由器的网络拓扑。当然,随着项目的增大和复杂性的增加,GNS3将大大受益于一个更强大的系统。
注
如果安装说明现在看起来非常复杂,不要害怕!跳到2.5节,学习怎样下载一个预制的GNS3程序,马上开始吧。
与其他操作系统相比,在Windows上安装GNS3毫不费脑力。Windows安装包几乎涵盖了GNS3需要的所有应用程序,以及一些在其他平台上没有找到的额外配件,所有的安装几乎不需要用户干预。
Windows安装程序包含一些非常有用的应用程序,包括用在Juniper和ASA上的QEMU、Wireshark(一款很受欢迎的网络监控程序)、Putty(一款Windows终端模拟程序)以及VPCS(一款使用ping和traceroute命令测试连通性的简单的类DOS命令行模拟器)。安装程序有GNS3的32位和64位版本,它可以自动安装正确的版本。
在Windows上安装GNS3,按照以下步骤进行。
1.从GNS3网站下载GNS3一体化的安装程序(http://www.gns3.com/),并启动它开始安装。
2.在Setup Wizard界面中单击Next按钮,在License Agreement界面中单击I Agree按钮。
3.选择想要在开始菜单中放置安装程序快捷方式的文件夹,然后单击Next按钮(默认文件夹是GNS3)。
4.然后可以选择想要安装的组件,如图2.1所示。默认选项是安装所有组件,以创建一个全功能的GNS3系统,包括Wireshark、VPCS和QEMU。为了节省磁盘空间,或者你并不需要这些额外的功能,那就取消选择这些选项。WinPCAP用来建立NIO以太网云连接,Dynamips用来创建使用Cisco路由器和交换机的项目。做出选择并单击Next按钮。
图2.1 选择要安装的GNS3组件
5.可以看到Choose Install Location界面,如图2.2所示。为了安装GNS3到一个可选择的位置,在Destination Folder字段中输入新位置并单击Install按钮。
6.根据以下提示,继续完成安装。建议接受所有默认设置。
完成后,在桌面上应该有一个GNS3图标。
图2.2 选择目标文件夹位置
GNS3仅支持基于Intel且运行OS X的Mac计算机。在运行GNS3之前,应该确保使用最新版本的OS X。
为了在OS X上安装GNS3应用程序,在GNS3网站上下载正确的安装程序(http://www.gns3.com/),然后双击安装程序,桌面上会出现一个DMG磁盘镜像文件。双击镜像文件来打开GNS3文件夹,并且拖动GNS3图标到Applications文件夹,如图2.3所示。
图2.3 拖动GNS3程序图标到Applications文件夹
为了在现行OS X版本上运行GNS3,第一次运行它时,必须右击已安装的应用程序图标并选择Open命令。将会出现一个对话框,警告安装包来自未知的开发者,并且询问是否确定要打开这个应用程序。单击Open按钮,绕过这个OS X看门人特性。之后GNS3会正常运行,没有任何警告。
GNS3可以在许多不同的Linux发行版本上正常运行,但是其中大多数缺乏文档。本节将揭开神秘的面纱,展示在基于UNIX的平台上运行GNS3是一件很简单的事。选择Ubunt,是因为它是一个很常用的发行版本。
在Linux上安装GNS3有两种方法。可以通过包管理器安装一个捆绑包,也可以从源代码安装。使用包安装既快速又容易,但缺点是无法摆脱已经移植到特定平台的GNS3版本,它可能不是最新的版本。这里还可以使用源代码方便地安装。源代码安装仅多出几个步骤,且提供最新的GNS3版本。尽管我强烈推荐从源代码安装,但是这里讨论这两种方法。
为了使用高级包安装工具安装GNS3,打开终端程序并输入以下命令。
$ sudo apt-get install gns3
当出现提示符时,输入密码。这条命令的输出显示了将会安装的包列表,并显示了安装会使用多少磁盘空间。在继续安装之前,安装程序会提示确定这是可以的。一旦确认,会安装包,GNS3准备好运行。
可以从终端程序中输入gns3或从显示管理器的应用程序菜单中运行GNS3。现在准备配置GNS3。
从源代码安装确保获得最新的GNS3版本,我认为,这是在基于UNIX的系统上安装GNS3的最好方法。无论使用什么版本的Linux,应该都能够使用这些指令指导GNS3启动并运行。在以下例子中,我将使用Ubuntu Linux作为框架,但是请记住,这些指令可以应用到任何基于UNIX的发行版本上。发行版本之间的主要差别是需要的依赖性及其安装方法。一定要在GNS3网站查看最新需求的依赖性。
因为我已经在Solaris、FreeBSD、OpenBSD、Ubuntu、Mint、OpenSUSE、Fedora、Fuduntu、Debian、Arch、Gentoo、Kali、Netrunner和PCLinuxOS上安装了GNS3,所以我确定也可以在你的系统上运行GNS3。
从GNS3网站下载并解压缩安装文件(http://www.gns3.com/)。
当下载了Linux的GNS3时,得到一个包含Linux源代码的ZIP文件。一旦解压缩了文件,将看到GNS3使用的每一个ZIP程序文件。使用以下命令解压缩GNS3源文件,用文件版本取代x。
$ cd ~/Download
$ unzip GNS3-x-source.zip
dynamips-x.zip
gns3-gui-x.zip
gns3-server-x.zip
vpcs-x.zip
iouyap-x.zip
接下来,需要更新Ubuntu软件包管理器。
更新包管理器的索引文件确保安装最新的依赖关系。在Ubuntu上,打开终端程序并输入以下命令。
$ sudo apt-get update
因为GNS3的依赖关系和包名字对每一个Linux发行版本都是特别的,所以需要下载适用于你的操作系统的版本。由于依赖关系随时间变化,因此也可能要事先在GNS3网站上确认。在Ubuntu上,输入以下命令。
$ sudo apt-get install python3-dev
$ sudo apt-get install python3-setuptools
$ sudo apt-get install python3-pyqt4
$ sudo apt-get install python3-ws4py
$ sudo apt-get install python3-netifaces
安装完所有的python安装包,就要安装Dynamips了。
在编译Dynamips之前,需要在Ubuntu系统上再多安装一些安装包。
$ sudo apt-get install libpcap-dev
$ sudo apt-get install libelf-dev
$ sudo apt-get install uuid-dev
$ sudo apt-get install cmake
下一步,使用下列命令解压缩源代码文件,编译、安装Dynamips。用软件版本代替x。
$ unzip dynamips-x.zip
$ cd dynamips-x
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
完成后,目录/usr/local/bin/里应该会出现一个名为dynamips的文件。改变程序在根目录下的所有权和可执行文件权限。这允许Dynamips设备使用PC的以太网适配器连接到互联网或诸如Cisco交换机等实时硬件上。
$ sudo chown root /usr/local/bin/dynamips
$ sudo chmod 4755 /usr/local/bin/dynamips
对于担心安全性的人,这里有一个选择。不提供Dynamips的root级权限,即可实现相同的功能。以下Ubuntu命令应该对大多数运行Linux 2.2内核或更高版本的系统起作用。这个方法对基于BSD的系统不起作用。
$ sudo apt-get install libcap2
$ sudo setcap cap_net_raw,cap_net_admin+eip /usr/local/bin/dynamips
下一步,需要安装GNS3服务器和GUI源文件。
GNS3由两个主要的应用程序组成:一个服务器程序和一个GUI程序。服务器程序在PC的后台运行,通常不会让普通用户看见。它运行并管理所有助手程序,如Dynamips、QEMU和VirtualBox。GUI应用程序提供了前端用户体验,实现与GNS3的交互。
$ unzip gns3-server-x.zip
$ unzip gns3-gui-x.zip
为了完成安装,为每个应用程序运行GNS3安装脚本。因为这一步需要较高的root权限,所以把root密码放在手边。从GNS3服务器开始。
$ cd gns3-server-x
$ sudo python3 setup.py install
下一步,安装GNS3 GUI应用程序。
$ cd gns3-gui-x
$ sudo python3 setup.py install
当安装完成时,应用程序安装在/usr/local/bin/下。
下一步,安装虚拟PC模拟器(VPCS),方法是解压缩vpcs的ZIP文件并运行mk.sh安装程序脚本。此软件模拟简单的PC,在项目里能用来测试路由器。
$ unzip vpcs-x.zip
$ cd vpcs-x/src
$ ./mk.sh
$ sudo cp vpcs /usr/local/bin
对于Ubuntu和一些其他的Linux发行版本来说,最后一步有点特别,但由于其Gnome Desktop的实施,这是必需的。没有这条命令,程序会运行得很好,但是GNS3的一些菜单图标不会显示。
$ gconftool-2 --type Boolean --set /desktop/gnome/interface/menus_have_icons True
为了开始运行程序,输入以下终端命令。
$ gns3
就是它!现在准备继续配置GNS3、创建项目吧。
在PC上安装GNS3的另一种选择是使用预配置的GNS3设备。GNS3设备就是一个安装了GNS3的虚拟机。由于GNS3设备使用类似VirtualBox的应用程序运行,因为它们是非常灵活的。VirtualBox是免费的,可以在大多数操作系统运行(包括Windows、OS X、Linux和FreeBSD)。
在虚拟环境中运行GNS3有一些优势。主要就是简单性和可移植性。大部分设置工作已经完成,你已经有了可在PC间移植的GNS3安装包。如果买了一台新PC,可以将设备复制到新的PC上,所有一切都会完全照前执行(不用管新PC正在运行的硬件和操作系统)。
另一方面,如果想要客户机操作系统和GNS3良好运行,尤其是创建大而复杂的项目时,宿主机器需要有快速的处理器和大量的RAM。由于正在模拟客户机操作系统的硬件,因此你的项目性能可能会受到轻微影响,这取决于底层的硬件。
有一些GNS3设备可供选择,但我推荐GNS3 WorkBench(http://rednectar.net/ gns3-workbench/),如图2.4所示。研发人员做的工作很好,使界面简单并且配置相当简单。在Linux上安装,GNS3 WorkBench和GNS3、Wireshark以及VPCS一起预安装。它也有一大堆练习和预配置的实验室,帮助准备Cisco CCNA认证考试。许多实验需要排错,而且会给出清晰的排错目标。
图2.4 GNS3 WorkBench
GNS3 WorkBench假定用户的Linux使用经验欠缺,但是具有一定的Linux使用经验还是有帮助的。Linux shell脚本会协助安装Cisco IOS,实验室是设计好的,于是它们只需要几个IOS镜像来运行。此外,开发人员在其中包含了来自GNS3库的一些练习。GNS3库网站(http://www.gns3vault.com/)致力于GNS3的所有事情,密切关注Cisco教育,为每个准备Cisco CCNA和CCNP认证考试的人提供练习。
GNS3 WorkBench是免费的且只能作为一个VMware虚拟机。然而,可以使用VirtualBox导入虚拟磁盘镜像,运行设备。如果希望使用VMware在本地运行设备,访问他们的网站(http://www.vmware.com/)并验证你的平台是支持的。否则,建议使用VirtualBox(http://www.virtualbox.org/),因为它支持更多的平台,特别是,对Windows、Linux、FreeBSD和OS X等都是免费的。
在开始之前,先确认工作站有10GB的硬盘可用空间来安装VirtualBox。为了在VirtualBox下安装GNS3 WorkBench,从GNS3网站(http://www.gns3.com/)下载GNS3设备,并按以下步骤操作。
1.启动VirtualBox,单击启动界面上的New按钮创建一个新的虚拟机。向导打开后,单击Continue按钮开始。
2.命名虚拟机,选择Linux作为操作系统,选择Ubuntu作为版本(如图2.5所示),然后单击Continue按钮。
图2.5 为GNS3 WorkBench创建一个新的Ubuntu Linux虚拟机
3.根据需要调整内存设置,单击Continue按钮进入Virtual Hard Disk对话框。然后,选择Use existing hard disk单选按钮,单击黄色的文件夹图标,浏览你想要保存GNS3 WorkBench文件的位置。选择名为GNS3 WorkBench.vmdk的文件,一定要勾选Start-up Disk旁边的复选框,然后单击Continue按钮,如图2.6所示。这与从一台PC中移除硬盘然后安装在另一台PC上是一样的。
图2.6 选择VMware磁盘镜像与VirtualBox一起使用
4.单击Next按钮和Complete按钮,完成安装。
5.最后,启动GNS3 WorkBench,然后安装客户机其他的软件。客户机其他的软件为新的虚拟机提供了硬件驱动程序。单击Devices→Install Guest Additions命令,然后按照屏幕上的指示操作。在FreeBSD上,通过virtualbox-ose-additions安装包来安装客户机其他的软件。
注
如果你的主机有额外的RAM,可以分配给GNS3 WorkBench 2GB(或更多)的RAM,而不使用默认的1GB。对于GNS3,1GB是最小的。增大可用内存会提高性能。
完成安装之后,单击Start按钮来启动Ubuntu。会出现如何配置和使用GNS3 WorkBench的指令。
学习本章不需要计算机科学的博士学位。GNS3可以在任何操作系统中安装。这并不是说,在每一个系统上安装都一样容易。例如,一些Linux发行版本可能根本就没有GNS3安装包(或者安装包已经过时而不能满足需求),但这就是开源软件的魅力:可以直接使用源代码安装。另一个潜在陷阱是,所有必要的依赖关系或者那些适合版本的依赖关系可能不适用于你的操作系统版本,但那是一个有保证的打断性故障。在那种情况下,我建议使用类似GNS3 WorkBench的设备,或者使用VirtualBox,安装一个像Ubuntu那样完全支持GNS3的客户机操作系统。
GNS3安装好了,准备好学习下一章,你将学习如何配置GNS3与创建项目。