跳转至内容

GNS3

来自 ArchWiki

Graphical Network Simulator 3 (简称 GNS3) 是一款网络软件模拟器,首次发布于 2008 年。它允许组合使用虚拟和真实设备,并用于模拟复杂网络。

GNS3 可以将虚拟机Linux 容器和模拟的网络硬件整合到其拓扑中,并可以将模拟网络连接到物理设备。

有关更多信息,请参阅官方文档

安装

本地

安装 gns3-guiAURgns3-serverAUR 包即可在本地运行 GNS3。本地安装,而不是运行官方 GNS3 虚拟机,可以提高性能,因为消除了虚拟机监控程序的开销。

启用/启动 gns3-server@user 服务,其中 user 是 GNS3 将运行的用户级别帐户的用户名。

libvirt 可用于创建终端设备“Cloud”(提供虚拟 WAN 接口,将测试网络与主网络中的其他设备隔离开)和 NAT。要使 libvirt 正确工作,GNS3 需要 dnsmasqubridgeAUR。安装它们并确保 libvirtd 守护进程在将 GNS3 与 Cloud 和 NAT 终端设备一起使用之前正在运行。

安装 virtualboxvirtualbox-sdk 以在拓扑中使用 VirtualBox 虚拟机。

安装 Wireshark 以嗅探虚拟拓扑中设备之间链路的数据包。

官方虚拟机

官方 GNS3 虚拟机,即预装了 GNS3 的Ubuntu,可以作为本地安装的替代方案。前往 GNS3 Github,下载与您的 GNS3 版本号完全相同的 VirtualBox 版 GNS3 虚拟机。解压并将其导入 VirtualBox。

要在 GNS3 虚拟机和主机操作系统之间创建网络连接,必须配置仅主机网络。在 文件 > 主机网络管理器 中,设置一个仅主机网络。在大多数情况下,它将被命名为 vboxnet0 或类似名称。请注意分配给 GUI 中接口的 IP 地址。出于某种原因,VirtualBox 不会将 IP 分配给接口,也不会启用它。因此,必须在终端中手动执行此操作。有关分配 IP 地址的更多信息,请参阅网络配置#路由表

# ip addr add IP_address/subnet_mask dev vboxnet0
# ip link set dev vboxnet0 up

启动 GNS3 启动向导,选择 GNS3 虚拟机,它应该能够启动虚拟机。

VPCS

Virtual PC Simulator (VPCS) 是一个小型程序(每个实例消耗 2MB RAM),它允许您模拟一个支持基本网络功能的轻量级 PC,例如设置 IP 地址(静态或通过 DHCP),以及一些简单的网络命令,如 arppingtraceroute

VPCS 绝不是虚拟机,因此您无法在其内部添加任何其他功能或服务。

  • VPCS 已弃用。请考虑使用 Linux 容器(例如 DockerLXCsystemd-nspawn)或虚拟机。另请参阅 pacstrap
  • VPCS 的网络堆栈实现受限,您会看到 Bug。例如,VPCS 在处理分片数据包时会崩溃
  • 由于代码未积极维护,您可能会遇到其他故障,例如输入时奇怪的缓慢。

安装 vpcsAUR 包即可使用 VPCS。

Dynamips

Dynamips 是旧的(已终止支持)Cisco 7200、3700、3600、2600 和 1700 系列路由器的模拟器。

Packet over SONET/SDH (POS) 是唯一无法使用 IOL 或 IOSv 模拟的技术。要处理 POS,您需要使用 c7200 平台和 PA-POS-OC3 端口适配器模块。

注意 尽管 代码受到社区的一些关注,但 Dynamips 是一个正在衰落的产品。请考虑使用 IOL 或 IOSv。

安装 dynamipsAUR 包即可使用 Dynamips。

故障排除

GNS3 虚拟机与本地服务器不在同一网络

可能会遇到以下警告

The GNS3 VM (IP 192.168.56.101, NETWORK 192.168.56.0/24) is not on the same network as the local server (IP 127.0.0.1, NETWORK 127.0.0.0/8), please make sure the local server binding is in the same network as the GNS3 VM

要解决此问题,请转到 编辑 > 首选项 > 服务器 > 主机绑定 下拉菜单,并将本地服务器的绑定更改为与 GNS3 虚拟机中“信息”屏幕上列出的 IP 地址(子网和掩码)匹配的任何 IP 地址。请参阅 https://gns3.com/initiatives/gns3-vm-is-not-on-the-same-netwo

virbr0 不存在,请安装 libvirt

如果安装了 libvirt,但 virbr0 不存在,则表示默认网络尚未通过 libvirt 启动,您将无法在 GNS3 中设置 NAT。

要临时启动默认网络,请使用 virsh

# virsh net-start default

并设置在重启时自动启动

# virsh net-autostart default

IOU 镜像需要有效的许可证密钥

要启动 IOU 镜像,您需要在 ~/.iourc 中放置一个有效的许可证。显然,密钥取决于您的活动网卡。在笔记本电脑上,从有线连接更改为无线连接时需要重新生成。不幸的是,GNS3 GUI 在这种情况下不会抛出有意义的错误消息。IOU 镜像 just won't start。