首页龙虾技能列表 › Isis Analysis — IS-IS协议诊断

🔍 Isis Analysis — IS-IS协议诊断

v1.0.0

通过SSH读取Cisco、Juniper、Arista设备show命令,完成IS-IS邻接、LSPDB、层级路由及NET地址验证的全流程诊断脚本,零写入、零配置变更,适合现网排障。

0· 63·1 当前·1 累计
by @vahagn-madatyan (Vahagn Madatyan)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/1
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
该技能为纯指令型IS-IS诊断手册,通过SSH在各厂商设备上执行show命令——其请求能力与目标一致,但所需工具/凭证元数据略显不一致,应仅授予最小权限。
评估建议
此为只读IS-IS诊断手册,功能与目的相符,但使用前请确认:1) 明确SSH需求:SKILL.md要求ssh客户端及设备访问,而注册元数据未声明所需二进制文件或凭证,需确认代理如何获得设备访问权。2) 仅提供最小权限凭证(只读/监控账户或被ACL限制的账户)——切勿提供可配置或访问无关系统的通用私钥。3) 先在安全环境试运行:在带有非敏感数据的实验路由器上执行,确保仅下发show命令。4) 如需审计,确保代理捕获的CLI输出仅在本地记录,不传输至未知外部端点(技能未声明出口端点,但仍需确认代理/运行时策略)。5) 因技能无主页或源码,若需更强供应链保障,可向发布者索取出处或仓库链接。...
详细分析 ▾
用途与能力
名称/描述与指令一致:SKILL引导操作者完成IS-IS邻接、LSPDB、NET验证及相关诊断。这些任务确实需要SSH/控制台访问路由器并执行厂商show命令;引用中的命令均为只读,符合所述目的。
指令范围
所有运行时指令均为Cisco/JunOS/EOS的show/只读CLI命令及分步诊断指引。流程不要求读取无关本地文件、向外部端点发送数据或执行配置变更命令。它假定用户/代理可通过SSH收集设备输出。
安装机制
无安装规范且无代码文件——纯指令型。因技能本身不下载或写入磁盘,风险最小。
凭证需求
运行时指令假定SSH/控制台访问(SKILL.md openclaw元数据将'ssh'列入所需bin),但向评审者展示的注册元数据未列出所需二进制或环境变量,也未声明主凭证。实际使用中技能需SSH凭证(或交互控制台)来收集show输出——这些凭证此处未声明。该不一致需澄清,且应仅提供最小权限、只读凭证。
持久化与权限
always:false且无安装;技能不请求持久/系统级权限,也不修改其他技能。允许自主调用(默认),但此处未与其他风险因素结合。
安全有层次,运行前请审查代码。

License

MIT-0

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

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/1

- IS-IS协议排障用isis-analysis技能首次发布。 - 支持邻接分析、LSP数据库验证、路由完整性检查及NET地址校验。 - 涵盖Cisco IOS-XE、Juniper JunOS与Arista EOS,提供协议中心推理。 - 诊断步骤从IS-IS进程验证到多级路由验证全程指引。 - 只读,可在生产环境安全使用。

● 无害

安装命令 点击复制

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

技能文档

