ccna60d/GNS3_tutorial.md
2021-03-12 17:29:19 +08:00

17 KiB
Raw Permalink Blame History

GNS3 入门

Getting Started with GNS3

简介

世界范围内数十万网络工程师们都在使用着GNS3他们使用GNS3来对虚拟与真实网络进行模拟、配置、测试以及故障排除。GNS3允许在笔记本电脑上运行一个有着几台设备的小型拓扑也可以在跨越多台服务器以致云上运行有着众多设备的大型拓扑。

GNS3是开放源代码的自由软件可从 http://gns3.com 下载到。

GNS3目前仍是活跃开发着有着超过80万会员的持续增长的社区。加入到GNS3的社区就意味着你加入了一个由众多学生、网络工程师、架构师以及其他那些已经下载了GNS3超过一百万次的这些人当中。GNS3在世界上的众多公司中都有使用包括很多财富500强的公司。

在诸如思科CCNA这样的认证考试中GNS3可以用来备考也可以对真实世界的网络部署进行测试和验证。GNS3最初的开发者Jeremy Grossman, 一开始就是为了帮助他的CCNP认证考试编写的这个软件。正是因为他的最初工作今天我们才可以使用模拟器而不需要去购买昂贵的硬件来达到学习网络技术的目的。

10多年前GNS3就已允许网络工程师将实体硬件设备进行虚拟。最初只能通过使用名为 Dynamips 的软件对思科设备进行虚拟现在GNS3已经进化到支持多家网络厂商的众多设备了包括思科虚拟交换机、思科ASAs、Brocade vRouters、Cumulus Linux交换机、Docker实例、HPE VSRs以及多个Linux设备等等。在 https://gns3.com/marketplace/appliances 可以查看到这些支持的设备。

注意 GNS3 已有超过10年历史。因此互联网上的一些信息已经过时或完全是错误的。希望这个文档能够回答一些疑问并帮助你开始GNS3之旅。

注意 GNS3 不止支持思科设备。虽然因为大多数网络工程师都对学习思科设备感兴趣而提到思科设备。在现今的GNS3中许多其他的商业或是开源厂商都是支持的。如今你可以对许多不同厂商设备的互操作性进行测试甚至可以尝试那些采用了SDN、NFV、Linux以及Docker技术的深奥设置。

建议: 如你使用的是旧版本的GNS3那些建议你将其升级到当前的稳定版GNS3。

什么是 GNS3

架构

GNS3是由两个软件组建构成的

  • GNS3一体软件The GNS3-all-in-one software, GUI, 图形用户界面)
  • GNS3的虚拟机The GNS3 virtual machine, VM

关于GNS3一体软件

他是GNS3的客户端部分同时是一个图形用户界面graphical user interface, GUI。在本地计算机Windows, MAC, Linux上安装这个一体软件通过他创建出网络拓扑。所谓网络拓扑就是我们常见到的如下的屏幕截图

Network Topology

服务器选项:

通过一体软件的图形界面客户端在GNS3中创建网络拓扑时所创建出的设备就需要经由一个服务器进程进行驻守并运行起来。关于GNS3软件的服务器部分有少数几个选项

  1. 本地的GNS3服务器
  2. 本地的GNS3虚拟机
  3. 远程的GNS3虚拟机

本地GNS3服务器运行在安装GNS3一体软件的同一计算机上。比如在使用一台Windows PC时那么GNS3 GUI与本地GNS3服务器就都是以进程形式运行在Windows中的。那些诸如Dynamips这样的其他进程也将运行在PC上

若你决定运行GNS3虚拟机推荐做法那么就既可以在你的PC上使用诸如 VMWare Workstation、Virtualbox 或 Hyper-V本地运行或者也可以在运行了VMWare ESXi的服务器上远程运行 GNS3 VM 甚至还可以在云上远程运行。

注意 在不使用 GNS3 VM的情况下同样可以使用GNS3。这在刚开始时是一个好办法但这种设置带有局限性而无法提供到与拓扑规模与设备支持相关的许多选项You are able to use GNS3 without using the GNS3 VM. This is a good way to get started initially, but this setup is limited and does not provide as many choices with regards to topology size and devices supported。在要创建更多先进GNS3拓扑或者打算包含诸如思科VIRL设备IOSvL2, IOSvL3, ASAv或其他需要Qemu模拟器的设备时就推荐使用GNS3 VM而且通常是必要的

