# switch_config **Repository Path**: hightemple/switch_config ## Basic Information - **Project Name**: switch_config - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-11 - **Last Updated**: 2025-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 交换机配置管理系统 锐捷交换机无损RDMA环境配置生成与命令校验系统 ## 项目概述 基于Django框架开发的锐捷交换机配置管理系统,专为无损RDMA环境配置设计。系统提供配置自动生成和命令合规性校验两大核心功能,支持多种交换机型号和接口速率。 ## 系统特点 - ✅ **无数据库依赖**: 基于JSON配置数据源,完全零数据库架构 - ✅ **轻量级设计**: 纯文件配置系统,无数据持久化烦恼 - ✅ **快速部署**: 标准Django启动,内置系统检查功能 - ✅ **数据驱动**: 基于结构化JSON配置,易于维护和扩展 - ✅ **智能生成**: 支持动态配置组装和参数验证 ## 零数据库设计说明 ### 彻底解决数据库问题 本系统现在采用**完全零数据库**设计: - ❌ **不使用任何数据库**(包括内存数据库) - ❌ **无数据库迁移告警** - ❌ **无CSRF依赖**(简化设计) - ✅ **纯JSON配置系统** - ✅ **轻量级架构** - ✅ **标准Django启动** ### 技术实现 ```python # settings.py 配置 DATABASES = {} # 完全空配置 INSTALLED_APPS = [ 'django.contrib.staticfiles', # 仅静态文件 'crispy_forms', # 表单美化 'crispy_bootstrap5', # Bootstrap支持 'app', # 主应用 ] ``` ### 核心数据存储方式 ``` app/ ├── config_templates/ │ └── switch_commands.json # 统一配置数据源 ├── templates/ # Django模板文件 ├── static/ # 静态资源 └── management/ # 自定义管理命令 └── commands/ └── checkzero.py # 系统检查命令 ``` ### JSON数据源结构 ```json { "metadata": { "version": "1.0", "description": "锐捷交换机无损RDMA配置命令数据源" }, "switch_models": { "S6510": { "name": "S6510 (100G+25G)", "supported_speeds": ["25G", "100G"], "global_config": [...] } }, "interface_speeds": { "25G": { "name": "25G", "config": [...] } } } ``` ## 功能特性 ### 配置生成 - 支持多种锐捷交换机型号(S6510、S6580/S6980、S6990) - 支持多种接口速率(25G、100G、200G、400G、400G TH5) - **参数化DSCP配置**:支持自定义无损队列、CNP队列、TCP队列的DSCP值 - 智能型号与速率兼容性验证 - 动态配置生成,支持多端口批量配置 - 配置文件导出功能 ### 命令校验 - 配置命令语法验证 - 逻辑一致性检查 - 错误定位与建议 ### 🎨 现代化界面 - **响应式设计**:支持桌面和移动端访问 - **Bootstrap 5**:现代化UI设计 - **实时交互**:动态端口管理、型号速率联动 - **用户友好**:直观操作、清晰提示 ## 快速开始 ### 环境要求 - Python 3.8+ - Django 4.2+ - Windows/Linux/macOS ### 安装步骤 1. **克隆项目** ```bash git clone cd switch_config ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **启动系统** ```bash python manage.py runserver 8000 ``` 4. **访问系统** 打开浏览器访问:http://127.0.0.1:8000 ### 启动系统 使用标准Django启动命令: ```bash python manage.py runserver 8000 ``` **系统特性**: - ✅ 自动检查零数据库配置 - ✅ 验证JSON配置数据源 - ✅ 显示系统启动信息 - ✅ 内置完整性检查 **自定义端口**: ```bash python manage.py runserver 8080 ``` **系统检查命令**: ```bash python manage.py checkzero ``` ## 使用指南 ### 配置生成功能 1. **访问配置生成页面** - 点击主页的"配置生成"卡片 - 或直接访问:http://127.0.0.1:8000/config/ 2. **选择交换机型号** - 从下拉列表选择:S6510、S6580/S6980、S6990 - 系统自动加载支持的接口速率 3. **配置端口信息** - 点击"添加端口"按钮 - 输入端口名称(如:GigabitEthernet 0/0/1) - 选择端口速率(动态显示兼容选项) - 可添加多个端口,支持删除操作 4. **获取配置** - 系统自动生成完整配置命令 - 包含详细的中文说明注释 - 点击"复制"按钮复制到剪贴板 - 点击"下载"按钮保存为文本文件 ### 命令校验功能 1. **访问命令校验页面** - 点击主页的"命令校验"卡片 - 或直接访问:http://127.0.0.1:8000/validate/ 2. **输入配置命令** - 在上方文本框输入或粘贴交换机配置命令 - 支持多行命令输入 3. **执行校验** - 点击"校验命令"按钮 - 系统将自动进行四种类型的检查 4. **查看结果** - 下方显示详细的校验结果 - 包含错误统计、问题描述和修改建议 ## 配置文件结构 ### 全局配置 - QoS队列兼容模式 - DRR调度器配置 - **动态DSCP到COS映射** - 队列带宽配置 - **参数化ACL配置** - 流量分类配置 - PFC配置 - ECN和WRED配置 - MMU全局配置 ### 接口配置 - 基础端口配置 - QoS信任配置 - 缓存分配配置 - WRED阈值配置 ## 安装与运行 ### 环境要求 - Python 3.8+ - Django 4.2+ - 其他依赖见 requirements.txt ### 安装步骤 ```bash # 克隆项目 git clone cd switch_config # 安装依赖 pip install -r requirements.txt # 运行开发服务器 python manage.py runserver ``` ### 访问地址 - 系统首页:http://localhost:8000/ - 配置生成:http://localhost:8000/config/ - 命令校验:http://localhost:8000/validate/ ## 项目结构 ``` switch_config/ ├── app/ │ ├── config_templates/ │ │ └── switch_commands.json # 参数化配置数据源 │ ├── templates/ │ │ └── app/ │ │ ├── config_generator.html # 配置生成页面 │ │ └── ... │ ├── utils.py # 配置生成核心逻辑 │ ├── views.py # 视图处理逻辑 │ └── ... ├── docs/ # 文档目录 ├── manage.py # Django管理脚本 └── requirements.txt # 依赖包列表 ``` ## 开发规范 ### 代码规范 - 遵循PEP 8编码规范 - 使用类型提示 - 完善的错误处理 - 详细的代码注释 ### 数据源管理 - JSON配置文件统一管理 - 参数化模板支持 - 版本控制友好 ### 测试规范 - 单元测试覆盖 - 功能测试验证 - 性能测试保障 ## 更新日志 ### v1.1 (2025-07-11) - ✅ 新增DSCP参数化配置功能 - ✅ 支持自定义无损队列、CNP队列、TCP队列DSCP值 - ✅ 更新JSON配置模板,支持占位符替换 - ✅ 增强前端参数验证 - ✅ 完善错误处理和用户提示 ### v1.0 (2025-07-11) - ✅ 基础配置生成功能 - ✅ 多型号交换机支持 - ✅ 命令校验功能 - ✅ JSON数据源架构 - ✅ 响应式Web界面 ## 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 贡献指南 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 联系方式 如有问题或建议,请通过以下方式联系: - 项目Issues:[GitHub Issues](https://github.com/your-repo/switch_config/issues) - 邮箱:your-email@example.com --- **注意**:本系统专为锐捷交换机的无损RDMA环境配置设计,生成的配置基于官方文档和实际验证,但建议在生产环境使用前进行充分测试。 ## DSCP参数化配置 ### 功能说明 系统支持DSCP Trust模式的参数化配置,允许用户自定义: - **无损队列DSCP**:默认值10,映射到队列1 - **CNP队列DSCP**:默认值20,映射到队列2(开启SP) - **TCP队列DSCP**:默认值0,映射到队列3 ### 配置映射 ``` 无损队列 → 队列1 → COS 1 → PFC启用 CNP队列 → 队列2 → COS 2 → SP调度 TCP队列 → 队列3 → COS 3 → 普通调度 ``` ### 使用方法 1. 在配置生成页面选择交换机型号 2. 设置DSCP参数(可选,有默认值) 3. 添加端口配置 4. 生成配置文件