GNS3
GNS3 允许您在计算机上模拟网络。
GNS3 是一个编排器,它命令启动或停止虚拟机、Linux 容器和一些其他东西,并告诉 uBridge 将它们互连。 您可以通过 GNS3 管理任何虚拟机或容器:它们仍然通过 Docker/QEMU/VirtualBox/VMware 运行,GNS3 只是引导它们启动。
请参阅官方文档以获取更多信息。
安装
本地安装
安装 gns3-guiAUR 和 gns3-serverAUR 软件包以在本地运行 GNS3。 与运行官方 GNS3 虚拟机相反,本地安装可以用于提高性能,因为您无需在另一个虚拟化层上浪费资源。
启用/启动 gns3-server@user
服务,其中 user 是将在其上运行 GNS3 的用户级帐户的用户名。
libvirt 可用于创建终端设备 “Cloud”(提供虚拟 wan 接口,将测试网络与主网络中的其他设备隔离)和 NAT。 为了使 libvirt 正常工作,GNS3 需要 dnsmasq 和 ubridgeAUR。 安装它们并确保 libvirtd 守护程序在运行,然后再将 GNS3 与 Cloud 和 NAT 终端设备一起使用。
安装 virtualbox 和 virtualbox-sdk 以在拓扑中使用 VirtualBox 虚拟机。
安装 Wireshark 以嗅探虚拟拓扑设备之间链路的数据包。
官方虚拟机
官方 GNS3 虚拟机是预装了 GNS3 的 Ubuntu,可以用作本地安装的替代方案。 转到 GNS3 Github 并下载与您的 GNS3 版本号完全相同的 GNS3 虚拟机 VirtualBox 版本。 解压缩并在 VirtualBox 中导入虚拟机。
要在 GNS3 虚拟机和主机操作系统之间创建网络连接,必须配置仅主机网络。 在文件 > Host Network Manager 中,设置仅主机网络。 在大多数情况下,它将被称为 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),以及一些简单的网络命令,如 arp、ping 和 traceroute。
VPCS 绝不是虚拟机,因此您无法向其中添加任何其他功能或服务。
要使用 VPCS,安装 vpcsAUR 软件包,或 vpcs-gitAUR 开发版本。
Dynamips
Dynamips 是旧(已停产)的 Cisco 7200、3700、3600、2600 和 1700 系列路由器的模拟器。
异步传输模式 (ATM) 是唯一无法在 IOU/IOSv 上模拟的技术。 要使用 ATM,您需要使用带有 PA-A1 端口适配器模块的 c7200 平台。
要使用 Dynamips,安装 dynamipsAUR 软件包,或 dynamips-gitAUR 开发版本。
故障排除
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