Files
ipam/DEV_PROGRESS.md
T
Your Name bca0da7c7d readme
2026-07-20 13:40:05 +08:00

6.2 KiB

IPAM 项目开发进度

P0 - 核心基础

  • 项目框架搭建 (FastAPI + SQLAlchemy + MySQL)
  • 网段管理 (创建、编辑、删除、查看)
  • IP地址管理 (分页、过滤、搜索、在线状态)
  • ICMP Ping 扫描引擎 (单IP、网段扫描)
  • 数据库模型设计

P1 - 增强功能

  • ARP 扫描 - 二层MAC地址发现
  • 反向 DNS 解析 - 主机名自动获取
  • MAC 厂商识别 - 内置 IEEE OUI 数据库
  • Celery 异步任务 - 后台扫描任务执行
  • SNMP 设备集成 - SNMPv2c/v3 凭证与设备管理,ARP表自动采集
  • 告警与异常检测 - IP冲突、未授权接入、网段耗尽、设备离线等

P2 - 前端界面

  • Vue 3 + Element Plus 基础架构
  • 主布局与路由配置 (侧边栏、顶栏、面包屑)
  • 仪表盘页面 (统计卡片、网段使用率)
  • 网段管理页面 (列表、CRUD、扫描)
  • IP地址管理页面 (筛选、搜索、批量扫描、详情编辑)
  • 扫描管理页面 (手动扫描、任务状态)
  • SNMP管理页面 (设备、凭据、ARP表、接口)
  • 告警中心 (告警列表、确认、解决、MAC白名单)

P3 - 系统增强

  • JWT 用户认证 - 登录、登出、修改密码
  • 权限管理 - 4级角色权限 (super_admin/admin/operator/viewer)
  • 操作审计日志 - 记录所有用户操作、资源变更历史
  • 报表导出 - CSV导出 (IP、网段、告警、设备、ARP表)、汇总统计报表
  • 邮件告警通知 - SMTP邮件发送、告警邮件模板
  • IP历史轨迹记录 - 自动记录IP状态与MAC变化历史

🔧 技术栈

后端

  • FastAPI 0.115
  • SQLAlchemy 2.0
  • MySQL 8.0
  • Celery 5.4 (Redis broker)
  • PySNMP 4.4.12
  • Passlib + bcrypt (密码加密)
  • python-jose (JWT token)

前端

  • Vue 3.5
  • Element Plus 2.9
  • Vue Router 4.4
  • Pinia 2.4 (状态管理)
  • Axios 1.7

📋 API 端点总览

认证 (/api/v1/auth)

  • POST /login - 用户登录获取Token
  • POST /refresh - 刷新访问令牌
  • POST /logout - 登出
  • GET /me - 获取当前用户信息
  • POST /change-password - 修改密码

用户管理 (/api/v1/auth)

  • GET /users - 用户列表
  • GET /users/{id} - 用户详情
  • POST /users - 创建用户
  • PUT /users/{id}/status - 修改用户状态
  • POST /users/{id}/unlock - 解锁用户
  • POST /users/{id}/reset-password - 重置密码
  • DELETE /users/{id} - 删除用户

网段管理 (/api/v1/networks)

  • GET /networks - 网段列表
  • GET /networks/{id} - 网段详情
  • POST /networks - 创建网段
  • PUT /networks/{id} - 更新网段
  • DELETE /networks/{id} - 删除网段
  • GET /networks/{id}/ips - 获取网段下的IP列表
  • POST /networks/{id}/scan - 扫描网段

IP地址管理 (/api/v1/ips)

  • GET /ips - IP列表(支持筛选、搜索)
  • GET /ips/{id} - IP详情
  • PUT /ips/{id} - 更新IP信息
  • POST /ips/{id}/scan - 扫描单个IP

告警管理 (/api/v1/alerts)

  • GET /alerts - 告警列表
  • POST /alerts/detect/run - 运行所有检测
  • POST /alerts/{id}/acknowledge - 确认告警
  • POST /alerts/{id}/resolve - 解决告警
  • POST /alerts/{id}/ignore - 忽略告警
  • GET /alerts/statistics - 告警统计

MAC白名单 (/api/v1/alerts)

  • GET /whitelist/macs - 获取白名单
  • POST /whitelist/macs - 添加MAC到白名单
  • DELETE /whitelist/macs/{id} - 从白名单移除

SNMP管理 (/api/v1/snmp)

  • GET /credentials - 凭据列表
  • POST /credentials - 创建凭据
  • PUT /credentials/{id} - 更新凭据
  • DELETE /credentials/{id} - 删除凭据
  • GET /devices - 设备列表
  • POST /devices - 创建设备
  • POST /devices/{id}/test - 测试连接
  • POST /devices/{id}/poll - 立即轮询
  • GET /arp-entries - ARP表
  • GET /statistics - SNMP统计

审计日志 (/api/v1/audit)

  • GET /logs - 审计日志列表
  • GET /logs/my - 当前用户操作日志
  • GET /logs/resource/{type}/{id} - 资源操作历史
  • GET /statistics - 审计统计
  • DELETE /clean - 清理旧日志

报表导出 (/api/v1/reports)

  • GET /ip-addresses/csv - 导出IP地址CSV
  • GET /networks/csv - 导出网段汇总CSV
  • GET /alerts/csv - 导出告警CSV
  • GET /snmp-devices/csv - 导出SNMP设备CSV
  • GET /arp-table/csv - 导出ARP表CSV
  • GET /summary - IPAM汇总统计报表

🔐 角色权限矩阵

权限\角色 viewer operator admin super_admin
查看所有数据
编辑IP信息
执行扫描
网段管理
SNMP配置
导出报表
用户管理
审计日志查看
系统设置

🚀 部署启动

后端启动

cd /root/ipam/backend
source venv/bin/activate

# 启动 API 服务
uvicorn app.main:app --host 0.0.0.0 --port 8008

# 启动 Celery Worker
celery -A app.tasks.celery_app worker --loglevel=info --concurrency=4

前端启动

cd /root/ipam/frontend
npm install
npm run dev

默认管理员

  • 用户名: admin
  • 密码: admin123

📊 数据库表结构

表名 说明 条数
networks 网段表 3
ip_addresses IP地址表 1530
scan_tasks 扫描任务表 -
snmp_credentials SNMP凭据表 -
network_devices SNMP设备表 -
arp_entries ARP记录表 -
mac_address_table MAC地址表 -
device_interfaces 设备接口表 -
alerts 告警表 -
alert_rules 告警规则表 -
whitelisted_macs MAC白名单表 -
users 用户表 1
permissions 权限表 -
role_permissions 角色权限关联表 -
refresh_tokens 刷新令牌表 -
audit_logs 审计日志表 -

🎯 项目完成度

阶段 进度 状态
P0 - 核心基础 100% 完成
P1 - 增强功能 100% 完成
P2 - 前端界面 100% 完成
P3 - 系统增强 100% 完成

总体完成度: 100% 🎉