2.25. Exchange Collisions (交換の衝突)
2.25. Exchange Collisions (交換の衝突)
IKEv2 交換はどちらのピアからも開始できるため, 同一 SA に影響する 2 つの交換が部分的に重なることがある. SA 状態情報が一時的に同期せず, ピアが通常どおり処理できない要求を受け取る状況になり得る.
ウィンドウサイズが 1 より大きいとより複雑になり, 特に要求が順不同処理される場合である. 本節はウィンドウ 1 でも起こり得る問題に焦点を当て, 解決策を推奨する.
一時的な条件 (再鍵など) のため要求を完了できないとき, ピアは TEMPORARY_FAILURE 通知を送るべきである. TEMPORARY_FAILURE を受け取ったピアは直ちに再試行してはならず, 送信側が一時状態を完了できるよう待たなければならない. 受信者は数分にわたり 1 回以上再試行してもよい. 同じ IKE SA で数分後も TEMPORARY_FAILURE が続くなら状態がずれていると判断し IKE SA を閉じるべきである.
存在しない Child SA の再鍵要求を受け取ったとき, ピアは CHILD_SA_NOT_FOUND 通知を送るべきである. 再鍵しようとした SA は Notify の SPI フィールドで示され, REKEY_SA 通知の SPI からコピーする. CHILD_SA_NOT_FOUND を受け取ったピアは Child SA を静かに削除し (まだあれば), 新規 Child SA 作成要求を送るべきである (まだ存在しない場合).
2.25.1. Collisions while Rekeying or Closing Child SAs (Child SA 再鍵/終了時の衝突)
Child SA を閉じようとしている最中にその SA の再鍵要求を受け取ったら TEMPORARY_FAILURE で応答すべきである. 再鍵中に再鍵要求を受け取ったら通常どおり応答し, 後で nonce に基づき冗長 SA を閉じる準備をすべきである (2.8.1 節). 存在しない Child SA の再鍵要求には CHILD_SA_NOT_FOUND で応答すべきである.
同じ SA を閉じようとしている最中に閉じる要求を受け取ったら Delete ペイロードなしで応答すべきである (1.4.1 節). 再鍵中に閉じる要求を受け取ったら通常どおり Delete 付きで応答すべきである. 存在しない Child SA の閉じる要求には Delete なしで応答すべきである.
その IKE SA の Child SA を作成, 再鍵, 閉じている最中に IKE SA の再鍵要求を受け取ったら TEMPORARY_FAILURE で応答すべきである.
2.25.2. Collisions while Rekeying or Closing IKE SAs (IKE SA 再鍵/終了時の衝突)
IKE SA を再鍵中に IKE SA 再鍵要求を受け取ったら通常どおり応答し, 後で nonce に基づき冗長 SA を閉じ継承 Child SA を移す準備をすべきである (2.8.2 節). IKE SA を閉じようとしている最中に再鍵要求を受け取ったら TEMPORARY_FAILURE で応答すべきである.
IKE SA を再鍵中に IKE SA 閉じる要求を受け取ったら通常どおり応答し, 自らの再鍵要求は忘れる. 閉じようとしている最中に閉じる要求を受け取ったら通常どおり応答し, 自らの閉じる要求は忘れる.
IKE SA を再鍵中に Child SA の作成または再鍵要求を受け取ったら TEMPORARY_FAILURE で応答すべきである. 再鍵中に Child SA 削除要求を受け取ったら通常どおり Delete 付きで応答すべきである.