首页龙虾技能列表 › Network Topology Discovery — 网络拓扑发现 — 基于CDP/LLDP的迭代网络拓扑探测

🔍 Network Topology Discovery — 网络拓扑发现 — 基于CDP/LLDP的迭代网络拓扑探测

v1.0.0

该技能通过CDP/LLDP邻居协议、ARP/MAC表关联和路由表分析实现迭代网络拓扑发现,支持Cisco、Juniper和Arista多厂商设备。

0· 67·0 当前·0 累计
by @vahagn-madatyan·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/1
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
技能指令逻辑清晰,但元数据和依赖声明不一致,且在未声明提供方式的情况下请求SSH凭证,安装前需谨慎。
评估建议
技能似乎包含一个合理的只读网络拓扑发现过程,但包元数据低估了其需求。安装或运行前,请确认SSH凭证提供方式、使用最低权限只读账户、验证范围控制、避免不必要的配置导出、在隔离环境测试,并要求发布者更正元数据和文档。...
详细分析 ▾
用途与能力
技能名称、描述和运行指令一致,记录了通过CDP/LLDP、MAC/ARP关联和通过SSH/控制台访问的路由表的迭代L2/L3发现过程。
指令范围
SKILL.md是一份仅包含指令的技能,限制操作为只读的'show'命令和范围控制规则;
安装机制
无安装规范和代码文件(仅指令)—— 安装风险最低。
凭证需求
技能实际上需要SSH访问和设备凭证,但注册表中没有列出所需的环境变量、主凭证或所需的二进制文件;
持久化与权限
always:false,并且没有持久安装操作。
安装前注意事项
  1. 确认SSH凭证的提供方式,并要求技能声明所需的环境变量或秘密引用;
  2. 使用最低权限的只读设备账户,避免使用管理员级别凭证;
  3. 验证范围控制设置(管理子网、VRF、跳数限制)以避免无边界发现;
  4. 避免运行不必要的完整配置导出命令,确保审计;
  5. 在隔离的实验室/网络中先进行测试;
  6. 要求发布者更正注册元数据,列出'ssh'作为所需的二进制文件,并明确文档化凭证处理。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/1
● 无害

安装命令 点击复制

官方npx clawhub@latest install network-topology-discovery
镜像加速npx clawhub@latest install network-topology-discovery --registry https://cn.clawhub-mirror.com

技能文档

迭代式发现技能,逐层构建网络拓扑图。与基于阈值的健康检查不同,此过程从种子设备向外工作——发现邻居、关联 MAC 和 ARP 表、分析路由边界,并整合 L2 和 L3 的完整邻接模型。命令语法在不同厂商间有差异的标注为 [Cisco][JunOS][EOS]。未标注的语句适用于所有三家厂商。详细命令语法请参阅 references/cli-reference.md;完整的发现方法论和数据模型请参阅 references/discovery-workflow.md

使用场景

  • 为不熟悉的环境构建或验证网络 diagram
  • 收购后的网络资产盘点,文档缺失或过时
  • 变更前的影响分析——维护前映射爆炸半径
  • 事件响应——确定两个端点之间的 L2/L3 路径
  • 将发现的拓扑与预期设计文档进行审计
  • 识别网络上的 rogue 或未文档化的设备
  • 容量规划——映射站点间的链路利用率路径
  • 迁移规划——清点域中的设备和链路

前置条件

  • 对种子设备的 SSH 或控制台访问(只读权限即可)
  • 在发现范围内跨设备可用的凭据——如果不同设备使用不同凭据,请提前识别凭据集
  • 网络上启用 CDP 和/或 LLDP(至少需要一种协议)
  • 了解预期的发现范围:站点边界、VRF、管理子网或管理域,以避免无限制扩展
  • 设备资产跟踪器(电子表格、CMDB 或文本文件),用于记录已发现的设备并避免重复访问

步骤

按照以下步骤迭代执行。每一步都建立在前一步的数据基础上。该过程从种子设备向外扩展,逐层发现邻居,并将 L2 与 L3 信息关联起来,以生成整合的拓扑。

步骤 1:种子设备识别

选择起始设备并验证连接性。种子通常是核心交换机、汇聚交换机或具有最广泛邻居可见性的路由器。确认访问并收集设备身份:

[Cisco]

`` show version | include hostname|uptime|Software show cdp neighbors | count show lldp neighbors | count


[JunOS]

show version | match "Hostname|Model|Junos" show lldp neighbors | count

[EOS]

show version | include hostname|uptime|model show lldp neighbors | count

