IPSec トラフィックの場合、パロアルトネットワークファイアウォールは、3方向ハンドシェイクで TCP MSS を自動的に調整します。これは、VPN 外部インターフェイスで [TCP MSS の調整] オプションが有効になっているかどうかに関係なく発生します。
計算された MSS は、以下の2つの値の下にあります。
- トンネルインターフェイスの MTU-40 バイト
- インターフェイスの MTU、暗号化、認証アルゴリズムに基づいて計算された MSS
元のパケットサイズ、暗号化アルゴリズム、認証アルゴリズムとインターフェイス MTU の関係
次の状況を考慮します。
クライアント——— Palto アルト———インターネット———リモートファイアウォール———サーバー
\ ____________ (IPSec) ____________/
クライアントの MTU: 1500
サーバーの MTU: 1500
VPN の終端インターフェイス上の MTU: 1500
トンネルインターフェイスの MTU: 1500
暗号化アルゴリズム: AES-256-CBC
認証アルゴリズム: SHA1
ESP オーバーヘッド: (バイト単位のすべてのサイズ)
外部 IP ヘッダー | 20 |
シーケンス番号 | 4 |
SPI | 4 |
初期化ベクトル | 16 |
ESP パディング | [0-15] |
パディングの長さ | 1 |
次のヘッダー | 1 |
認証データ | 12 |
| |
合計 | [58-73] |
したがって、SHA1 を使用する AES-256 は、最大オーバーヘッドを73バイトとして生成します。
元のパケットサイズ + 最大オーバーヘッド<= 1500></= 1500>
tcp セグメント + tcp ヘッダー + IP ヘッダー + 最大オーバーヘッド<= 1500></= 1500>
TCP セグメント + 20 バイト + 20 バイト + 73 バイト<= 1500></= 1500>
TCP セグメント<= 1387 bytes 1387=""></= 1387 bytes>
MSS が1388として取得された場合、この場合の結果の ESP ヘッダーは1496バイトのみになります。(パディングは10バイトのみになります)
上から、
- トンネルインタフェース MTU に基づく MSS = 1500-20 バイト (IP ヘッダ)-20 バイト (TCP ヘッダ) = 1460 バイト
- MSS は、インターフェイスの MTU、暗号化、認証アルゴリズム = 1388 バイトに基づいて計算
最終 MSS 計算: MIN (1460, 1388) = 1388.
同じ計算は、暗号化/認証アルゴリズムのさまざまな組み合わせに使用することができます。既知の値のいくつかは次のとおりです。
初期化ベクトルのサイズ
認証データのサイズ
- MD5/SHA-1:12 バイト
- SHA-256:16 バイト
- SHA-384:24 バイト
- SHA-512:32 バイト
パディングの最大サイズ
注:
- 上記の動作は、PAN-OS 6.0 以降でテストされています。
- 上記と同じ場合、トンネルインタフェースの MTU を1400として設定した場合、結果の MSS は1360ではなく1388になります。
上記の計算を使用して、IPSec トンネルの最適な MSS 値を計算することもできます。ファイアウォールが ESP のオーバーヘッドを考慮して MSS を自動調整していない場合は、トンネル上で MTU の適切な値を設定できます。TCP 調整用の X インタフェース。
たとえば、上記の場合、ファイアウォールが ESP のオーバーヘッドに従って MSS を調整していなかった場合、トンネルインターフェイスの MTU を 1387 + 40 = 1427 バイトに設定できます。これにより、MSS 値が同じ1387バイトに調整されます。
これにより、IPSec トンネルを介した TCP アプリケーションのパフォーマンスが向上します。