GNS3简介
GNS3,全称为:Graphical Network Simulator 3。是一款非常流行的网络模拟软件,具有图形化界面
可以运行在多平台(包括Windows, Linux, and MacOS等)。GNS3整合了Dynamips,Dynagen,Pumu以
及Winpcap。可以用来模拟Cisco路由设备和PIX防火墙,仿真简单的Ethernet, ATM和帧中继交换机。网
络设备管理员或者想要通过CCNA,CCNP,CCIE等Cisco认证考试的相关人士可以通过它来完成相关的实验模
拟操作,同时它也可以用于虚拟体验Cisco网络操作系统IOS,或者检验需要在真实的网络设备上部署实施
的相关配置。
GNS分为GNS Server和Client(All-in-one),支持通过虚拟机的方式部署安装,也支持在本地系统上安
装。支持的Hypersior包括VMware ESXi, VM Player以及Virtual Box。如果要模拟Multi-layer Swi
tch,就需要使用VM版本的GNS3 Server。所以本文将以ESXi虚拟机的方式安装GNS Server。
GNS3 当前最新版本为2.1.14,GitHub下载地址:
https://github.com/GNS3/gns3-gui/releases
如下图,这里我们需要下载:
GNS3-2.1.14-all-in-one.exe # Client端
GNS3.VM.VMware.ESXI.2.1.14.zip # Server端虚拟机OVF模板
部署GNS3 Server
1、在ESXi中通过虚拟机模板文件部署GNS3 VM,一切都保持默认配置即可。
2、GNS VM启动后,会首先通过DHCP获取IP地址,默认ssh账号为gns3/gns3。
3、如果要修改为固定IP地址,选择“Networking”进行修改。
4、注释掉DHCP选项,然后取消固定IP的注释并修改IP地址。然后Ctrl+o保存,Ctrl+x退出。配置完成后,
重启一下VM,确认IP可以Ping通。Server部分配置完毕。
安装配置Client
1、在本机安装GNS3-2.1.14-all-in-one.exe,默认选项即可,首次安装会提示注册ssh客户端,按提示
完成即可。注意本机要可以访问互联网,因为安装时会联网下载一些必要的组件。
2、安装完成后,启动GNS3,会提示配置向导,这里我们选择“下次启动不再提示”然后按“Cancel”取消
配置向导。
3、选择“Edit”–“Preferences”–“Server”,在“Main Server”选项里,取消“Enable local
server”选项,因为我们要使用安装在ESXi上的GNS3 VM。在Remote main server里填入GNS3 VM的
IP地址,其它都不需要修改。
4、需要说明的是,这里Server分为两个部分,Main Server和Remote Server,通常会保留本地Server
然后在Remote Server里加入GNS3 VM。但是其实Main Server也是可以用来跑模拟器的。我们已经将
GNS3 VM配置成了Remote Main Server,所以就不需再配置Remote server了。
5、配置完毕后,在主页面可以看到Client已经连接到GNS3 VM。
导入IOS和IOU
1、现在GNS3 Server和Client都已经配置好了,接下来就可以导入Cisco Router Imange和Switch
IOU了。IOS Router用来模拟Cisco路由器,IOU用来模拟Cisco交换机。当然,需要事先准备好相应的
IMAGE文件,这个可以在百度里搜索即可。这里我们导入的IMAGE分别是:
c3660-a3jk9s-mz.124-25d.bin # Router
i86bi-linux-l2-upk9-15.0b.bin # Switch
2、点击“Edit”–“Preferences”–“ISO routers”,然后点击下面的“New”进行添加。添加完成后如
下图。
3、点击“Edit”–“Preferences”–“IOU Devices”,然后点击下面的“New”进行添加。添加完成后
如下图。
4、导入License Key, 点击“Edit”–“Preferences”–“IOS on UNIX”,点击“Browse”导入License
Key文件,License Key可以在百度上进行搜索。导入完成后如下图。到这里IOS和IOU就配置完成了。
实际使用测试
1、现在所有环境已经准备完毕,接下来我们来创建一个Project来测试GNS3是否可以正常工作。点击
“File”–“New blank project”,然后点击主界面左侧的图标,直接将要加入的设备拖入中间的空白
区域即可。使用左边的网线图示将设备连接起来。
2、如下图,我们添加了三台交换机,和三台PC,三台交换机互相连接到一起,用来测试生成树,IOU1
和IOU2之间配置链路聚合。
3、双击设备,或者在设备的右键菜单中选择“Console”即可登录到Switch的Console。
4、首先打开IOU1与IOU2的电源并配置IOU1与IOU2的LACP,使用端口e0/0-1。然后确认PC-1与PC-2之间可
以互相ping通。
5、打开IOU3 Switch的电源,然后分别在三台Switch上查看生成树状态,可以看到交换机默认是已经启用
了生成树的,模式为:PVST。其中Blocking端口在IOU3 Switch。
6、查看IOU3 Switch生成树,可以看到e0/0为root port,并处于forwarding 状态。e0/1为Altn port,
并处于Blocking状态。说明e0/0为根端口,根端口是指非根网桥到根网桥开销最小的端口。e0/1为替代端
口,替代端口是根端口的”后备”端口。
7、查看IOU1 Switch,可以看到所有端口的角色都是Desg。Desg是指派端口(designated port),根网
桥的所有端口都是指定端口。所以可以确定IOU1 Switch为根桥。
8、查看IOU2 Switch,可以看到e0/0和e0/1为root port, e0/2为Desg port,说明此端口连接的是其
它非根桥的Altn端口,也就是被block掉的端口。同时也说明IOU2为非根桥。
9、通过查看上述的Spanning-tree状态,可以确定在我们的环境中,IOU1为根桥,IOU3的e0/1为阻塞端
口。所以PC-2与PC-3的通信要经过IOU2–IOU1–IOU3。PC-1与PC-3的通信则经过IOU1–IOU3,而不会
经过IOU2。
10、到这里简单的Spanning tree就配置完成了,主要是为了验证GNS3的相关组件以及我们上传的IOU可以
正常工作。