记录:主机名、平台、软件版本、管理 IP 和邻居数量。邻居数量为步骤 2 设定预期。将此设备作为第一条记录添加到发现跟踪器中,状态为"已发现"。注意:CDP 是 Cisco 专有协议,仅在 Cisco 和 EOS 设备上可用。JunOS 仅支持 LLDP。在多厂商环境中将 LLDP 作为主要协议使用。

步骤 2:L2 邻居发现

从当前设备收集所有 CDP 和 LLDP 邻居。这将揭示直接连接的交换机、路由器、电话和接入点。

[Cisco]

show cdp neighbors detail show lldp neighbors detail

[JunOS]

show lldp neighbors detail

[EOS]

show lldp neighbors detail show lldp neighbors | include System

对于每个发现的邻居,记录:远程主机名、远程平台/型号、远程管理 IP、本地接口、远程接口和通告的能力(Router、Switch、Phone、AP)。能力字段可识别设备角色而无需登录。将每个邻居与发现跟踪器进行交叉引用。新条目的状态为"待处理"——它们成为下一次迭代扩展的种子。已发现的设备将被跳过。

步骤 3:MAC 地址表分析

收集 MAC 地址表以识别所有连接的端点,并区分干道端口(多个 MAC)和接入端口(少数 MAC)。

[Cisco]

show mac address-table show mac address-table count

[JunOS]

show ethernet-switching table show ethernet-switching table summary

[EOS]

show mac address-table show mac address-table count

分析端口到 MAC 的映射:

  • 干道端口——学习到多个 MAC,通常连接到其他交换机。这些应该已经作为 CDP/LLDP 邻居出现。
  • 接入端口——学习到一个或少数几个 MAC,通常是终端主机。
  • 没有 MAC 的端口——要么未使用,要么连接到尚未发送流量的设备。检查接口管理/运行状态。
  • MAC 过多的端口(接入端口上 >100)——可能是集线器、非托管交换机或错误配置的干道。标记任何在意外端口上的 MAC 地址——这有助于识别未文档化的设备或布线错误。

步骤 4:ARP 表关联

收集 ARP 表以将 IP 地址映射到 MAC 地址,建立 L2 发现主机的 L3 身份。

[Cisco]

show ip arp show ip arp vrf [name]

[JunOS]

show arp no-resolve show arp interface [intf]

[EOS]

show ip arp show ip arp vrf [name]

对于每个 ARP 条目,记录:IP 地址、MAC 地址、接口、VLAN 和条目年龄。将步骤 3 中的 MAC 进行交叉引用,为先前发现的 L2 端点分配 IP 地址。未解析的 MAC——MAC 表中有但没有对应 ARP 条目的条目——表示仅 L2 设备(该 VLAN 上没有管理 IP 的交换机)或通过干道可到达的不同子网上的设备。未解析的 ARP——MAC 不完整的 ARP 条目——表示可达性问题(设备离线或 ARP 超时)。

步骤 5:路由表分析

收集路由表条目以发现 L3 下一跳、远程子网和路由域边界。

[Cisco]

show ip route summary show ip route show ip route vrf [name]

[JunOS]

show route summary show route protocol [ospf|bgp|static] show route table [routing-instance].inet.0

[EOS]

show ip route summary show ip route show ip route vrf [name]

识别:

  • 直连子网——直接附加的网络;这些定义了此设备的 L3 边界。
  • 下一跳路由器——相邻 L3 设备的 IP 地址。与 ARP/MAC 数据交叉引用以识别每个下一跳的物理接口和 MAC。
  • 路由协议邻居——OSPF/BGP/EIGRP 邻居即使在 CDP/LLDP 禁用时也能揭示 L3 邻接关系。
  • 默认路由——指向上游网关;跟随它以发现下一层。
  • VRF 路由——单独的路由表表示 VRF 边界。每个 VRF 重复发现以映射隔离的路由域。

任何没有对应 ARP 条目的下一跳 IP 表示不活动或不可达的 peer——标记以供调查。

步骤 6:拓扑整合

将 L2 和 L3 发现数据合并到统一的拓扑模型中。对于每条发现的链路,在可能的情况下从两端确认。从设备 A 到设备 B 报告的链路也应该出现在设备 B 的邻居表中指向设备 A。不对称条目(仅从一端可见的链路)表示:一端禁用 CDP/LLDP、单向链路或陈旧的邻居条目。

