GNS3 实战:从零搭建 VPCS + 交换机 + NAT 上网实验拓扑(附环境排错全记录)

本文记录在 Windows 版 GNS3 2.2.61 上搭建「VPCS 主机互连 + NAT 访问外网」实验拓扑的完整过程,包含 VPCS/Dynamips/uBridge 路径缺失、NAT 接口报错等典型坑的修复方法,适合刚装好 GNS3 却跑不起实验的读者。

背景

GNS3 装好后,不装任何路由器镜像也可以做基础网络实验:用内置的 VPCS(轻量虚拟 PC)+ 以太网交换机 + NAT 节点,就能练习 IP 配置、ping 测试、验证主机出网。但全新安装的 GNS3 常常连 VPCS 都启动不了,本文先把实验搭起来,再逐一复盘踩过的坑。

最终拓扑:

                 NAT1(绑定物理网卡)
                       |
                    Ethernet2
   PC1 ──Ethernet0─[ SW1 ]─Ethernet1── PC2
192.168.110.231/24        192.168.110.232/24

一、创建项目与节点

新建项目 lab-basic-nat,拖入 4 个节点(均为 GNS3 内置模板,无需额外镜像):

节点模板作用
PC1 / PC2VPCS虚拟主机,支持静态 IP / DHCP / ping
SW1Ethernet switch8 口二层交换机
NAT1NAT桥接到宿主机物理网卡,提供出网通道

连线关系:

  • PC1 Ethernet0 → SW1 Ethernet0
  • PC2 Ethernet0 → SW1 Ethernet1
  • NAT1 nat0 → SW1 Ethernet2

二、配置 IP 并验证连通性

打开 PC1 控制台(VPCS 是 telnet 控制台),配置静态地址:

# PC1
ip 192.168.110.231/24 192.168.110.1
save

# PC2
ip 192.168.110.232/24 192.168.110.1
save

验证三层结果:

PC1> ping 192.168.110.232     # 主机互连(经 SW1)
84 bytes from 192.168.110.232 icmp_seq=1 ttl=64 time=0.776 ms

PC1> ping 192.168.110.1       # 到达真实网络网关(经 NAT1 桥接)
84 bytes from 192.168.110.1 icmp_seq=1 ttl=64 time=6.862 ms

PC1> ping 223.5.5.5           # 访问公网
84 bytes from 223.5.5.5 icmp_seq=1 ttl=53 time=9.809 ms

三条全通,实验目标达成。

提示:VPCS 也支持 ip dhcp 自动获取地址——前提是 NAT 桥接的那个真实网络里有 DHCP 服务且允许新设备接入。本次环境 DHCP 未分配到地址(可能有准入控制),故改用静态 IP。

三、环境排错全记录(重点)

全新安装的 GNS3 很可能一个节点都起不来,以下是本次实际遇到并解决的 4 个问题。

1. No path to a VPCS executable has been set

server 不知道 vpcs.exe 在哪。编辑 %APPDATA%\GNS3\2.2\gns3_server.ini 补上模块配置,注意 section 名必须是 [VPCS] / [Dynamips],写在 [Server] 下无效:

[VPCS]
vpcs_path = D:\GNS3\vpcs\vpcs.exe

[Dynamips]
dynamips_path = D:\GNS3\dynamips\dynamips.exe

改完重启 gns3server 生效。同理,Could not find Dynamips(内置交换机依赖 Dynamips)也是这个问题。

2. Could not determine uBridge version

uBridge 是 GNS3 二层转发的核心进程,所有以太网链路(包括 VPCS 互连)都经过它。手动执行 ubridge.exe -v 发现直接闪退,退出码 -10737415150xC0000135,DLL 缺失)。它缺两个依赖:

  • cyggcc_s-1.dll:从 GNS3\cpulimit\ 目录复制一份到 GNS3\ubridge\ 即可
  • 32 位 wpcap.dll / Packet.dll:ubridge 是 32 位程序,需要 C:\Windows\SysWOW64\ 下的 32 位 WinPcap 库。系统只装了 64 位,重装 WinPcap 4.1.3WinPcap_4_1_3.exe /S 静默安装)补齐

修复后 ubridge.exe -v 正常输出 ubridge version 0.9.16

3. NAT interface vmnet8 is missing

NAT 节点默认绑定 VMware 的 vmnet8 虚拟网卡,没装 VMware 就报这个错。在 gns3_server.ini[Server] 段指定一块真实网卡:

[Server]
default_nat_interface = 以太网 2

接口名必须与 ipconfig 里看到的名称一致(支持中文)。注意 ini 文件必须保存为 UTF-8 编码,GNS3 用 utf-8 解析,GBK 保存中文会导致 server 启动直接崩溃。

4. 重启 server 后 API 401

如果 GUI 以 --local 模式拉起 server,localhost 连接免认证;手动重启时记得带上相同参数,并把 ini 里的 auth 置为 False(仅限本机使用场景):

Stop-Process -Name gns3server -Force
Start-Process "D:\GNS3\gns3server.exe" -ArgumentList '--local','--config','C:\Users\Administrator\AppData\Roaming\GNS3\2.2\gns3_server.ini'

小结

  • 内置模板(VPCS / Ethernet switch / NAT)足够完成基础连通性实验,零镜像成本
  • VPCS 起不来 → 检查 ini 的 [VPCS] section 路径;交换机加不了 → 检查 [Dynamips]
  • 一切以太网链路都依赖 uBridge,它坏了所有实验都跑不通;32 位程序需要 SysWOW64 里的 wpcap.dll
  • NAT 节点本质是桥接宿主机网卡,default_nat_interface 指向能上网的那块物理网卡即可
  • 改 ini 注意两点:UTF-8 编码、键要放对 section

更多推荐