IPSec トンネリング モードとトランスポート モードとトランスポート + L2TP

IPSec トンネリング モードとトランスポート モードとトランスポート + L2TP

多くのドキュメントによれば、ホスト間 IPSec ではトランスポート モードを使用し、ゲートウェイの接続にはトンネリングを使用し、リモート アクセスには L2TP を使用します。

しかし、ゲートウェイ間でトランスポート モードを使用することを妨げるものは何もありませんよね? 1 つのゲートウェイが ESP (または AH) を読み取り、それを削除し、裸の IP パケットをそのネットワークにルーティングする場合があります。

また、PC とデータベース サーバーの間でトンネリング モードを使用することもできます。各パケットを個別の UDP でラップするのはおそらく冗長ですが、使用可能です。

また、自分の PC のユーザーが自分だけであれば、リモート アクセスに裸の IPSec (L2TP なし) を使用できます。アカウンティング、IPCP 経由のネットワーク構成、その他の PPP 機能は必要ありませんが、必ずしも必要ではありません。

結局のところ、L2TP は 2 つのゲートウェイを接続するために使用できます。

そこで、私の質問は、なぜこれらすべてのアプローチが存在し、互いに重複しているのかということです。ほとんどの場合、IPSec トランスポートはトンネリングに変更でき、その逆も可能なのに、なぜ IPSec トランスポートがまだ存在しているのでしょうか。これらの方法の 1 つが「唯一適切な方法」である場合の例を挙げていただけますか。

答え1

ほとんどの場合、IPSec トランスポートはトンネリングに変更でき、その逆も可能であるにもかかわらず、なぜ IPSec トランスポートがまだ存在するのでしょうか?

現在、ネットワーク デバイス ユーザーの一般層でトランスポート モード IPSec が使用されているのを目にすることはありません。普遍的に導入されるほどの勢いがなかったと思います。ソフトウェア ベンダーやネットワーク ベンダーは、リモート アクセスを必要とする企業顧客にトンネル モードの実装 (および拡張バックエンド) を販売する意欲がありましたが、トランスポート モードを誰にも売り込まなかったのです。機能は存在していたかもしれませんが、使いやすさはまだまだ改善の余地があります。

では、トランスポート モードは存在しますが、まだ意味があるのでしょうか? トランスポート モードは歴史的に、多数のユーザーがアクセスできませんでした。唯一の例外は、フリー ソフトウェアの人たちです。

IPsec の日和見暗号化の歴史と実装状況

上記のリンクでは、IPSec をあらゆる場所で使用するための歴史的な取り組みと、その取り組みがどのようにして妨げられたかが説明されています。その理由は、インターネット インフラストラクチャ (DNS など) の安全性の欠如と、それを変更することに携わった人々の相対的な無関心に要約できます。

なぜこれらすべてのアプローチが存在し、互いに重複しているのでしょうか?

これらすべてのアプローチは、主に、ほぼ同時期に、安全なリモート アクセスのニーズの変化を個別に特定し、それに対する解決策を講じたために存在しています。質問の少し改善されたバージョンは、「なぜこれらすべてのアプローチがまだ使用されているのですか?」となるでしょう。

L2TPがなぜまだ使われているのか、つまりアカウンティングと設定について、あなたは自分自身の疑問に答えました。(PPTPなどの他のプロトコルがなぜ使われなくなったのかを調べる方が興味深いかもしれません。)多くの場合、アカウンティングと設定を気にしなくても、

他のケースでは、答えはそれほど明確ではありません。ゲートウェイ間の場合を考えてみましょう。純粋なトンネル モード IPSec を使用することも、IPSec 経由の GRE トンネルを使用することもできます (実際、トランスポート モード IPSec 経由だと思います)。どちらにしても、慣れていること以外に利点があるかどうかはわかりません。個人的には、Cisco ルーターでトンネル モード IPSec を設定したことはありません。常に暗号化された GRE を使っています。なぜでしょうか。プレーン GRE について私が知っていることはすべて、暗号化された GRE にも当てはまるからです。そのため、私にとっては馴染み深いのです。

OpenVPN や Secure Shell などのアプリケーション レベルの VPN/トンネルも忘れないでください。これらは一般に、カーネル レベルまたはアプライアンス レベルの実装よりもパフォーマンスが劣ります。しかし、これらは一般に使いやすく、プロキシやファイアウォールを簡単に通過できるという利点がありました (少なくとも、ディープ コンテンツ インスペクションが登場するまでは)。また、依存関係が少ない場合が多く、古い Linux サーバーで OpenVPN をコンパイルする方が、IPSec をサポートするためにカーネルを再コンパイルするよりもはるかに簡単です。

これらの方法のうちの 1 つが「唯一正しい方法」である場合の例を挙げていただけますか?

ネットワークでは (コンピューティングの多くの部分と同様に)、「使用すべき唯一の正しい方法」というものは存在しません。ほとんどの場合、実行可能な方法でしか実行できません。たとえば、すべての Android デバイスは L2TP ベースの VPN で動作します。したがって、構成やアカウンティングが不要であっても、これは実行可能です。Cisco デバイスの GRE トンネルに精通しているため、純粋なトンネル モード IPSec よりも実装が簡単です。また、アップグレードできない古い Linux サーバー (何らかの理由で) で OpenVPN または SSH ベースのトンネルを作成することもできます。

答え2

  • IPsec トンネルとトランスポート モード
    • トンネルモードはオーバーヘッドが大きい
    • トランスポートモードは、ラッピングにIPアドレスの追加セットが含まれていないため、ホスト間でのみ機能します。
  • オーバーヘッドは問題ですか?
    • 通信の前にホスト同士が IPsec の関連付けを確立する時代を想像してください ** IPsec はどこにでもあります ** トンネル モードでは、IP アドレスは各パケットに 2 回あります → リソースの無駄です

関連情報