构建邻接模型:

  • 去重链路——同一物理连接出现在两个邻居的表中。使用本地端口/远程端口对进行匹配。
  • 解析 L2/L3 重叠——在 CDP/LLDP 中可见且承载多个 ARP 子网的干道链路表示一条物理链路,具有多条 L3 路径。
  • 分类设备——使用 CDP/LLDP 的能力和路由协议参与情况为每个设备打标签:核心路由器、汇聚交换机、接入交换机、防火墙、无线控制器、端点。
  • 识别边界——发现范围边缘的设备(没有进一步邻居,或邻居在目标域之外)定义拓扑周边。
  • 标记异常——未文档化的设备、不对称链路、意外的路由 peer 和错误 VLAN 上的 MAC 地址。

阈值表

发现完整性和数据新鲜度指标。与健康检查阈值不同,这些指标衡量拓扑数据的完整性和当前程度。

发现完整性:

指标完整部分不完整
CDP/LLDP 邻居与预期相比100%80–99%<80%
有 ARP 解析的 MAC>90%70–90%<70%
有 ARP 条目的下一跳100%80–99%<80%
从两端确认的链路>95%80–95%<80%
收集到路由表的设备100%>80%<80%
数据新鲜度:

数据源新鲜老化陈旧
CDP 剩余保持时间>120s60–120s<60s
LLDP 剩余 TTL>90s30–90s<30s
ARP 条目年龄<300s (5分钟)300–1200s>1200s (20分钟)
MAC 条目年龄最近活动>300s 未见>900s
路由表年龄已收敛重新收敛中不完整

报告模板

网络拓扑发现报告 =================================== 种子设备:[主机名] 发现范围:[站点 / VRF / 子网范围 / 域] 发现时间:[开始] 至 [结束] 执行者:[操作员/代理]

发现摘要:

  • 发现的设备总数:[n]
  • 路由器:[n] | 交换机:[n] | 防火墙:[n] | 其他:[n]
  • 映射的链路总数:[n](确认双向:[n],单向:[n])
  • 识别的子网数:[n]
  • 遇到的 VRF:[列表]

设备清单:

主机名平台管理 IP角色发现方法
[名称][型号][IP][角色][CDP/LLDP/ARP/路由]
链路地图:
设备 A端口 A设备 B端口 B类型速率
[名称][接口][名称][接口][trunk/access/routed][1G/10G/...]
异常情况:
  • [严重性] [类别] — [描述]
观察到的:[发现的内容] 预期的:[设计文档显示的内容] 影响:[拓扑准确性 / 安全性 / 运营] 行动:[建议的调查或修复措施]

完整性评估:

  • CDP/LLDP 覆盖率:[%] 的预期邻居
  • ARP 解析:[%] 的 MAC 条目已解析
  • 双向链路确认:[%]

建议操作:

  • [优先级排序的操作列表]

下次发现: [根据网络变化率建议的刷新间隔] `

故障排除

JunOS 设备上缺少 CDP 邻居

CDP 是 Cisco 专有协议,JunOS 不支持。必须使用 LLDP 进行 Juniper 邻居发现。确保在全局和相关接口上启用 LLDP:set protocols lldp interface all。在 Cisco/EOS 侧,启用 LLDP 以便与 CDP 同时运行,这样两种协议都可以与 JunOS 设备交换邻居数据。

LLDP 显示过时的邻居

LLDP 条目在邻居消失后会保留 TTL 时长(默认 120 秒)。如果出现过时条目,请检查:远程设备最近是否断电或重启、网线是否断开,或远程接口上是否禁用了 LLDP。等待 TTL 过期或手动清除 LLDP 表以刷新。

接入端口的 MAC 表显示数千条条目

一个接入端口学习数百个 MAC 地址表明:端口后面连接了集线器或非托管交换机、一个虚拟化主机将多个虚拟机桥接到一个接口,或 trunk 配置错误。检查端口配置——如果应该是接入端口,请调查连接了什么。考虑启用端口安全以限制 MAC 学习。

ARP 条目显示不完整的 MAC

show ip arp 显示 MAC 地址为 "Incomplete" 表示设备发送了 ARP 请求但未收到回复。目标 IP 配置在本地子网但主机未响应。原因:主机离线、主机防火墙阻止 ARP、IP 地址冲突,或主机在错误的 VLAN 上。验证主机已开机并连接到正确的 VLAN。

路由表显示意外的默认路由

指向未知下一跳的默认路由可能表示:恶意 DHCP 服务器提供网关地址、未计划的静态路由,或路由重分发从其他域引入默认路由。追踪路由来源——检查 show ip route 0.0.0.0` 获取协议和来源。如果是 OSPF 或 BGP,识别哪个对等体在通告默认路由。

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务