IPsec - NAT Traversal



◆ IPsec - NAT Traversal

 NATトラバーサルとは、NAT/NAPTを使用しているネットワーク環境においてIPsec通信を問題なく実現する
 IPsecの拡張技術のことです。下図の通り、ESPパケットをUDPでカプセル化することにより、この付加された
 
UDPヘッダは暗号化の対象となっていないことから、NAPT機器でポート番号の書き換えを可能にしています。



  



 ◆ UDPのカプセル化の判断は誰が行うのか

 
それはIKEが自動的に行います。ISAKMPメッセージをやりとりする際にネットワーク上にNAPTデバイスが
 存在するかどうかを検出し、NAPT機器が存在すればUDPでのカプセル化を行うようネゴシエーションします。

Step ネゴシエーション 説明
@ IKE Phase 1の拡張機能


 ・ IPsecピアとなる双方の機器がNAT Traversalをサポートしているかを確認
 ・ IPsecピアを構築する経路上にNAPTデバイスが存在するかどうかを確認
 ・ IKEで使用するポート番号の変更 (送信元・宛先ともに500 → 4500へ変更)

A IKE Phase 2の拡張機能


 ・ ESPパケットをUDPでカプセル化するモードの決定
 ・ NAPTにより変更される前のIPアドレス情報の通知

B IPsec-VPN確立後
 ・ UDPカプセル化によるトランスポートまたはトンネルモードのESPパケットを送信


 これらのIKEフェーズ1、IKEフェーズ2の拡張機能でNAT Traversalが実現します。詳細は以下で解説します。



 ◆ IKE Phase1 の拡張機能

 IKE Phase1,2でやり取りされるISAKMPメッセージは、ISAKMPヘッダとISAKMPペイロードで構成されます。
 このうちISAKMPペイロードで、自身がNAT Traversalをサポートしていることを相手に示すことができます。
 Mainモード、AggressiveモードのどちらでもNATトラバーサル使用時の第一メッセージと第二メッセージに
 NAT Traversalをサポートしていることを示すペイロードタイプ値「
13」の「Vendor ID」が含まれています。

 ISAKMPの第一メッセージを送信する時は送信元、宛先ポートともにUDPポート番号「500」を使用しますが、
 経路の途中でNAPT変換が行われた場合は、送信元ポート番号は変換されるので、NAT Traversal を実装する
 IPsec機器は送信元ポート500以外のISAKMPメッセージを受信できるように、ACLを注意する必要があります。

 ISAKMPメッセージのMainモードにおける第3メッセージと第4メッセージ、またはAggresiveモードにおける
 第2メッセージと第3メッセージでは、IPsecピアを構築する経路上にNAPTデバイスが存在するのかの確認と
 NAPTデバイスが自身か相手どちら側に位置するのかを、ペイロードタイプ値「
20」の「NAT-D」で行います。

 この結果、IPsecピアを構築する経路上にNAPTデバイスを検知した場合、Mainモードは第5メッセージから
 Aggresiveモードの場合は第3メッセージから、ISAKMPメッセージの送信元と宛先ポート番号を「500」から
 「4500」に変更します。但し先に述べた通り、経路の途中でNAPT変換が行われた場合に送信元ポート番号
 が変換されるので、IPsec機器は送信元ポート500や4500以外のISAKMPメッセージを受信できるようにACL
 設定などを注意する必要があります。このタイミングでUDPヘッダとISAKMPヘッダの間に
Non-ESP Marker
 という4バイトの0を挿入して、ISAKMPメッセージのフォーマットを変更します。以下は上記解説の要約です。

IKE Phase1 の拡張機能
IKEモード ISAKMP 動作
 Mainモード  第1・2メッセージ

 NAT Traversalをサポートしていることを示すペイロードタイプ13 のVendor IDが
 含まれたISAKMPメッセージをやりとりする。この時点でUDPポート番号500を使用。

 Aggressiveモード  第1、2メッセージ
 Mainモード  第3、4メッセージ

 IPsecピアをはる通信経路上に、NAPTデバイスが存在するかどうかを検出する
 ペイロードタイプ「20」のNAT-Dが含まれたISAKMPメッセージをやりとりする。
 この時点ではUDPポート番号500を使用する。

 Aggressiveモード  第2、3メッセージ
 Mainモード  第5、6メッセージ

 IPsecピアをはる経路にNAPTデバイスを検知した場合、ISAKMPメッセージの送信元
 及び宛先ポート番号を 500 から「4500」に変更する。また、ISAKMPメッセージの
 フォーマットが変更(UDPヘッダとISAKMPヘッダの間に Non-ESP Marker を挿入)

 Aggressiveモード  第3メッセージ




 ◆ IKE Phase 2の拡張機能

 NATトラバーサルにおけるIKEフェーズ2では、UDPカプセル化のモードを決定する必要があります。通常の
 IPsecの基本仕様では、IKEフェーズで決定するトンネルモードなのか、トランスポートモードなのかを決定
 するのですが、IPsecの拡張仕様ではUDPカプセル化トンネルモード、UDPカプセル化トランスポートモード
 が定義されており、これらのうちどれを使用するのかををネゴシエーションで決定します。これらの情報は
 Quickモードの第一メッセージと第二メッセージで、ペイロードタイプ「
3」の Transform で伝えられます。

 また、トランスポートモードを使用する場合にTCP/UDPなどのチェックサム検証が失敗する問題を防ぐ為に
 Quickモードの第一メッセージと第二メッセージにて、ペイロードタイプ「
21」の「NAT-OA」の情報により
 NAPTにより変換される前のIPアドレスの情報を交換する場合があります。



IPsec、IPsec-VPN、リモートアクセスVPN

ネットワークエンジニアとして

Copyright (C) 2002-2019 ネットワークエンジニアとして All Rights Reserved.