注意 仅使用GNS3一体软件来启动一个基本的GNS3拓扑一旦那个拓扑可以运行就可以参考附加文档来设置一个本地的GNS3虚拟机了。

关于仿真与模拟Emulation vs. Simulation

GNS3同时支持仿真与模拟设备。

仿真: GNS3对某个设备的硬件进行模仿与仿真同时你是在虚拟设备上运行着真实的镜像。比如可以从某台真实的物理思科路由器上拷出思科IOS镜像进而在GNS3中对思科路由器进行仿真。

模拟: GNS3对某个设备的特性与功能进行模拟比如交换机。你并未运行真实的操作系统诸如思科IOS而是运行的一台由GNS3所开发的模拟设备就比如GNS3内建的2层交换机。

注意 模拟与仿真之间的界线如今已不那么分明的。现在你可以运行真正的思科操作系统的思科VIRL镜像这些镜像运行在标准的虚拟硬件上。GNS3则是仿真了这些VIRL镜像所需要的硬件。

记住: 无需过多考虑模拟与仿真之间的区别,除非在下面几点情况下:

  1. Dynamips 是一种较为陈旧的对思科硬件进行仿真的技术。它使用真实的思科IOS镜像。对于基本的CCNA类型拓扑是可以的但有着一些局限比如只支持较旧的思科IOS版本12.X这些版本已不被思科支持或积极更新。

  2. 推荐的在GNS3中使用的思科镜像是思科VIRLIOSv、IOSvL2、IOS-XRv、ASAv的那些镜像。这些镜像是受思科支持并处于积极更新中的。所支持的这些镜像是思科IOS15.X的当前发布同时提供了最佳规模与用户体验provide the best scale and user experience

GNS3 对照

总会有人问到底那个软件是最好的。这个问题取决于个人喜好而每种解决方案都有着同样的优势与不足Questions often arise about which software is best. A lot of this is down to personal preference with all solutions providing some benefits and having some disavantages

不堪的过往如今网工的世界远好于过去的日子在以前网络工程师们为了学习他们的CCNAs、CCNPs或CCIEs就只有很少的选择购买或租用物理的思科设备。

如今,在学习或测试网络时,就有了多种选择:

  1. GNS3
  2. 思科 Packet Tracer
  3. 思科VIRL
  4. 物理设备
  5. 其他方案

关于GNS3

如同上面所提到的GNS3是开放源代码的软件可以自由下载使用。如想要看看GNS3的代码那么其源代码在GitHub上可以获取到。GNS3团队希望你发现GNS3是有用、有益的不过如果你不喜欢GNS3的某些东西或者想要添加一些特性就可以为GNS3贡献代码。加入到GNS3社区或志愿者对代码进行检查或添加代码推荐。在一个有着超过80万成员的社区里我们总能相互学习。

当然你可以使用其他选项。其中一些是免费的,一些则需要花钱。就使用那些适合于你的吧。在需要时,也可以结合使用多个方案。我们乐于见到今日百花齐放的局面,这有助于我们所有人提升与学习网络技能。

优势

  • 自由软件
  • 开放源码软件
  • 没有月度或年度许可证费用
  • 没有所支持设备数量上的限制唯一的限制是你的硬件CPU与内存
  • 支持多种交换选项NM-ESW16以太网交换模块、IOU/IOL二层镜像、VIRL IOSvL2
  • 支持所有的VIRL镜像IOSv, IOSvL2, IOS-XRv, CSR1000v, NX-OSv, ASAv
  • 支持多厂商环境
  • 可带或不带管理程序运行Can be run with or without hypervisors
  • 支持免费或付费的管理程序Supports both free and paid hypervisors, Virtualbox, VMWare workstation, VMWare player, ESXi, Fusion
  • 提供了下载,自由,预先配置好的,优化过的配置,可简化部署
  • Linux下的原生支持无需额外的虚拟软件
  • 可免费使用多家厂商的软件
  • 大型活跃的社区超过80万成员

不足

  • 需要由用户提供思科的镜像从cisco.com下载或购买VIRL许可证或从物理设备上拷出来
  • 不是一个自包含的软件包而需要本地安装的软件GUI
  • 因为是本地安装GNS3会受到你的PC设置和限制的影响防火墙、安装设置、公司笔记本电脑策略等等

