GNS3 网络模拟器¶
本文记录在 CentOS 7 上快速部署一套 GNS3 服务的过程。
🖥️环境¶
Static hostname: BsaControl
Icon name: computer-server
Chassis: server
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.el7.x86_64
Architecture: x86-64
🚀部署流程¶
gns3.py3.6.site-packages.tar.gz · QEMU · gns3_server.conf · gns3server。安装依赖与 QEMU,改配置并启动。
flowchart LR
A[安装 Python 3.6] --> B[安装 Python 依赖库]
B --> C[安装 QEMU]
C --> D[修改 gns3_server.conf]
D --> E[启动 gns3server]
E --> F[客户端 / Web 访问 3080]
1. 安装 Python 3.6¶
略。
2. 安装 Python 依赖库¶
将准备好的压缩包中的 gns3.py3.6.site-packages.tar.gz 解压,复制到 Python 3.6 的库目录(各机器不同)。例如本机为 /usr/local/lib64/python3.6/site-packages。
3. 安装 QEMU¶
QEMU 是一款高效的模拟器及虚拟机监管器(VMM),主要提供两种功能:
| 功能 | 说明 |
|---|---|
| 用户态模拟器 | 利用动态代码翻译机制执行不同于主机架构的代码 |
| 虚拟机监管器 | 模拟全系统,利用其他 VMM(Xen、KVM 等)使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机 |
yum makecache
yum install -y qemu*
# 或
yum install -y qemu-guest-agent.x86_64 qemu-img.x86_64 qemu-kvm.x86_64 \
qemu-kvm-common.x86_64 qemu-kvm-tools.x86_64 libvirt-lock-sanlock.x86_64
yum 库可能比预期少很多包
实际由于 yum 库的原因,makecache 时可能比预期少很多包,因此推荐直接将压缩包 bin 目录下以 qemu 开头的二进制文件复制到宿主机的 /bin 目录下。
4. 修改启动配置¶
修改压缩包 .config/GNS3/2.2/ 目录下的 gns3_server.conf:
gns3_server.conf
host = <改为本机IP>
images_path = <修改为镜像存储目录;建议使用大容量磁盘>
projects_path = <修改为项目目录;建议使用大容量磁盘>
report_errors = True
auth = True
user = <web的登录名>
password = <web的登录密码>
将目录下的所有文件复制到 $HOME/.config/GNS3/2.2/,如无该目录需手动创建。
5. 启动服务器¶
创建文件 /usr/local/bin/gns3server,写入以下内容并附加可执行权限:
gns3server
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'gns3-server==2.2.17','console_scripts','gns3server'
__requires__ = 'gns3-server==2.2.17'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(
load_entry_point('gns3-server==2.2.17', 'console_scripts', 'gns3server')()
)
启动服务:
此时可以使用客户端或 Web 访问宿主机 3080 端口。
🟢排障¶
mountnfs.sh · NFS 220 挂载。首次拖入下载模板、工程「不见了」的处理。
首次拖入机器会下载模板
工程新建后首次拖入机器失败时,会从远程服务器下载模板,根据模板大小耗时 10s ~ 20min 不等,请耐心等待,不要反复尝试。