README
🚀 GNS3网络模拟器MCP服务器
这是一款由人工智能驱动的GNS3网络模拟MCP服务器,借助模型上下文协议(MCP),可实现网络拓扑的创建、管理和模拟控制,彻底改变网络工程工作流程。
🚀 快速开始
前提条件
- GNS3服务器:运行在
http://localhost:3080(默认) - Python 3.8+:已安装
- Gemini CLI:已安装并配置
快速启动(30秒)
# 1. 克隆/下载MCP服务器
git clone <repository-url>
cd gns3-mcp-server
# 2. 安装依赖项(首次运行时自动安装)
python -m pip install fastmcp httpx pydantic
# 3. 添加到Gemini CLI
gemini mcp add gns3 "path/to/gns3-mcp-server/run.bat"
# 4. 测试连接
gemini "List all GNS3 projects"
🎉 完成!现在你可以开始使用人工智能驱动的网络工程啦!
✨ 主要特性
🤖 以人工智能为先的网络工程
- 自然语言构建网络:用简单的英语描述你的网络,让人工智能为你构建。
- 智能拓扑设计:人工智能根据需求建议最佳网络架构。
- 自动配置:自动生成设备配置。
- 智能故障排除:由人工智能驱动的网络诊断和调试。
🔥 可用于生产环境的特性
- 12个综合工具:完整集成GNS3 API。
- 实时操作:实时控制网络模拟。
- 多平台支持:支持Windows、macOS、Linux。
- 企业级安全:提供身份验证和安全连接。
- 高性能:通过连接池实现异步操作。
📦 安装指南
前提条件
- GNS3服务器:运行在
http://localhost:3080(默认) - Python 3.8+:已安装
- Gemini CLI:已安装并配置
快速启动(30秒)
# 1. 克隆/下载MCP服务器
git clone <repository-url>
cd gns3-mcp-server
# 2. 安装依赖项(首次运行时自动安装)
python -m pip install fastmcp httpx pydantic
# 3. 添加到Gemini CLI
gemini mcp add gns3 "path/to/gns3-mcp-server/run.bat"
# 4. 测试连接
gemini "List all GNS3 projects"
🎉 完成!现在你可以开始使用人工智能驱动的网络工程啦!
💻 使用示例
基础用法
示例1:完整的网络设置
# 通过AI对话构建完整的企业网络
gemini "I need to create a test environment for a multi-branch office network"
# AI响应并创建项目
gemini "Creating project 'Multi_Branch_Test' now..."
# AI添加网络设备
gemini "Adding devices: HQ Router, Branch1 Router, Branch2 Router, switches, and endpoints..."
# AI以正确的拓扑连接设备
gemini "Connecting devices with appropriate links and configuring interfaces..."
# AI启动模拟
gemini "Starting network simulation to verify connectivity..."
示例2:网络故障排除
# AI辅助的网络诊断
gemini "My network between routers R1 and R2 has connectivity issues"
# AI提供诊断序列
gemini "Running traffic capture on the link... Analyzing traffic patterns... Checking device status..."
# AI给出建议
gemini "Issue detected: Interface Gi0/0 on R1 shows high packet loss. Suggestion: Check cable connections and restart interface."
示例3:网络架构设计
# AI驱动的网络设计
gemini "Design a secure network for 1000 users with internet access and VPN"
# AI提供优化的拓扑
gemini "Designing hierarchical network with firewall, core switches, access switches, and VPN gateway..."
📚 详细文档
完整功能矩阵
| 类别 | 工具 | 功能 | 用例 | |--------------|-----------|------------------|---------------| | 项目管理 | 3个工具 | 创建、列出、打开项目 | 实验室设置、项目组织 | | 拓扑构建器 | 4个工具 | 添加节点、链接、配置设备 | 网络设计、架构规划 | | 模拟控制 | 2个工具 | 启动/停止模拟 | 网络测试、验证 | | 分析工具 | 3个工具 | 流量捕获、拓扑分析 | 性能监控、调试 |
可用的MCP工具
🔧 项目管理套件
gns3_list_projects:列出所有GNS3项目并显示详细状态信息
gemini "Show me all my GNS3 projects and their status"
特性:
-
完整的项目清单
-
状态监控(运行、停止、暂停)
-
文件大小和位置
-
最后修改时间戳
-
每个项目的设备数量
-
gns3_create_project:以编程方式创建新的GNS3项目
gemini "Create a new project called 'AI_Network_Lab' for testing"
参数:
-
name:项目名称 -
auto_delete:关闭时自动删除项目 -
auto_close:关闭时自动关闭项目 -
gns3_open_project:打开现有项目进行修改
gemini "Open the project with ID 'abc123'"
🏗️ 网络拓扑构建器
gns3_add_node:向拓扑中添加网络设备
gemini "Add a Cisco 2821 router named 'R1' to the topology"
支持的设备类型:
- 路由器:
cisco_ios、cisco_c7200、cisco_3745、arista_vEOS、juniper_vmx - 交换机:
cisco_iosv、cisco_c3725、multilayer_switch - 端点:
vpcs、cloud、docker、virtualbox、vmware - 安全设备:
paloalto_panos、fortinet_fortigate
高级特性:
-
自定义位置(x, y坐标)
-
控制台类型配置
-
自定义属性和元数据
-
基于模板的部署
-
gns3_add_link:用各种链接类型连接网络设备
gemini "Connect R1 to R2 with an Ethernet link"
链接类型:
-
ethernet:标准以太网连接 -
serial:带时钟速率的串行连接 -
console:控制台连接 -
custom:用户定义的链接类型 -
gns3_configure_device:配置设备设置和参数
gemini "Configure R1 with IP 192.168.1.1/24 on interface Gi0/0"
配置选项:
- 接口IP地址
- 路由协议(OSPF、EIGRP、BGP)
- VLAN配置
- 访问控制列表
- QoS策略
⚡ 模拟控制
gns3_start_simulation:启动网络模拟并完全控制节点
gemini "Start the simulation for project 'abc123'"
功能:
-
同时启动所有设备
-
选择性启动设备
-
后台处理
-
实时状态更新
-
gns3_stop_simulation:优雅地停止模拟
gemini "Stop the current simulation"
📊 网络分析工具
gns3_capture_traffic:捕获和分析网络流量
gemini "Start traffic capture on the link between R1 and R2"
分析特性:
-
实时数据包捕获
-
协议过滤(HTTP、TCP、UDP、ICMP)
-
流量统计
-
导出功能
-
gns3_get_topology:检索全面的拓扑信息
gemini "Show me the current network topology with all connections"
提供的信息:
-
设备清单
-
链接映射
-
网络统计
-
健康状态
-
gns3_save_project:保存项目并可选择创建快照
gemini "Save the current project with a checkpoint"
gns3_export_project:导出项目以进行共享或备份
gemini "Export the project to 'network_lab_backup.zip'"
高级配置
环境变量
# 设置自定义GNS3服务器
export GNS3_SERVER_URL="http://192.168.1.100:3080"
# 配置身份验证
export GNS3_USERNAME="admin"
export GNS3_PASSWORD="secure_password"
# SSL/TLS设置
export GNS3_VERIFY_SSL="false"
自定义模板
创建设备模板以实现快速部署:
{
"name": "Enterprise_Router",
"device_type": "cisco_ios",
"default_config": {
"interfaces": [
{"name": "Gi0/0", "ip": "10.0.0.1/24"},
{"name": "Gi0/1", "ip": "192.168.1.1/24"}
],
"routing": {
"protocol": "ospf",
"area": "0"
}
}
}
性能调优
# 异步配置以实现高性能操作
config = {
"connection_pool_size": 20,
"request_timeout": 30,
"retry_attempts": 3,
"concurrent_operations": 10
}
系统要求
最低要求
- CPU:2核,2.0 GHz
- RAM:4 GB
- 存储:500 MB可用空间
- 网络:1 Mbps互联网连接
生产环境推荐配置
- CPU:4核及以上,3.0 GHz及以上
- RAM:8 GB及以上
- 存储:2 GB及以上SSD
- 网络:10 Mbps及以上互联网连接
支持的平台
- ✅ Windows 10/11 (x64)
- ✅ macOS 10.15+ (Intel/Apple Silicon)
- ✅ Ubuntu 18.04+ (x64/ARM64)
- ✅ CentOS 7/8 (x64)
- ✅ Docker (Linux容器)
故障排除指南
常见问题及解决方案
- 问题:“连接失败”
# 解决方案1:检查GNS3服务器是否正在运行
# 解决方案2:验证服务器URL
# 解决方案3:检查防火墙设置
gemini "Ping the GNS3 server to check connectivity"
- 问题:“未找到设备模板”
# 解决方案:验证设备模板是否已安装在GNS3中
# 使用GNS3 GUI导入模板
- 问题:“身份验证失败”
# 解决方案:检查环境变量中的用户名/密码
export GNS3_USERNAME="your_username"
export GNS3_PASSWORD="your_password"
- 问题:“超出速率限制”
# 解决方案:等待配额重置或升级API计划
# 当前速率限制:每小时1000个请求
调试模式
启用调试日志记录:
export GNS3_MCP_DEBUG=1
gemini "Debug information: Show current GNS3 server status"
各行业用例
🏫 教育行业
- 网络实验室:为学生自动设置实验室环境
- 课程设置:提供交互式网络工程练习
- 评估:自动对网络配置进行评分
🏢 企业行业
- 网络测试:部署前的测试环境
- 培训:员工网络认证培训
- 概念验证:快速验证网络解决方案
🛡️ 安全行业
- 渗透测试:安全的测试环境
- 安全培训:红队演练
- 漏洞研究:可控的测试环境
🏭 电信行业
- 协议测试:多厂商互操作性测试
- 服务部署:生产前测试
- 性能基准测试:网络优化
🔧 技术细节
系统组件
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Gemini CLI │◄──►│ GNS3 MCP Server │◄──►│ GNS3 Server │
│ │ │ │ │ │
│ • AI Interface │ │ • 12 MCP Tools │ │ • REST API │
│ • Tool Discovery│ │ • Async Client │ │ • WebSocket │
│ • JSON-RPC │ │ • Error Handling │ │ • Real-time │
└─────────────────┘ └──────────────────┘ └─────────────────┘
协议流程
- 工具发现:Gemini CLI发现所有可用的MCP工具
- 请求处理:将用户请求映射到特定的MCP工具
- API转换:MCP工具将请求转换为GNS3 REST API调用
- 响应处理:将GNS3响应转换为用户友好的格式
- 实时更新:通过WebSocket连接提供实时状态更新
安全架构
🔐 身份验证流程
├── 用户名/密码
├── 基于令牌的身份验证
├── SSL/TLS加密
└── 速率限制
性能指标
操作时间(典型值)
- 列出项目:约200ms
- 创建项目:约500ms
- 添加网络设备:约300ms
- 创建链接:约250ms
- 启动模拟:约1 - 2秒
- 流量捕获:实时
吞吐量
- 并发操作:10个同时请求
- 每日操作:10,000个以上请求
- 正常运行时间:99.9%可用性
资源使用情况
- CPU:正常运行期间<2%
- RAM:基线约100MB
- 网络:API调用时<1Mbps
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
🔬 技术架构
系统组件
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Gemini CLI │◄──►│ GNS3 MCP Server │◄──►│ GNS3 Server │
│ │ │ │ │ │
│ • AI Interface │ │ • 12 MCP Tools │ │ • REST API │
│ • Tool Discovery│ │ • Async Client │ │ • WebSocket │
│ • JSON-RPC │ │ • Error Handling │ │ • Real-time │
└─────────────────┘ └──────────────────┘ └─────────────────┘
协议流程
- 工具发现:Gemini CLI发现所有可用的MCP工具。
- 请求处理:用户请求映射到特定的MCP工具。
- API转换:MCP工具将请求转换为GNS3 REST API调用。
- 响应处理:GNS3响应转换为用户友好的格式。
- 实时更新:通过WebSocket连接提供实时状态更新。
安全架构
🔐 身份验证流程
├── 用户名/密码
├── 基于令牌的身份验证
├── SSL/TLS加密
└── 速率限制
📈 性能指标
操作时间(典型值)
- 列出项目:~200ms
- 创建项目:~500ms
- 添加网络设备:~300ms
- 创建链接:~250ms
- 启动模拟:~1 - 2秒
- 流量捕获:实时
吞吐量
- 并发操作:10个同时请求
- 每日操作:10,000+请求
- 正常运行时间:99.9%可用性
资源使用情况
- CPU:正常操作期间<2%
- RAM:~100MB基线
- 网络:API调用时<1Mbps
🤝 社区与支持
文档
社区
- 💬 Discord:加入我们的社区
- 📧 邮箱:support@gns3-mcp.dev
- 🐛 问题反馈:GitHub Issues
- 📝 博客:gns3-mcp.dev/blog
贡献
我们欢迎贡献!详情请参阅贡献指南。
🚀 未来规划
即将推出的功能
- [ ] 多区域支持:全球GNS3服务器管理
- [ ] 人工智能优化:机器学习驱动的拓扑建议
- [ ] 高级分析:网络性能分析
- [ ] 模板市场:社区驱动的设备模板
- [ ] 云集成:支持基于云的GNS3服务器
路线图
Q1 2025: 多区域支持
Q2 2025: 人工智能优化引擎
Q3 2025: 高级分析仪表板
Q4 2025: 模板市场上线
扫码联系在线客服