ipsec SA存在第1阶段SAISAKMP SA
生存周期和第2阶段IPsec SA
生存周期网络
ISAKMP SA
生存周期以两端中配置时间最小为准IPsec SA
生存周期两端各自以本端配置时间为准code
ipsec DPD是一种探测对端是否存活的机制server
每个
IPsec SA
对应一个DPD,即每一条隧道对应一个DPD
若是ISAKMP SA
不存,DPD将没法工做,由于DPD发包时需使用ISAKMP SA
进行加解密ip
ipsec NAT穿越是ipsec两端之间存在NAT设备时对隧道报文进行封装的机制cli
通常使用4500 UDP端口进行封包配置
若是上面描述同时使用,且ipsec两端生存周期配置不一样,则可能引发问题端口
例如:时间
双端链路之间存在NAT设备
client端ISAKMP SA
生存周期配置为3600s
,IPsec SA
生存周期配置为28800s
server端ISAKMP SA
生存周期配置为28800s
,IPsec SA
生存周期配置为3600s
co
当server端ISAKMP SA
到期时,server将删除本身的ISAKMP SA
和通知client端删除ISAKMP SA
,同时server端进行重协商,但因为client端在NAT内部,且server发出起的第一个协商报文端口为500,因此重协商报文没法到达client端。此时双方ISAKMP SA
都不存在,意味着DPD已不工做
了,双方IPsec SA
还存在,隧道还能互通解密
当server端IPsec SA
到期时,server将删除本身的IPsec SA
和通知client端删除IPsec SA
,但正巧这个通知报文在网络中被丢弃
,那么client端没有删除IPsec SA
,还认为隧道是可用的,同时DPD也不工做了,这就出现了两端状态不一致问题。此时server端隧道状态为断开,而client端隧道状态为链接,但实际上双端之间隧道已不能互通了。DPD又不能工做,只能等client端IPsec SA
生存周期到期才能重协商恢复隧道正常
虽然这种状况出现机率至关小,但仍是有可能出现的,因此在配置ISAKMP SA
生存周期和IPsec SA
生存周期仍是保持两端相同为好
若是两端生存周期相同,那么即便出现了上面的状况,因为两端IPsec SA
生存周期同样,当server端到期时,client端基本上也快到期了,因此即便client端没有收到server端删除IPsec SA报文
,client端IPsec SA
也很快到期再进行重协商,恢复隧道正常
另,通常都把ISAKMP SA
生存周期时间设置得比IPsec SA
生存周期大