更新时间:2024-04-19 GMT+08:00
分享

什么是对等体存活检测?

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。

当IPsec两端未配置DPD报文时,如果隧道内无流量,会等待SA的生命周期到期。到期前会发起硬协商,如果协商未成功则拆除本端SA,同时通知对端。SA的恢复需要再次进行数据流触发协商才能建立。

如果因为网络原因一端拆除SA,另一端没有拆除SA,会导致业务流量不通,需要等待SA生命周期老化或手工清除SA。

DPD配置说明

检测模式:按需。

检测时间:空闲时间30s,重传间隔15s,重传次数3次。

报文格式为:seq-hash-notify。

分享:

连接故障或无法PING通 所有常见问题

more