GNS3模拟器搭建与学习

图片描述

为何搭建GNS3模拟器

作为一名后端开发必要的网络知识能够帮助自己在服务故障,程序网络问题的时候便于定位问题,排查问题,也能够帮助提升程序在网络方面的性能,但是对于一名半路出家的程序员,我并没有系统的学习网络相关的知识,脑子里的知识是零散的,这让我在处理一些类似网络故障的时候容易丢失方向,故想系统的学习网络相关的知识提升专业水平。

但是学习网络知识体系相当庞大,在阅读书籍之后或者学习某个知识点之后总能很快就忘了,或者有些疑问没办法进行验证,不像学习代码或者框架,直接把项目跑起来看源码,断点debug,日志一步一步验证自己的想法,于是想学习网络也可以像代码一样马上验证应该能够加深记忆与理解,所以通过GNS3来做实践。

GNS3是什么

GNS3是一个模拟现实生活中网络设备的软件,它能够通过gui和vm虚拟模拟出路由器、交换机、pc主机等设备,适合网络工程师模拟网络拓扑或者网络实验。

它采用的也是C/S模型由这几部分组成:

1.GUI客户端部分

他是一个桌面端的控制UI(也有web端),当你安装完GNS3之后打开就是他的GUI用户界面,他可以让你通过拖拽创建一个网络拓扑通过软件的方式,以下是一张来自官网的示例图:

2.服务端

服务端可以由几种方式搭建而成。

Local GNS3 server

这个模式包含在已经安装的GNS3客户端里面,通过python的方式启动了一个web服务与GUI通信,在软件的设置中可以开启或者关闭这个服务。

Local GNS3 VM

本地虚拟机运行模式,推荐使用这个模式,他是通过 VMware Workstation, Virtualbox 或者 Hyper-V虚拟机运行GNS3,虚拟机的镜像可以在github仓库中找到下载。

Local GNS3 VM Remote

顾名思义就是在远程机器搭建虚拟机然后运行镜像。

环境搭建

初学者可能会从官网https://www.gns3.com/ 直接下载,下载过程会让你去注册账号然后等待审核通过后才能下载,其实只要到github https://github.com/GNS3/gns3-gui/releases 的releases页面就能够看到所有需要的资源。

这里以mac电脑为例:

1.下载GNS3-2.2.46.dmg 并安装成功。

2.现在镜像GNS3.VM.ARM64.2.2.46.zip

3.下载VMware虚拟机完成安装和虚拟机挂载。

我选择ubuntu操作系统

选择从第二歩下载的镜像当做虚拟磁盘,启动就完成GNS3的安装,完成界面如下:

4.GNS3设置

打开GNS3设置,将server中Enable local server取消勾选,然后填写入上面的ip和端口

填写完成之后如果可以连接server就会保存成功,我这里遇到链接不上,看了虚拟机日志,发现是/opt/gns3目录没有权限,于是给这个目录递归授权0777就可以了

启动成功

GNS3 Vm 中的Enable the GNS3 VM也关闭了,但是虚拟化引擎要调整为Remote

5.保存退出再重新启动,这样就完成基础的配置了。

设备镜像安装

官网有很多实验是别人搭建好分享的

我选择了一个最简单的网络模板https://www.gns3.com/marketplace/labs/simple-network-layout 下载之后打开

打开并导入项目,首先会提示镜像不存在,这是一个交换机的镜像。

搜索镜像名称并下载安装

The image c3725-adventerprisek9-mz.124-15.T14.image is missing

遇到镜像缺失的都按照这个步骤下载安装导入镜像解决。

同时提示一下,导入的镜像名称要和提示的镜像名称一样,不然如果从外部导入的项目会导致一直提示镜像不存在,但是实际是导入成功了。

重新打开设备报错Could not find an iourc file (IOU license), please configure an IOU license

这是因为思科的设备需要授权才能使用,参考了官网论坛讨论的方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Jun 20 2021 at 7:45pm[edited]
Hi Lanre,

I followed this video and I was able to generate license for IOU devices:
https://www.youtube.com/watch?v=eJnZpycDn0s

In a nutshell:
1. open a shell to gns vm
wget http://www.ipvanquish.com/download/CiscoIOUKeygen3f.py

python3 CiscoIOUKeygen3f.py

ls
cat iourc.txt

2. Follow this guide as per GNS3:
https://docs.gns3.com/docs/emulators/non-native-iou-for-windows-and-osx/#license

That was it. I checked the keygen script and there's no virus in it, although you can check that too.

Cheers,

生成license之后再将license复制到IOS on Unix重启下应用就可以。

开始实验TODO

参考资源

https://docs.gns3.com/docs/ 官网

https://kemt-bn.fei.tuke.sk/TechnologieNaBazePrepinanychSieti/Cvicenia/GNS3/IOSs/ 镜像下载

https://www.gns3.com/community/support/could-not-find-an-iourc-file-iou-license-please-configure-an-iou-license-l2-l3-what-is-the-solution IOU授权