# IS-IS 协议分析 基于协议推理的 IS-IS 邻接建立、LSPDB 完整性、Level 1/2 路由及 NET 地址校验分析技能。不同于仅比对计数器阈值的设备健康检查,IS-IS 分析需要解读邻接状态机、校验 NET 地址、验证 DIS 选举、并评估 LSP 在链路状态域内的泛洪情况。 命令标注 [Cisco][JunOS] 以示厂商差异;未标注语句适用于三家厂商。 ## 何时使用 - IS-IS 邻接无法建立或卡在 Init 状态 - 域内出现意外路由变化或路由缺失 - Level 1/2 边界问题——次优路由、缺少 L1 默认路由、路由泄漏未按预期工作 - LSPDB 不一致——邻居间 LSP 计数不匹配、意外清除、序列号异常 - NET 地址冲突或 system ID 重复导致“LSP 战争” - 变更后验证 IS-IS 配置(新增接口、区域调整、度量类型迁移、认证部署) - 广播段 DIS 选举无法收敛 ## 前置条件 - 对路由器的 SSH 或控制台访问(只读权限即可) - 设备上已运行 IS-IS 进程且至少有一个活跃接口 - 掌握预期 Level 拓扑:哪些路由器为 L1-only、L2-only 或 L1/L2,以及使用的区域地址 - System ID 与 NET 已知或有记录——NET 格式为 AFI.areaID.systemID.NSEL(例:49.0001.1921.6800.1001.00) - 了解每级与接口配置的认证方式(无、MD5、HMAC-SHA) ## 流程 按顺序执行以下诊断流。每一步依赖前序数据,由广域清单逐步深入定位。 ### 步骤 1:IS-IS 实例与接口清单 确认 IS-IS 已运行并记录各接口参与级别。 [Cisco] `` show isis interface brief ` [JunOS] ` show isis interface ` ` show isis interface brief ` 记录每个接口:Level 启用(L1、L2 或 L1/L2)、电路类型(点对点或广播)、度量、hello 间隔、保持时间。与设计对比——所有应参与接口必须出现。输出中缺失表示接口未启用 IS-IS(路由器或接口配置缺失)。 用 show isis protocol(Cisco)、show isis overview(JunOS)或 show isis summary(EOS)校验 NET 地址——NET 必须格式正确且唯一。 ### 步骤 2:邻接评估 列出所有 IS-IS 邻接并解读其状态。 [Cisco] ` show isis neighbors ` [JunOS] ` show isis adjacency ` ` show isis neighbors ` 将邻居列表与预期拓扑比对。对每条邻接校验: - 状态: Up 为健康;Init 表示单向(收到 hello 但本路由 SNPA/system ID 不在对端 hello);Down 表示未收到 hello。 - Level 匹配: L1 邻居需至少共享一个区域地址;L2 邻居可处不同区域——仅需 system ID 唯一。L1-only 路由器不会与 L2-only 路由器建立 L2 邻接。 - 电路类型: 广播段上检查 DIS 选举。与 OSPF DR/BDR 不同,IS-IS DIS 选举可抢占——更高优先级新路由器立即接管。 - DIS 状态: 广播段上识别每级 DIS。DIS 每 10 秒发送 CSNP 并生成伪节点 LSP。 ### 步骤 3:NET 地址校验 校验 NET 格式及域内 system ID 唯一性。 [Cisco] ` show isis protocol | include NET|System ` [JunOS] ` show isis overview | match "NET|System" ` ` show isis summary | include NET|System ` 校验 NET 结构: - AFI(Authority and Format Identifier): 私有 IS-IS 域通常为 49。域内必须一致。 - 区域 ID: 长度可变。所有 L1 邻居需至少共享一个区域地址方可建立 L1 邻接。L1/L2 与 L2-only 路由器可处不同区域,仍能建立 L2 邻接。 - System ID: 6 字节,IS-IS 域内必须全局唯一。重复 system ID 引发 LSP 战争——两路由器分别生成同名 LSP,内容不同,导致持续清除/再生循环。 - NSEL(N-Selector): 路由器自身必须为 00。非零 NSEL 标识上层协议端点,而非路由器。 ### 步骤 4:LSPDB 分析 检查链路状态协议数据单元数据库完整性。 [Cisco] ` show isis database detail | include LSP|Lifetime|Sequence ` [JunOS] ` show isis database extensive | match "LSP|Lifetime|Sequence" ` ` show isis database detail | include LSP|Lifetime|Sequence 评估 LSPDB 健康: - LSP 计数: 同 Level 邻居间需一致(LSPDB 同步不变量)。差异表明泛洪失败或分区。 - 剩余生存时间: 默认最大 1200 秒。源路由器默认 900 秒刷新。生存时间接近 0 却未被刷新表示源路由器不可达;为 0 表示正在被清除。 - 序列号: 必须单调递增。若同一 system ID 的 LSP 序列号回跳,说明路由器重启并从更低序列号重新生成——或存在 system ID 冲突。 - LSP 清除: 生存时间为 0 且 TLV 内容为空的 LSP 为清除。同一 system ID 频繁清除表明不稳定——源路由器震荡或两路由器共用 system ID(LSP 战争)。 - Overload 位(OL): 若置位,SPF 不会将其用于转发流量。检查 OL 是否为有意(维护、启动延时)或异常(内存耗尽)。 ### 步骤 5:Level 1/2 路由与路由泄漏 在 L1/L2 边界验证跨级路由行为。 [Cisco] `` show isis rib | include L1|L2|leak ` [JunOS] ` show isis route | match "L1|L2|leak" ` ` show isis route | include L1|L2|leak 验证跨级行为: - L1→L2 重分发: L1/L2 路由器默认自动将 L1 路由重分发至 L2。验证 L1 前缀出现在 L2 LSPDB。若缺失,检查 L1/L2 路由器上的重分发过滤器或路由策略。 - L2→L1 路由泄漏: 非自动——需显式配置。若已配,验证泄漏的 L2 路由出现在 L1 RIB。缺失表明策略配置错误或泄漏过滤器过严。 - Attached 位: L1/L2 路由器在其 L1 LSP 中置位 Attached 位。L1-only 路由器据此安装指向最近 L1/L2 路由器的默认路由。若无 L1/L2 路由器置 Attached 位,L1-only 路由器无法出区域。用 LSPDB 明细验证——检查 L1/L2 路由器 LSP 的 ATT 标志。 - 次优路由: L1-only 路由器始终路由至最近 L1/L2 路由器(默认路由)。若存在多个 L1/L2 出口,流量可能走次优路径。通过 L2→L1 带特定前缀的路由泄漏可解决,为 L1 路由器提供更明细路由信息。 ## 阈值表 IS-IS 运行参数基准——按网络类型与部署规模给出的协议级期望。 Hello 与 Hold 定时器默认值: | 参数 | Cisco 默认 | JunOS 默认 | EOS 默认 | 备注 | |-----------|--------------|---------------|-------------|-------| | Hello(广播) | 10s | 9s | 10s | 每级可配 | | Hello(P2P) | 10s | 9s | 10s | 每级可配 | | Hold 乘数 | 3× hello | 3× hello | 3× hello | Dead = hello × 乘数 | | CSNP 间隔(DIS) | 10s | 10s | 10s | 仅 DIS 发送 CSNP | | PSNP 间隔 | 2s | 2s | 2s | 请求缺失 LSP | LSPDB 基准: | 参数 | 正常 | 警告 | 严重 | |-----------|--------|---------|----------| | LSP 最大生存时间 | 1200s | — | — | | LSP 刷新 | 900s | 错过刷新 | 生存时间 < 300s | | LSP 剩余生存时间 | 300–1200s | 60–300s | < 60s(接近清除) | | LSP 清除速率 | 0/小时 | 1–5/小时 | > 5/小时 | | LSPDB 不匹配(邻居) | 0 条差异 | 1–3 差异 | > 3 差异 | | Overload 位 | 清除 | 置位(有意) | 置位(无意) | SPF 基准: | 参数 | 正常 | 警告 | 严重 | |-----------|--------|---------|----------| | SPF 运行次数(每小时) | 1–5 | 6–20 | > 20 | | SPF 初始延时 | 50–200ms | < 50ms | > 5000ms | | SPF 最大保持 | 5000–10000ms | < 2000ms | > 50000ms | | 收敛(单链路) | < 1s | 1–5s | > 10s | 度量基准: | 度量类型 | 范围 | 备注 | |-------------|-------|-------| | Narrow(原始) | 1–63 / 链路 | 10 位路径度量最大 1023 | | Wide(扩展) | 1–16777215 / 链路 | 32 位路径度量——推荐 | | Transition | 两者 | 窄→宽迁移期间 | ## 决策树 ### 邻接无法建立 `` IS-IS 邻接未达到 Up 状态 ├── 状态:Down(未收到 hello) │ ├── 接口 up?→ 检查 Layer 1/2 状态 │ ├── 接口已启用 IS-IS?→ 检查两侧 IS-IS 配置 │ ├── 电路类型正确?→ P2P 接口两侧必须一致 │ └── Hello 到达对端?→ 检查 ACL、VLAN、封装 │ ├── 状态:Init(单向 hello) │ ├── Level 不匹配? │ │ ├── L1 需同区域→ 比对 NET 中的区域地址 │ │ └── L2 允许不同区域→ 检查两侧均启用 L2 │ ├── Hello 参数? │ │ ├── 认证不匹配→ 校验每级密钥/类型 │ │ └── Hello 间隔不兼容→ 无需严格匹配但 │ │ Hold 时间须大于远端 hello 间隔 │ ├── 接口类型不匹配? │ │ ├── P2P vs 广播→ 电路类型必须一致 │ │ └── 广播→ DIS 选举在邻接建立后进行 │ ├── MTU 问题?→ IS-IS PDU 过大被丢弃 │ │ ├── 检查两侧接口 MTU │ │ └── IS-IS 不像 OSPF 协商 MTU——静默丢弃 │ └── 电路类型不匹配? │ ├── L1-only ↔ L2-only→ 无公共 Level→ 无邻接 │ └── L1/L2 ↔ L1→ 可建 L1 邻接;L2 不建 │ ├── DIS 选举问题(仅广播) │ ├── DIS 未选出?→ 检查优先级(最高获胜,其次 SNPA) │ ├── DIS 抢占→ 更高优先级新路由器立即接管 │ │ └── 与 OSPF DR 不同——IS-IS DIS 可抢占 │ └── 伪节点 LSP 缺失?→ DIS 必须生成伪节点 LSP │ └── 邻接震荡(Up↔Down 循环) ├── Hello 保持超时→ 检查丢包或 CPU 过载 ├── 认证密钥轮转→ 校验密钥切换时机 └── 接口错误→ 检查 CRC、input errors、drops ` ### LSPDB 不一致 ` 检测到 LSPDB 不匹配或不稳 ├── 出现 LSP 清除(生存时间 = 0) │ ├── System ID 冲突?→ 两路由器 system ID 相同 │ │ ├── 双方均生成 LSP→ 持续清除/再生循环 │ │ ├── 序列号乱跳→ 确认冲突 │ │ └── 修复:分配唯一 system ID,检查 NET 地址 │ ├── 路由器正常离开?→ 关机后的正常清除 │ └── 路由器崩溃?→ LSP 老化(1200s)后清除 │ ├── 邻居间 LSPDB 计数差异 │ ├── MTU 阻止 LSP 泛洪?→ 大 LSP 被丢弃 │ │ ├── 检查路径接口 MTU │ │ └── 启用 LSP 分片或增大 MTU │ ├── 分区?→ L2 骨干分裂→ 两个独立 LSPDB │ │ ├── 验证所有 L2 路由器间 L2 连通性 │ │ └── 检查失败 L2 链路是否隔离某段 │ └── 泛洪受阻?→ 某链路认证不匹配 │ └── 邻接 up 但 LSP 因认证失败被拒绝 │ ├── Overload 位(OL)置位 │ ├── 有意?→ 维护模式或启动延时定时器 │ ├── 内存耗尽?→ 路由器无法容纳完整 LSPDB │ └── 启动延时?→ 进程重启后 N 秒内置位 OL │ └── 序列号异常 ├── 回跳?→ 路由器重启,从更低序列号重新生成 ├── 快速递增?→ 频繁拓扑变化触发重新生成 └── 卡在最大值?→ 序列号回环——极罕见,需重启进程 ` ## 报告模板 ` IS-IS 分析报告 ====================== 设备:[hostname] 厂商:[Cisco | JunOS | EOS] IS-IS 实例:[tag/实例名] System ID:[system-id] NET:[完整 NET 地址] 检查时间:[timestamp] 执行人:[operator/agent] 邻接状态: - 预期邻接总数:[n] - Up:[n] | Init:[n] | Down:[n] - DIS 角色:[段 X 上 L1/L2 的 DIS,或无] - 需关注邻接:[列出状态与级别] LEVEL 拓扑: - 配置 Levels:[L1, L2, L1/L2] - 区域地址:[列表] - Attached 位:[L1 LSP 置位/清除] 发现: 1. [严重度] [类别] — [描述] 邻居/接口:[标识符] 观察到:[状态或度量值] 预期:[正常状态或值] 根因:[决策树诊断] 操作:[推荐修复措施] LSPDB 摘要: - L1 LSP 计数:[n] | L2 LSP 计数:[n] - 最近 1 小时 LSP 清除:[计数——0 为健康] - Overload 位:[置位/清除] - 生存时间异常:[列出接近过期的 LSP] 路由分析: - L1 路由:[计数] | L2 路由:[计数] - 路由泄漏:[已配/未配——预期行为] 建议: - [按优先级排列的操作列表] 下次检查:[严重:1 小时,警告:8 小时,健康:24 小时] `` ## 故障排查 ### System ID 冲突(LSP 战争) 两路由器 system ID 相同引发 LSP 战争——双方分别生成同名 LSP 但内容不同,彼此清除对方 LSP 并再生,造成持续震荡。 症状:序列号快速递增、频繁清除事件、路由不稳。 通过在邻接表中查找同一 system ID 对应不同 SNPA 或源地址来发现。 修复:分配唯一 system ID。 ### 区域不匹配阻止 L1 邻接 L1 邻接要求 NET 中至少一个区域地址匹配。若两路由器区域地址不同且均为 L1-only,则无法建立邻接。区域不同的 L1/L2 路由器仍可建立 L2 邻接,但无法建立 L1。 校验双方区域地址。 修复:更正区域地址,或若目标为跨区域路由,将一方改为 L2-only。 ### 度量类型不匹配(Narrow vs Wide) 一侧使用 narrow 度量(1–63)、另一侧使用 wide 度量(1–16777215)可能建立邻接,但若一方无法解析对方 TLV,路由计算会出错。 迁移期间,将双方配置为 transition 模式(同时通告 narrow 与 wide TLV)。 用 LSPDB 明细验证——检查是否同时存在旧式与扩展 IP 可达性 TLV。 ### 认证不匹配 IS-IS 支持按级与按接口认证。不匹配会阻止邻接(hello 被拒绝)或 LSP 泛洪(LSP 被拒绝)。 与 OSPF 不同,IS-IS 可能在 hello 认证通过、LSP 认证失败时,出现邻接 up 但泛洪受阻。 独立检查 hello 与 LSP 两级的认证配置。 ### LSPDB 过载因重分发过多 将大型外部路由表重分发进 IS-IS 会生成大量 LSP,增大 LSPDB 规模、SPF 计算时间与泛洪开销。 使用路由策略限制重分发范围。对无法容纳完整 LSPDB 的非转发路由器,可置位 overload 位。 监控 LSP 分片数——每路由器最多可生成 256 个 LSP 分片(0–255)。

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

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

了解定制服务