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
生存週期大