-
ipsec SA存在第1阶段SA
ISAKMP SA
生存周期和第2阶段IPsec SA
生存周期ISAKMP SA
生存周期以两端中配置时间最小为准IPsec SA
生存周期两端各自以本端配置时间为准 -
ipsec DPD是一种探测对端是否存活的机制
每一个
IPsec SA
对应一个DPD,即每一条隧道对应一个DPD
如果ISAKMP SA
不存,DPD将无法工作,因为DPD发包时需使用ISAKMP SA
进行加解密 -
ipsec NAT穿越是ipsec两端之间存在NAT设备时对隧道报文进行封装的机制
一般使用4500 UDP端口进行封包
如果上面描述同时使用,且ipsec两端生存周期配置不同,则可能引起问题
例如:
双端链路之间存在NAT设备
client端ISAKMP SA
生存周期配置为3600s
,IPsec SA
生存周期配置为28800s
server端ISAKMP SA
生存周期配置为28800s
,IPsec SA
生存周期配置为3600s
当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
生存周期大
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。