GNS3(Graphical Network Simulator-3)是一款具有图形化界面的高级网络模拟软件,支持在Windows、Linux、macOS等操作系统上运行该软件主要用于在虚拟环境中设计、构建和测试网络拓扑,无需依赖真实的物理硬件。
GNS3的核心功能是运行真实的网络操作系统镜像以模拟网络设备硬件,其支持思科(Cisco)IOS等多种厂商平台,并能仿真路由器、交换机及防火墙等设备。作为Dynamips模拟器的图形前端,GNS3整合了Dynamips、Dynagen、Pemu及Winpcap等组件。
GNS3最初是作为Dynamips的图形化前端而开发的。其版本主要分为旧版本(0.x)和新版本(1.x),其中旧版本不支持IOU(IOS on Unix),而新版本则支持IOU并增强了交换机功能。此后,软件进入了2.x与3.x系列并行发展的阶段。
v3.0.0正式版于2024年12月20日发布。最新稳定版v2.2.12于2024年12月30日更新。最新版本v2.2.55于2025年11月19日发布。该软件支持在Windows、Mac、Linux等多个平台上运行。
GNS3包含多个组件。其核心模拟器Dynamips允许用户直接运行思科系统(IOS)以模拟硬件。前端界面包括早期的文本前端Dynagen和当前的图形用户界面(GUI),后者采用客户端/服务器架构,通过GUI程序访问和控制GNS3服务器。其他集成组件包括用于模拟PIX防火墙的Pemu,以及集成的开源模拟器QEMU和VirtualBox,用于运行Linux、Windows等虚拟机。在Windows平台下,GNS3依赖WinPcap库为win32应用程序提供访问网络底层的能力。
GNS3的核心模拟引擎基于Dynamips,该模拟器允许用户直接运行真实的Cisco IOS镜像文件,用于仿真Cisco硬件。此外,GNS3集成了QEMU和VirtualBox,以支持运行Linux、Windows等其他操作系统的虚拟机,并将这些设备与其他GNS3设备进行网络互联。
GNS3采用客户端/服务器架构,其图形用户界面(GUI)程序访问后台的GNS3服务器来控制设备,这种设计支持项目的扩展和多机协作。在Windows平台上,GNS3通过WinPcap组件为应用程序提供访问底层网络的能力。
GNS3软件包含的组件主要有:Dynamips(运行Cisco IOS的模拟器)、Dynagen(Dynamips的文本显示前端)、Pemu(PIX防火墙设备模拟器)以及WinPcap。
GNS3的技术特点包括支持IOU(IOS on Unix)以增强交换机功能,并支持Docker等容器化技术。同时,该软件也存在一定限制:Dynamips模拟器仅用于教育目的;其对Cisco交换机的模拟功能有限,无法仿真高级Catalyst交换机中的专用集成电路(ASIC);并且由于缺乏硬件加速,模拟网络的吞吐量性能有限。
GNS3是一款跨平台软件,支持Windows、macOS、Linux等多种操作系统。
安装GNS3时,需下载对应操作系统的安装程序并运行安装向导,一路点击“Next”进行安装。在选择安装目录时,建议不要默认安装在C盘,特别是Windows Vista或Windows 7系统,以避免可能出现的运行问题。安装过程中,软件会在线下载并安装必要的插件。
安装完成后首次启动,需要进行初始配置,包括在“Edit”—“Preferences”设置中将界面语言切换为“简体中文”。用户需自行获取并导入Cisco IOS等网络设备的镜像文件,GNS3本身不提供这些文件。
1.首先对GNS3做些设置。
第一步:点击Edit-Preferences…在弹出的对话框中右侧选择Dynampis
然后在Executable path中:写入你安装的GNS3的目录下的Dynampis-wxp.exe,举个例子,目录是 E:/simulatorGNS3/GNS3/Dynamips/dynamips-wxp。这个dynamips-wxp就是dynampis模拟器了。有一点请注意,GNS3只支持英文目录,所以有中文出现的话,会有错误。(如果你是2000操作系统选择Dynampis-2000,vista选择Dynampis-wxp)
第二步:在working directory中随便安排一个目录,这个目录将用来存放运行模拟器的时
候产生的一些文件。设置完毕后点击OK。
第三步:点击Edit-Ios image and hypervisors。
在image file中导入你的cisco IOS。
IOS命名规则:eg:c3640-ik9o3s-mz.124-10.bin,那么platform就是3600,Chassis就是3640。
然后点击Save按钮就可以了。
第四步:画图。直接拖曳相关原件到界面就可以,这个与packet tracer很相似,如果这个还不清楚,可以下载带有动画演示教程的Packet tracer参看
然后按照拓扑点击添加接口的按钮。
通过双击,右击图中的路由器和交换机的图标,可以进行一些简单的配置,比如图标的命名,交换机的接口属性
第五步:点击Emulation Mode
稍等片刻后就出现图4所示,下面的栏目里面就是GNS3集成Dynagen后的比较直观的界面了。就是模拟器可以运行的关键步骤了:
1.输入list回车。
命令会显示模拟器的相关信息。可以看到在state里面显示stopped的,相应的右边就是红色小灯。
2.打开任务管理器,也就是ctrl+alt+del。然后在=后面输入start(会变色,说明这是一个命令,后面的参数用r4,也就是拓扑里面对应的路由器的标号,也就是在打list的时候name列的标号,注意和start之间有空格)r4(注意大小写)。
这个时候r4的灯应该变成了绿色,与此同时,(我用的机器是Thinkpad T61,不同的机器性能可能会使cpu反应有差距)你的任务管理器的cpu使用率应该非常大,这是因为模拟器模拟的是路由器的结构,因此他不知道路由器的cpu什么时候会空闲,所以一直是满载,这个时候进行如下处理:
输入idlepc get r4
这条命令会让程序算出一个可能的idlepc value(该value可以让cpu空闲,具体的作用我不是很明白,其目的就是降低 cpu使用率)。在弹出的对话框中就是可能的idlepc value,只要在打*的数字(系统推荐的最有可能合理的idlepc alue)中选一个输入编号就可以。这个时候观察你的CPU使用率,如果没有下降,那么输入idlepc show r4重新选一个编号,然后观察,如此反复。
如果CPU使用率下降了,那么点击开始-运行-输入telnet 127.0.0.1端口号(这个端口号就是打入list的时候,console这一列相应的数字)。
在出现的telnet命令框中按几个回车,然后按照如下命令输入:
NO //如果没有配置文件的话,会提示是否设定,这里选择NO enable//进入特权模式.如果有密码的话还需要输入特权的密码config terminal //进入全局配置模式
no ip domian-lookup //关闭域名查找,主要是用在当你输错了命令的时候,避免路由器将错误的命令当作域名来查找了
line console 0 //进入console口
logging synchronous //日志同步,防止通过console进行配置的时候,命令被日志提醒打断
exec-timeout 0 0 //设定超时时间为永不超时
exit //退出console配置进程到全局配置进程
hostname R1 //设定主机名为R1,便于区分
end //退出到特权模式
总结来说,每打开一个路由器的话,都先把这些命令配置上,对于后面配置实验比较方便,当然也可以不配置
r1,r2,r3,r5等上图中的其他路由器也用类似方法解决。成功的话,便可以使用GNS3模拟器进行CISCO实验了。
由于模拟器不支持telnet下的reload命令,所以reload就变成在模拟器中先stop然后start。最后大家可以保存下模拟器,以便下次直接使用。
这是Dynampis模拟器最简单的路由拓扑,如果你在网上比较关注模拟器的发展,会发现有很大的发展,但是对于刚刚接触CISCO,以上方法已经足够大家完成路由部分的所有实验。
GNS3被应用于计算机网络技术教学。该软件可以创建从简单到复杂的虚拟网络实验室,也被用作网络认证考试的备考辅助工具。