1
0

36 Cometimentos

Autor(a) SHA1 Mensagem Data
Your Name 6e1b010c17 feat: 优化拓扑匹配策略,修复环路问题
- 禁用端口号匹配策略(策略6),避免产生错误连接和环路
- 保留精确匹配策略:MAC精确匹配、MAC前缀匹配、子网匹配
- 优化虚拟机邻居过滤(过滤9844、9400等虚拟机MAC前缀)
- 实现设备间去重逻辑(同一对设备只保留一条边)

最终拓扑结构:
- 5个节点,4条边
- 防火墙(172.16.8.1)  核心交换机(172.16.8.6)
- 核心交换机(172.16.8.6)  接入交换机(172.16.8.8/9/10)
- 星型拓扑,无环路
2026-04-26 06:16:15 +08:00
Your Name e2f804ac52 feat: 增强拓扑匹配算法,支持多重匹配策略
- 添加5重匹配策略:IP直连、主机名、MAC地址、子网匹配、接口描述
- 实现智能子网匹配:仅当网段只有2台设备时才使用(避免歧义)
- 修复JSON配置文件尾随逗号问题
- 修复devices.json解析错误
- 优化邻居匹配逻辑,提升拓扑连接准确性

修复问题:
- 解决LLDP邻居MAC无法匹配设备的问题
- 解决ARP表解析返回0条记录的问题
- 解决设备之间无法建立拓扑连接的问题

当前成果:
- 5个设备节点正确显示
- 3条拓扑边正确建立(172.16.8.6↔172.16.8.1, 172.16.8.8↔172.16.8.6, 172.16.8.9↔172.16.8.6)
2026-04-26 05:45:00 +08:00
Your Name 6d2323b5b6 feat: enhance H3C LLDP parser to support verbose format with System name and Management address
- Add support for LLDP verbose output format (display lldp neighbor-information verbose)
- Parse System name field for accurate device hostname matching
- Parse Management address field for IP-based neighbor identification
- Handle edge cases: endpoint devices without System name (fallback to MAC)
- Handle Port ID as MAC address (not interface name) for endpoint devices
- Add detailed debug logging for LLDP neighbor parsing
- Implement three-level fallback strategy: System name > Management IP > MAC address

