debug 能解决什么
IPsec 协商失败时,配置比对只能给出「参数是否一致」,看不到「报文有没有来回」。debug 的价值就在这里:它把 IKE 阶段一的每条报文、每个提议、每次校验失败与每个错误原因直接打印出来,能把问题精确切到某一步。使用原则有两条,一是先收窄范围再开,二是提前想好怎么关。生产设备上开全量 crypto debug 可能瞬间刷出成千上万行并抬高 CPU,甚至影响转发,务必用条件过滤把范围限制到单个对端。
基本信息
| 平台 | Cisco IOS/IOS-XE,需特权模式与 terminal monitor |
|---|---|
| 协商侧 | debug crypto isakmp(IKEv1)、debug crypto ikev2 |
| 数据面 | debug crypto ipsec 看 SA 加解密与策略匹配 |
| 范围控制 | debug crypto condition 按对端过滤 |
| 日志查看 | logging buffered 配置后 show logging 翻阅 |
| 收尾 | undebug all,避免忘记关闭 |
典型使用场景
- 阶段一建不起来,需要看两端提议列表的实际差异
- 认证失败:确认是 PSK 不匹配、证书校验失败还是身份标识对不上
- SA 建立后流量不通:区分是策略未匹配还是加解密出错
- 偶发断连:结合 debug 与日志时间线确认是否 DPD 或重协商触发
- 与第三方对接首次联调:快速定位是哪一步被拒绝
受控排错流程
受控排错流程
# 1. 先确认日志缓冲足够,避免刷屏丢证据
logging buffered 20000000 informational
terminal monitor
# 2. 用条件把 debug 限制到单个对端
debug crypto condition peer ipv4 203.0.113.2
# 3. 分层次开,先看错误再看报文
debug crypto ikev2 error
debug crypto ikev2 packet
# 4. 复现后立刻关掉并回看日志
no debug crypto ikev2 packet
show logging | include IKE|IPsec|NO_PROPOSAL输出线索读法
| 输出关键词 | 含义 | 下一步 |
|---|---|---|
| NO_PROPOSAL_CHOSEN | 两端无匹配提议 | 逐项比对算法与 DH 组 |
| AUTHENTICATION_FAILED | 认证不通过 | 核对 PSK、证书或身份标识 |
| QM_IDLE / MM_NO_STATE | IKEv1 状态异常 | 检查感兴趣流与对端可达性 |
| NO SA FOUND | 数据面无匹配策略 | 核对 ACL 与 crypto map 匹配 |
| packet dropped | 校验或重放检查丢弃 | 查 ICV 与防重放窗口设置 |
debug 会显著增加 CPU 与日志量:无过滤的全量 crypto debug 曾多次引发设备卡死;务必先设条件过滤,并在复现后第一时间关闭。
两端同时开 debug 再对时间线,比只看一端效率高得多:能立刻区分「本端没发」和「发了但对面没收到」。