IPsec 規格では、IPsec の動作モードとして「トランスポートモード」と「トンネルモード」という 2 つの異なるモードが定義されています。これらのモードは、パケットの符号化には影響を与えません。各モードで、パケットは AH または ESP、あるいはその両方によって保護されます。内側のパケットが IP パケットである場合に、モードによってポリシーの適用方法が次のように異なります。
トランスポートモードでは、外側のヘッダーによって、内側の IP パケットを保護する IPsec ポリシーが決まります。
トンネルモードでは、内側の IP パケットによって、その内容を保護する IPsec ポリシーが決まります。
トランスポートモードでは、外側のヘッダー、次のヘッダー、および次のヘッダーでサポートされるすべてのポートを使用して、IPsec ポリシーを決定できます。実際、IPsec は 2 つの IP アドレスの間で異なるトランスポートモードポリシーを適用でき、ポート単位まで細かく設定できます。たとえば、次のヘッダーが TCP であれば、ポートをサポートするので、外側の IP アドレスの TCP ポートに対して IPsec ポリシーを設定できます。同様に、次のヘッダーが IP ヘッダーであれば、外側のヘッダーと内側の IP ヘッダーを使用して IPsec ポリシーを決定できます。
トンネルモードは IP 内 IP データグラムに対してのみ機能します。トンネルモードのトンネリングは、自宅のコンピュータから中央コンピュータに接続する場合に役立ちます。トンネルモードでは、IPsec ポリシーは内側の IP データグラムの内容に適用されます。内側の IP アドレスごとに異なる IPsec ポリシーを適用できます。つまり、内側の IP ヘッダー、その次のヘッダー、および次のヘッダーでサポートされるポートを使用して、ポリシーを適用することができます。トランスポートモードとは異なり、トンネルモードでは、外側の IP ヘッダーによって内側の IP データグラムのポリシーが決まることはありません。
したがって、トンネルモードでは、ルーターの背後にある LAN のサブネットや、そのようなサブネットのポートに対して、IPsec ポリシーを指定することができます。これらのサブネット上の特定の IP アドレス (つまり、ホスト) に対しても、IPsec ポリシーを指定することができます。これらのホストのポートに対しても、固有の IPsec ポリシーを適用できます。ただし、トンネルを経由して動的経路制御プロトコルが実行されている場合は、サブネットやアドレスは選択しないでください。ピアネットワークでのネットワークトポロジのビューが変化する可能性があるためです。そのような変化があると、静的な IPsec ポリシーが無効になります。静的ルートの構成を含むトンネリング手順の例については、「IPsec による VPN の保護」を参照してください。
Solaris OS では、IP トンネルネットワークインタフェース上でのみトンネルモードを実施できます。ipsecconf コマンドには、IP トンネルネットワークインタフェースを選択するための tunnel キーワードがあります。規則内に tunnel キーワードが含まれている場合は、その規則に指定されているすべてのセレクタが内側のパケットに適用されます。
トランスポートモードでは、ESP または AH、あるいはその両方を使用してデータグラムを保護できます。
次の図は、IP ヘッダーと保護されていない TCP パケットを示します。
トランスポートモードで、ESP は次の図のようにデータを保護します。網かけされた領域は、パケットの暗号化された部分を示します。
トランスポートモードで、AH は次の図のようにデータを保護します。
AH はデータがデータグラムに出現する前に、実際データを保護します。その結果、 AH による保護は、トランスポートモードでも、IP ヘッダーの一部をカバーします。
トンネルモードでは、データグラム全体が IPsec ヘッダーの保護下にあります。図 19–3 のデータグラムは、トンネルモードでは外側の IPsec ヘッダー (この例では ESP) によって保護され、次の図のようになります。
ipsecconf コマンドには、トンネルをトンネルモードまたはトランスポートモードで設定するためのキーワードが用意されています。
ソケットごとのポリシーの詳細については、ipsec(7P) のマニュアルページを参照してください。
ソケットごとのポリシーの例については、「IPsec を使って Web 以外のトラフィックから Web サーバーを保護する方法」を参照してください。
トンネルの詳細については、ipsecconf(1M) のマニュアルページを参照してください。
トンネル設定の例については、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」を参照してください。