DPD 干什么
DPD(对端失效检测)用 IKE 保活报文判断对端是否还有响应:Cisco 用 crypto isakmp keepalive 配置,periodic 模式持续探测,on-demand 模式主要在有流量时触发。检测到对端失效后,需要由路由切换或冗余协议接管;DPD 本身只负责发现,不负责转移。
基本信息
| 命令 | crypto isakmp keepalive <秒> <重试次数> periodic |
|---|---|
| 模式差异 | on-demand 省资源,periodic 持续监测 |
| 发现失效后 | 配合路由切换或冗余协议完成转移 |
| 核对方式 | show crypto isakmp sa 与系统日志 |
| 适用场景 | 双隧道或双出口做主备的网络 |
典型使用场景
- 双出口主备:希望链路失效时能及时切换
- 运营商链路质量不稳定:用 DPD 加速失效发现
- 排障「切换太慢」:确认 DPD 参数与路由收敛是否匹配
- 设计评审:探测间隔要与业务的丢包容忍度匹配
- 割接演练:验证失效切换是否在预期时间内完成
配置示例
配置示例
crypto isakmp keepalive 10 3 periodic # 每 10 秒探测,重试 3 次
# 或按需触发,节省开销:
# crypto isakmp keepalive 10 3 on-demand
!
show crypto isakmp sa # 查看阶段一 SA 状态
show logging | include ISAKMP # 查看失效检测与重建记录参数取值思路
| 参数 | 作用 | 取值要点 |
|---|---|---|
| 探测间隔 | 多久发一次保活 | 与业务丢包容忍度匹配 |
| 重试次数 | 判定失效前允许几次失败 | 过小会误判,过大会拖慢切换 |
| 模式 | periodic 或 on-demand | 持续监测或按流量触发 |
探测间隔过短会带来额外开销:隧道数量多时,保活报文的处理压力不可忽略,需要在切换速度与开销之间找平衡。
启用 DPD 却没有备份路径,检测到失效也无处可切:它只负责发现问题,切换能力要靠路由或冗余协议提供。
误判通常来自重试次数过小:链路短暂丢包就会触发切换,反而造成不必要的路由抖动,建议结合链路质量设定。
DPD 与路由协议保活是两层机制:前者发现隧道对端失效,后者发现路径失效,两者都配上才能覆盖大部分故障场景。
参数调整要做前后对比:记录切换耗时与误切次数,再决定是否调整探测间隔与重试次数,凭感觉调参很难收敛。