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 / PC2 | VPCS | 虚拟主机,支持静态 IP / DHCP / ping |
| SW1 | Ethernet switch | 8 口二层交换机 |
| NAT1 | NAT | 桥接到宿主机物理网卡,提供出网通道 |
连线关系:
- PC1 Ethernet0 → SW1 Ethernet0
- PC2 Ethernet0 → SW1 Ethernet1
- NAT1 nat0 → SW1 Ethernet2
二、配置 IP 并验证连通性
打开 PC1 控制台(VPCS 是 telnet 控制台),配置静态地址:
bash
# PC1
ip 192.168.110.231/24 192.168.110.1
save
# PC2
ip 192.168.110.232/24 192.168.110.1
save
验证三层结果:
bash
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] 下无效:
ini
[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 发现直接闪退,退出码 -1073741515(0xC0000135,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.3 (WinPcap_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] 段指定一块真实网卡:
ini
[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(仅限本机使用场景):
powershell
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