Packet Tracer

思科 Packet Tracer 是一个思科给思科学院学员使用的官方产品,对思科网络进行模拟。其并不对思科硬件进行仿真,也不支持思科或其他厂商的真实镜像。

优势

  • 易于设置
  • 支持思科路由器、交换机及PC的模拟
  • 对于CCNA的学习是足够的
  • 模拟多个设备与协议路由器、交换机、无线、RADIUS等等
  • 免费的(需要在思科的 NetAcad网站上注册

不足

  • 代码专有 --不是开源的
  • 只模拟思科设备(并未运行真正的思科镜像)
  • 不是多厂商支持
  • 无法与真实的物理设备进行集成
  • 只能使用其开发者实现了的那些IOS命令。不是所有Packet Tracer中所模拟的平台上的命令都是可用的

思科VIRL

思科已经创建出另一个官方支持的网络模拟平台 - 思科虚拟互联网路由实验室Cisco Virtual Internet Routing Lab, VIRL。与思科Packet Tracer相比这是一个强大得多的方案从而不仅能够在上面学习也可以对真实网络进行模拟。

注意 思科VIRL是一个与GNS3更为接近的产品除了学习思科技术外还允许网络工程师对真实世界的网络进行模拟。

优势

  • 支持思科路由器、交换机、防火墙及PC的模拟IOSv, IOSvL2, ASAv...
  • 对于CCNA、CCNP及CCIE的学习都不错
  • 支持思科防火墙ASAv
  • 丰富的协议与特性支持RPCST+、Etherchannel、端口安区、MPLS、VRFs等等完整清单参考这里: http://virl.cisco.com/work/
  • 支持最新版的思科IOS15.X

不足

  • 不是自由软件。需要支付每年$200的个人版VIRL订阅费
  • 所支持的设备数量有限。使用个人版时每个网络拓扑不能超过20个思科节点
  • VIRL的配置较为复杂
  • 资源密集需要的内存与CPU很大很高
  • 需要虚拟软件VMWare Workstation Player/Pro, Fusion 或 ESXi
  • 不支持VirtualBox
  • 不具有多厂商支持 -- 只支持思科的网络设备

注意 GNS3支持所有的VIRL镜像。可将VIRL镜像倒入到GNS3中并在每个拓扑下不加限制的进行使用仅受限于你的硬件资源

设备支持

GNS3支持多厂商的众多设备同时随时都有更多设备添加近来。GNS3 marketplace是查看当前支持设备清单的最佳位置

https://gns3.com/marketplace/appliances

用例

GNS3最为著名的是用作学习与教学的一个平台。为网络技术学生与网络工程师用于实践和准备诸如思科CCNA这样的厂商考试GNS3被使用已有多年。

GNS3也可用于其他诸如概念验证与商业演示等用例。GNS3提供了一种容易的、极具成本优势的方式的新型软件诸如网络管理或软件定义网络类软件。其实现了虚拟实验室环境下而非必需特定物理设备对多家厂商的互操作性进行测试。

在一台笔记本电脑上就可以创建出整个的GNS3拓扑并加以运行。这就允许工程师把网络拓扑与软件在路上给客户或其他人演示了。

使用GNS3的其他理由

  • 无需网络硬件,即可进行预部署测试的实时网络模拟:运行对网络硬件真实行为进行仿真的操作系统
  • 在无风险的虚拟环境中对超过20家不同网络厂商进行测试无需硬件就可以快速对多家硬件厂商进行运行和测试
  • 为故障排除与概念验证proof of concept, PoC测试创建动态网络地图在构建网络之前就对你的网络进行测试以缩短获得生产网络运行起来的时间
  • 可将GNS3与真实网络连接起来通过将GNS3技术直接连接到真实网络从而利用上既有硬件并将当前实验室进行扩展
  • 为网络认证考试训练目的对GNS3中的网络拓扑与实验进行定制GNS3是网络从业者寻求各种认证的最佳学习工具而无需在家里搭建一个实验室

关于GNS3的版本

当前最新版的GNS3可在这里找到https://gns3.com/software

GNS3的开发版本可在这里找到 https://github.com/GNS3/gns3-gui/releases

注意 请使用最新的稳定版GNS3。只有在遇到问题或GNS3数据丢失时才去使用开发中的发布版本。在准备考试或有某个最后期限的项目时不要使用开发中的版本。

GNS3帮助与支持

GNS3提供了多种获取帮助的途径包括

文档

可在这里访问到GNS3文档https://docs.gns3.net/

社区

社区时获得帮助的最佳场所。加入到数以万计的GNS3用户与专家进而互相帮助让GNS3成为主流。http://gns3.com/community

什么可以做: 在GNS3社区可以汇报程序缺陷bugs并提问

什么不可以做 不要谈论违法的事或违反GNS3用户政策的事。不要试图索取思科IOS镜像。不要分享思科IOS镜像。不要做任何试图盗版或违反法律的事。

GNS3 Youtube 频道

可在David Bombal的GNS3频道上观看视频

https://www.youtube.com/playlist?list=PLhfrWIlLOoKPTPPv6ZiNHFM2FKAZ96f-r

GNS3课程

可在GNS3线上学院的GNS3课程注册学习GNS3

http://academy.gns3.com/

所支持的操作系统

GNS3支持以下操作系统

  • Windows 7 (64 bit)
  • Windows 8 (64 bit)
  • Windows 10 (64 bit)
  • Windows Server 2012 (64 bit)
  • Windows Server 2016 (64 bit)
  • Mac OS X Marericks(version 10.9) and later
  • Linux

其他可运行GNS3 VM的平台

  • ESXi
  • 诸如packet.net这样的基于裸金属云提供商Bare Metal Cloud based providers such as Packet.net

支持的设备

Supported Appliances

GNS3支持多种操作系统、设施及仿真器。我该使用哪种仿真器

需要使用GNS3虚拟机吗

在使用Windows或Mac OS时对于绝大多数模拟都建议使用GNS3的虚拟机。GNS3开发团队花费了大量精力来创建出了一个轻量、可靠的避开了在使用本地安装的GNS3时遇到过的多种常见问题的创建GNS3拓扑的方法The GNS3 development team have worked hard to create a lightweight, robust way of creating GNS3 topologies that avoids multiple common issues experienced when using a local install of GNS3。这些问题就包括在Windows不推荐上原生运行VIRL时缺少合适的Qemu支持的问题。

但如果只是要创建基本的使用思科IOS路由器的GNS3拓扑那么本地Dynamips安装就足够了。本地安装就是说只安装GNS3的图形用户界面而不使用GNS3的虚拟机。

本地安装是更简单的设置但有许多限制可作为GNS3之旅的起点。在逐渐适应了GNS3之后就建议往GNS3的虚拟机设置过渡获得GNS3的丰富选项与最佳优化。

注意 在Windows与Mac OS上使用GNS3的虚拟机。在Linux上原生运行GNS3时GNS3虚拟机是可选的而非必须的。

不支持或不推荐的

ASA 8

注意 ASA 8不被支持

在互联网上可以找到很多有关如何从物理设备提取ASA 8镜像并在GNS3中进行使用的教程。这种办法在过去是唯一获取到ASA镜像的办法但具体结果是随机的。在现代计算机和操作系统中这种情况变得更糟了。比如在Windows 10中运行ASA 8就有许多问题。

这样做的问题在于所使用的镜像是为思科的特定设备制作的。Qemu可以对该硬件进行部分仿真但特定于物理ASA的一些组建是缺失的。比如硬件ASA设备的硬件时钟就没有。ASA的内核有时可以将其你的计算机速率对其替代但结果总是根据具体情况而定。

在同时运行多个ASAs会遇到各种问题。

带Qemu镜像的本地安装

Local install with Qemu images

在Windows或 Mac OS上GNS3不支持或不推荐本地GNS3安装下使用Qemu镜像。此时应该在GNS3虚拟机中使用Qemu镜像。

Qemu 镜像示例 IOSvL2, IOSv, IOS-XRv, ASAv以及GNS3网站上所有可用的设备https://gns3.com/marketplace/appliances

关于复杂网络拓扑

在Windows或Mac OS上创建复杂网络拓扑时推荐使用GNS3虚拟机。只有在创建简单GNS3拓扑时才使用本地安装的GNS3。