最終更新日:2012年6月22日
[閉じる]■ IKEキープアライブ / DPD 【Dead Peer Detection】
IPSecでVPNトンネルが正常に作成されると、 IKE-SAおよびIPSec-SAの情報は一定期間、それぞれのVPNルータのメモリ上に生存します。 この時、相手側ルータが障害等で再起動やリセットが行われると、相手側にはSA情報が無いのに、こちらだけにSA情報がが残っているという状態になってしまいます。
このような場合、結果としてこちら側のルータのIKE-SA情報の生存期間の時間が経過するまで、VPNセッションが利用できない状態になる可能性があります。
これを避けるには、それぞれのルータが相手のIKE情報の生存状態を確認(キープアライブ)して、相手が応答できない状態になった場合には現状のSAの情報を廃棄して新たにSAを構築することで、接続障害時間を短縮する事が可能になります。
しかし、IKE-SAのキープアライブの実施方法は当初、RFCでの規格制定に至らなかったことで各ルータベンダー毎にその実現方法に独自の実装が行われてしまい、このためにSAの廃棄が異なるメーカー間ではできないという状態になってしまう事になってしまいました。
最近のルータであれば、DPD(RFC3706で規格化された)方式が提案(IKE: フェーズ1 プロポーザル)できるようになってきており、これを使ったキープアライブを実施することで、上記のような問題を避ける事ができます。
■ IPSecキープアライブ
IKEキープアライブやDPDは、フェーズ1で作成された鍵交換用のトンネルの状態を監視する目的に利用します。 しかし、IPSecでは鍵交換用のトンネルとは別にデータ用のトンネル(フェーズ2)のSAが利用されます。 このため、IKEキープアライブやDPDを監視しただけでは、フェーズ2で作成されたトンネル(SA)が残ってしまう可能性もあります。(通常は時間が解決してはくれますが。。。)
フェーズ2のトンネルが出来ている状態は即ち、相手との通信ができる状態になっている筈にも関わらず相手のルータのLAN側インターフェースにPingを実施しても応答がないなら、IPSec-SAが壊れていると判断しても差し支えないでしょう。
このような時は、新しいIKE-SAの情報を使い改めてIPSecトンネル(SA)を作成すれば、問題なく通信できるようになる筈です。
一般的は、ICMP(ping)にて相手のルータから応答が一定時間の間に無いときは、現状のIPSec-SAを破棄して、作り直すというための機能まはたスクリプトをルータに設定します。
なお、本資料では、このための処理(一部のルータを除き)を省いてます。