This fixes the topology auto-linking issue where only 1 link was created despite having neighbor data.
2026-04-26 03:56:04 +08:00
Your Name 24263a7439 Debug: 增强拓扑构建调试日志和MAC地址标准化
- 打印所有设备的MAC地址数据库
- 详细输出每个邻居的匹配过程
- 添加normalizeMAC函数标准化MAC地址格式
- 解决MAC地址格式不一致导致匹配失败的问题
2026-04-26 03:39:01 +08:00
Your Name 4d3b737e2d Fix: 使用分隔符标记提取单个命令输出
- 在Shell模式中插入分隔符标记命令边界
- 解决累积输出包含之前命令回显的问题
- display interface等待8秒,lldp等待3秒
2026-04-26 03:23:28 +08:00
Your Name 87d233659c Feat: 使用Shell模式执行命令
- 实现ExecuteCommands使用Shell模式,在同一个会话中顺序执行
- 解决H3C设备session.Run后EOF断开问题
- 增加cleanCommandOutput清理命令回显和版权信息
- display interface等待5秒,其他命令等待2秒
2026-04-26 03:19:10 +08:00
Your Name 4edc1b67fc Fix: 清理SSH客户端代码并增加命令延迟到2秒
- 移除所有残留的Shell模式代码
- 使用简洁的session.Run模式
- 命令间延迟从500ms增加到2秒,防止H3C速率限制
- 超时时间设置为30秒
2026-04-26 03:11:07 +08:00
Your Name db161fa3f2 Fix: 使用display interface brief替代ip interface brief
- 交换机使用VLAN互联,应该使用display interface brief
- 移除ARP表依赖,直接使用LLDP邻居信息
- 简化命令列表从6个减少到5个
2026-04-26 03:06:15 +08:00
Your Name c311a570da Fix: 添加命令间500毫秒延迟防止H3C设备速率限制
- 每个SSH命令执行后等待500毫秒
- 解决命令交替返回0字节的问题
2026-04-26 02:45:50 +08:00
Your Name a9fcb47ef5 Fix: 添加time包导入 2026-04-26 02:43:29 +08:00
Your Name c34b29d32c Fix: 增加SSH超时时间和详细日志
- 超时从10秒增加到30秒
- 添加每个命令执行的详细日志
- 便于诊断LLDP命令返回0字节的问题
2026-04-26 02:41:36 +08:00
Your Name c93d75b37d Debug: 添加screen-length disable命令输出调试 2026-04-26 02:14:11 +08:00
Your Name af8bf21a46 Debug: 增强H3C防火墙接口输出调试
- 输出小于1000字节的完整内容
- 便于诊断防火墙接口解析问题
2026-04-26 02:13:09 +08:00
Your Name 0d92ff8ef0 Fix: 修正H3C解析器输出索引
- outputs[4] 是 display lldp neighbor-information
- outputs[5] 是 display arp
- 修正后邻居和ARP表解析正确
2026-04-26 02:05:06 +08:00
Your Name 21326b6731 Fix: 添加screen-length disable命令并恢复SSH客户端
- 在H3C命令列表最前面添加screen-length disable
- 恢复SSH客户端为原始简单模式(session.Run)
- 修正解析器输出索引适配新命令列表
2026-04-26 01:58:23 +08:00
Your Name 7e21e60852 Debug: 添加H3C接口输出调试日志
- 在解析器中输出display interface原始数据
- 便于诊断接口为空的问题
2026-04-26 01:54:16 +08:00
Your Name 945695d210 Feat: 支持H3C/华为设备分页禁用
- 使用Shell模式替代Run模式执行命令
- 自动发送screen-length disable禁用分页
- 清理输出中的命令回显和分页提示
- 解决display interface输出为空的问题
2026-04-26 01:39:01 +08:00
Your Name a2505cfe44 Fix: 统一日志术语并清理重复注释
- database -> storage
- 移除重复的Neighbor注释
2026-04-26 01:24:00 +08:00
Your Name 096e752459 Feat: 添加详细的MAC地址解析调试日志
- 输出邻居MAC解析详情
- 输出每个接口的MAC地址状态
- 输出收集的MAC地址总数
- 帮助诊断为什么MAC地址为空
2026-04-26 01:20:00 +08:00
Your Name c28c6ad128 Feat: 添加详细调试日志输出拓扑构建过程
- 输出每个设备的邻居数量和MAC地址数量
- 输出邻居匹配过程(IP/主机名/MAC)
- 输出匹配失败的详细信息
- 输出创建的连线详情
2026-04-26 01:16:17 +08:00
Your Name 6771858c40 Feat: 支持通过MAC地址进行邻居匹配和拓扑连线
- Neighbor模型添加RemoteMAC字段
- Device模型添加MACAddresses字段
- H3C解析器保存邻居MAC地址和设备所有接口MAC
- 拓扑构建支持三层匹配: IP -> 设备名 -> MAC地址
- 即使ARP表获取失败也能通过MAC地址自动连线
2026-04-26 01:08:14 +08:00
Your Name 872ebc0376 Fix: 修复存储文件名和拓扑构建逻辑
- 修正存储文件名: network-topology.db -> devices.json
- 移除handleGetDevices中的重复builder重建逻辑
- 移除冗余的调试日志输出
- 统一日志术语: database -> storage
- 确保添加设备时正确更新builder和存储
2026-04-26 00:57:24 +08:00
Your Name 30b05709eb Fix: 修正H3C ARP表解析器适配真实输出格式
- 修正标题行匹配: Type: (带冒号)
- 跳过IP address标题行
- 适配真实ARP表格式: IP MAC VLAN Interface Aging Type
- 正确解析MAC到IP映射
2026-04-26 00:50:27 +08:00
Your Name 4abfd0716e Fix: 修正H3C接口解析器适配真实输出格式
- 支持接口名和状态分两行的格式
- 修正MAC地址正则: hardware address: (不是Hardware address is)
- 修正IP地址正则: Internet address: x.x.x.x/24 (CIDR格式)
- 添加CIDR到子网掩码转换函数
- 支持多种接口类型前缀匹配
2026-04-26 00:49:06 +08:00
Your Name 8b7dbf2886 Fix: 替换SQLite为JSON文件存储,无需CGO支持
- 移除go-sqlite3依赖,改用纯Go的JSON文件存储
- 解决Windows上CGO_ENABLED=0导致SQLite无法使用的问题
- 添加线程安全的读写锁保护
- 支持数据持久化,重启后数据不丢失
- 简化存储逻辑,提高可靠性
2026-04-26 00:46:37 +08:00
Your Name e5e624d72e Fix: 添加详细调试日志诊断拓扑连线问题
- 在拓扑构建时输出每个设备的邻居详情
- 显示邻居的RemoteIP、RemoteDevice、接口信息
- 从数据库加载设备后重建拓扑确保连线正确
- 帮助诊断为什么邻居无法自动连线
2026-04-26 00:33:42 +08:00
Your Name 84724995b8 Fix: 优化H3C ARP表解析和邻居关联
- 使用display arp命令(已验证可用)
- ARP命令失败时不影响其他数据采集
- 添加详细日志显示ARP条目数量
- 如果ARP表中找不到IP,使用MAC地址作为邻居标识
- 容错处理:ARP表为空时继续处理邻居信息
2026-04-26 00:20:43 +08:00
Your Name 86545fd4cb Debug: 添加详细日志以诊断设备列表和数据显示问题
- 添加设备时记录接口和邻居数量
- 获取设备列表时记录返回数量
- 数据库保存成功/失败都有明确日志
- 创建API测试脚本便于调试
2026-04-26 00:12:08 +08:00
Your Name 3c4ede7a59 Fix: 修正H3C LLDP邻居解析,使用ARP表映射MAC到IP
- 根据实际输出格式重写解析器
- 添加display arp命令获取MAC-IP映射
- 通过ChassisID(MAC)在ARP表中查找对应IP
- 正确提取本地接口和远程接口信息
- 实现MAC地址到IP地址的自动关联
2026-04-25 23:58:19 +08:00
Your Name 32fadd9a7e Feat: 添加SQLite数据库持久化和设备列表显示
- 使用SQLite存储设备数据,重启后数据不丢失
- 添加 /api/devices 接口获取所有设备
- 前端显示完整的设备列表(含接口数、邻居数)
- 设备添加/扫描后自动刷新列表
- 启动时从数据库加载设备到拓扑构建器
2026-04-25 23:42:02 +08:00
Your Name 95ab5e0fdb Fix: 修正H3C设备LLDP邻居发现命令
- 将 'display lldp neighbor-list' 改为 'display lldp neighbor-information'
- 重写解析函数以适配新命令的输出格式
- 正确提取邻居设备名称、IP、接口信息
2026-04-25 23:20:58 +08:00
Your Name 4dc0b3100f Feat: 优化拓扑节点显示为'主机名+IP地址'格式
- 前端显示两行: 第一行主机名,第二行IP地址
- 增加节点尺寸以适应更多文本
- 启用文本自动换行
- 后端确保主机名不为空
2026-04-25 23:13:36 +08:00
Your Name 3de2668286 Fix: 增强SSH会话管理和错误处理
- 添加会话创建重试机制(最多3次)
- 允许部分命令失败而不中断整个扫描
- 改进错误提示和日志输出
- 解决H3C设备LLDP命令会话拒绝问题
2026-04-25 23:00:23 +08:00
Your Name 5f66f0be00 Fix: 添加go.sum文件解决依赖问题
- 生成go.sum依赖锁定文件
- 从.gitignore移除go.sum排除
- 确保其他人克隆后可以正常编译
2026-04-25 22:53:46 +08:00
Your Name 90d2a230a3 Fix: 解决Win10中文乱码和编译路径问题
- 将批处理脚本改为英文输出
- 添加UTF-8编码支持(chcp 65001)
- 添加go.mod存在性检查
- 创建详细的Windows使用说明文档
2026-04-25 22:51:05 +08:00
Your Name d0927cbad5 Initial commit: 网络拓扑发现系统
- 支持Cisco、华为、H3C、ASA、Linux、Windows设备
- SSH远程采集设备信息
- 自动发现网络拓扑(LLDP/CDP)
- Web可视化界面
- 支持旧版SSH加密算法兼容
2026-04-25 22:35:51 +08:00