IPsec-VPN接続は、断片化されたパケットを送信するために使用できますが、断片化を実行したり、パケットの断片を再構築したりできません。 IPsec-VPNを使用すると、IPsecプロトコルによってパケットが暗号化されるため、パケットサイズが大きくなります。 増加したパケットサイズは、ネットワークの最大伝送単位 (MTU) を超え、パケットの伝送に影響を及ぼす可能性がある。 このトピックでは、期待どおりにパケットを送信できるようにMTUを設定する方法について説明します。
原則
上の図は、MTU設定の原理を説明するために使用できる例を示しています。 この例では、データセンターはIPsec-VPN接続を使用して仮想プライベートクラウド (VPC) に接続されています。 クライアントがVPCにアクセスすると、パケットはオンプレミスゲートウェイデバイスで暗号化され、インターネットに送信されます。 パケットは、インターネットアクセスをサポートするネットワークデバイスであるRouter2およびRouter3を使用してVPN gatewayに送信されます。
クライアントからVPNゲートウェイへのパケットの送信中、パケットサイズは次のタイプのMTUによって制限されます。
ユーザーMTU
ユーザMTUは、クライアントとオンプレミスゲートウェイ装置との間の全てのネットワーク装置インターフェースの最小MTUである。 ユーザMTUは、クライアントによって送信されるパケットのサイズを制限する。
この例では、ユーザMTUは、「1」とマークされたインタフェースの最小MTUである。
パブリックインターフェースMTU
パブリックインターフェイスMTUは、VPNゲートウェイに接続されているオンプレミスゲートウェイデバイス上のパブリックインターフェイスのMTUです。 パブリックインターフェイスMTUは、暗号化パケットのサイズを制限します。
この例では、公開インターフェースMTUは、「2」とマークされたインターフェースのMTUである。
パスMTU
パスMTUは、インターネットアクセスをサポートするすべてのネットワークデバイスインターフェイスの最小MTUです。 経路MTUは、暗号化されたパケットのサイズを制限する。
パスMTUについては、インターネットサービスプロバイダー (ISP) に相談できます。 デフォルトでは、イーサネットのパスMTUは1,500バイトです。
この例では、パスMTUは、「3」とマークされたインタフェースの最小MTUである。
パケットを期待どおりに送信できるようにするには、データセンターでユーザーMTUとパブリックインターフェイスMTUを設定する必要があります。 MTUが次の条件を満たしていることを確認します。
Maximum user MTU = Min {Public interface MTU, path MTU} - 101. #101 indicates the maximum bytes of a packet encrypted by IPsec.
VPNゲートウェイが2021年4月1日より前に作成され、データセンターで設定されたユーザーMTUが1,300バイトを超える場合、IPsec-VPN接続が失敗する可能性があります。 この場合、VPN gatewayを最新バージョンに更新することを推奨します。 詳細については、「VPN gatewayのアップグレード」をご参照ください。
例:
上の図は、パスMTUが1,500バイトで、オンプレミスゲートウェイ装置のパブリックインターフェイスMTUが1,500バイトに設定されている例を示しています。 次の式を使用して、最大ユーザーMTUを計算できます。
Maximum user MTU = min {1,500,1,500} - 101 = 1,500 - 101 = 1,399 bytes
この場合、クライアントから1,399バイトを超えないサイズのパケットを送信することを推奨します。 さもなければ、パケットは送信されないかもしれない。
MSS設定
IPsec-VPN接続でTCPトラフィックを送信し、セグメント単位でパケットを送信しない場合は、最大セグメントサイズ (MSS) とユーザーMTUが次の条件を満たしていることを確認してください。
MSS = User MTU - IP packet header size - TCP packet header size
例えば、パブリックインタフェースMTU及びパスMTUが共に1,500バイトである場合、最大ユーザMTUは1,399バイトであり、IPパケットヘッダ及びTCPパケットヘッダのサイズは共に20バイトである。 パケットがセグメント化されないことを保証するために、MSSは1,359バイトを超えることはできない。