
# 什么是对等体存活检测？
DPD（Dead Peer Detection，对等体存活检测）用于检测对端是否存活。本端主动向对端发送DPD请求报文，检测对端PEER是否存活。
- 如果本端在DPD报文的重传时间间隔内未收到对端回应的DPD报文，则重传DPD请求报文，当到达最大重传次数之后仍然没有收到对端的DPD回应报文，则认为对端已经离线，本端将删除该IKE SA和对应的IPsec SA，同时发送报文通知对端。
- DPD报文是一个双向交换的消息，该消息包含通知载荷（notify）和Hash载荷（hash）。 发起者发送的通知载荷携带R-U-THERE消息，相当于一个Hello报文，响应者发送的通知载荷携带R-U-THERE-ACK消息，相当于一个ACK报文。
  不同设备缺省发出的DPD报文的载荷顺序可能不同，而两端IKE对等体的DPD报文中的载荷顺序需要一致，否则对等体存活检测功能将无法生效。
  IKE对等体间进行IPsec通信时，除DPD报文中的载荷顺序需要匹配外，DPD检测中其它配置参数两端不需要匹配。当IKE对等体间有正常的IPsec流量时，不会发送DPD消息，只有当一段时间内收不到对端发来的IPsec报文时，才发送DPD消息。
  
#### DPD核心配置
DPD的核心配置包含检测模式、检测时间、报文格式等。以华为设备为例，配置DPD的方法有全局配置和IKE对等体两种方式。IPsec通信时，优先使用IKE对等体的DPD配置参数，如果对等体未配置DPD，则采用全局DPD配置参数。
- **检测模式：** 分为按需和周期性检测。华为设备缺省配置中无全局检测配置，是否开启对等体检测要看对等体的DPD配置是否使能。
  按需型：当本端需要向对端发送IPsec报文时，如果当前距离最后一次收到对端的IPsec报文的时长已超过DPD空闲时间，则触发DPD检测，本端主动向对端发送DPD请求报文。
  周期型：如果当前距离最后一次收到对端的IPsec报文的时长已超过DPD空闲时间，则本端主动向对端发送DPD请求报文。
  
- **DPD配置参数：**包含DPD空闲时间、DPD报文重传间隔和重传次数，华为设备缺省情况下全局DPD空闲时间、DPD报文重传间隔和重传次数分别为30秒、15秒和3次。

- **报文格式：**有seq-hash-notify和seq-notify-hash两种。华为设备缺省情况下，DPD报文中的载荷顺序为seq-hash-notify。
![](https://support.huaweicloud.com/vpn_faq/public_sys-resources/caution_3.0-zh-cn.png)
当IPsec两端未配置DPD报文时，如果隧道内无流量，会等待SA的生命周期到期。到期前会发起硬协商，如果协商未成功则拆除本端SA，同时通知对端。SA的恢复需要再次进行数据流触发协商才能建立。
如果因为网络原因一端拆除SA，另一端没有拆除SA，会导致业务流量不通，需要等待SA生命周期老化或手工清除SA。
#### DPD配置说明
**检测模式：**按需。
**检测时间：**空闲时间30s，重传间隔15s，重传次数3次。
**报文格式为：**seq-hash-notify。
