Tun/Tapの違いはプロトコルを処理するインタフェースですか、それともオペレーティングシステムですか?

Tun/Tapの違いはプロトコルを処理するインタフェースですか、それともオペレーティングシステムですか?

タブとトンインタフェースの違いを理解するのが難しいです。この質問が多い質問であることを知っており、これについてお詫び申し上げます。私はstackoverflowに同じ質問をし、このフォーラムを試してみるように言われたので、良い場所にいることを願っています。そして私はネットワーキングについて疑問に思っているだけで、ネットワーキングを専攻する学生や専門家ではないので、私の質問があまりにも単純であってもご了承ください。

私はタブがレイヤ2で動作し、トンがレイヤ3で動作することを読みました。また、タブはブリッジング用で、tunはルーティング用であることも読みました。 「ルーターはレイヤー3で動作します」または「ブリッジはレイヤー2で動作します」などの言葉を聞きました。ルーターはレイヤー3プロトコルを処理し、ブリッジはレイヤー2レイヤープロトコルを処理するので、これは理解できますか?しかし、タップアンドトゥーンは「インターフェース」なので、「インターフェースはレイヤ3で動作します」などの文には何の意味がありますが、それが何であるかを理解していません。インターフェイスがプロトコルを操作しないことを意味します(オペレーティングシステムはインターフェイスではありませんが)tunインターフェイス==タブインターフェイスのように聞こえます。

異なるネットワーク(192.168.2.1/24および192.168.3.1/24)にある2つのIPを使用して2つのタブインターフェイス(tunctlを使用)を作成する場合は、2つのkvm仮想マシンに接続します(1つのタブインターフェイスはVMは1つと一致します)。ホストでルーティングを有効にすると、両方のVMが通信できます。

したがって、タブインターフェイスをルーティングにも使用できます。 tunとの違いは何ですか?たぶんTapもtunインターフェースでしょうか?

tunctlコマンドを使用してtapインターフェースを作成することもできますが、同じコマンドを使用してtunインターフェースを作成するにはどうすればよいですか(コマンドはTAPctlの代わりにTUNctlと呼ばれます...)。

そして私は次のような言葉を聞きました。

TUNデバイスは仮想イーサネットアダプタですが、TAPデバイスは仮想ポイントツーポイントIPリンクです(これがわからない場合は、ポイントツーポイントIPリンクとポイントツーポイントIPリンクの違いが何であるかを検索エンジンに問い合わせてください)。イーサネット経由の仮想IPリンク)

そのため、ポイントツーポイントIPリンクとイーサネットリンクを調べましたが、別の質問があります。

  1. 「ポイントツーポイントIPリンク」とは何ですか?私によると、ポイントツーポイントリンクは、複数のコンピュータで構成されたネットワークがあるときに他のコンピュータがそれを知らない間に2つのコンピュータ間で通信が行われることを意味します。だから、「ポイントツーポイントIPリンク」は特別なケースであり、「レイヤ3ポイントツーポイントリンク」と呼ぶことができると思います。これは、ポイントツーポイント接続がレイヤ3によって保証されることを意味します。そうですか?

  2. イーサネットを介してスイッチに複数のPCが接続されている場合、すべてのリンクは「ポイントツーポイントIPリンク」と見なすことができます。 Wiki Ethernetページにも同様のものが記載されています(「(...)ポイントツーポイントリンク用に設計されています」)。ここも同様です。http://ethernetdirect.com/support_faqs.asp「イーサネットはポイントツーポイントネットワークソリューションです。」それでは、「ポイントツーポイントIPリンク」とイーサネットリンクの違いは何ですか?

この問題を明確にするのに役立ちますか?

答え1

これ基本的な 違いTUNそしてTAPOSI層彼らが活動する場所(実際にはいいえ各デバイスタイプに必要なプログラミングを含む):

  • 蛇口OSIレイヤ2) - 名前は材料に物理的に接続される場所TAPです(単に接続to TAP intoできるイーサネットケーブルではありません)。TAPビール缶例)
    TAPは、コンピュータが接続されているイーサネットケーブルの物理的な拡張として機能します。これはframe、その行に存在するすべてを渡すことができることを意味します。たとえば、IPv4/6、Netware IPX、Appletalkなどがあります。

  • 大さじOSIレイヤ3) - aの終点でTUNある関数の名前とTUNnel
    TUNnelただ渡すルーティング可能IPv4 packets(およびサポートされているIPv6)。また、packets次のホップに正しくルーティングできるように、ルーティングを正しく設定する必要があります。

オープンVPN供給これ情報。


さらに、TUNデバイスは仮想イーサネットアダプタであり、TAPデバイスは仮想ポイントツーポイントIPリンクであると言われました。

今ご覧のとおりです。間違ったバイパス...

答え2

システムにはさまざまな種類の複数のネットワークアダプタがあります。

TAP インターフェイスは仮想イーサネットアダプタを表します。仮想アダプタを通過するパケットは、送信元と宛先のMACアドレスを持つイーサネットフレーム形式になります(フレーム確認順序は省略されるかもしれませんが、わかりません)。実際のイーサネットアダプタと同様に、カーネルはARP / NDを使用して「次ホップIPアドレス」をMACアドレスに変換し、着信パケットに対してMACフィルタリングを実行します。実際のイーサネットアダプタと同様に、Tapインターフェイスも必要に応じてイーサネットブリッジの一部として含めることができます。

TUNインターフェイスは仮想「raw」アダプタを表します。仮想アダプタを通過するパケットは、パケットの種類とフラグを表すオプションのヘッダーを持つレイヤ3プロトコルの生のパケットです。カーネルは、ネクストホップ IP アドレスをいかなる形式の下位アドレスに変換しようとしません。

答え3

私はこの質問を受けてから長い時間が経過したことを知っていますが、他の答えはすでに2つの違いについての技術的な情報を提供しているので、私は言ったことをTAP繰り返さTUNないでしょう。

私はこの質問に次の観点から答えたいと思います。「言語混乱」

この質問を読んだ後、あなたが苦しんでいる混乱と欲求不満の大部分が読んでいる資料に含まれている単語の混乱して矛盾する使用/意味に由来するようです。私が考える重要な質問は次のとおりです。文脈によっては、単語/用語は異なる意味で使用されることがあります。文書作成者が読者に要点を伝えたい場合は、作成者は読者が文脈を見ることができるようにする必要があります。しかし、これはまた、読者が文脈を明確に見るのに十分であるか正確な知識を持っているかどうかによって部分的に異なります。

混乱は、著者と読者が同じ文脈にない場合に発生します。

どちらかを非難するのは良くありませんが、読者に伝える内容があるので、その責任は作家にもっと負わなければならないと個人的に考えます。それで、それを明らかにする負担は当然作家たちが背負うことになります。

あなたの質問に戻ります。

混乱を明確にするために、次のようにしてください。

ルータはレイヤ3プロトコルを操作し、ブリッジはレイヤ2プロトコルを操作するので、これは理解できますか?しかし、タップアンドトゥーンは「インターフェース」なので、「インターフェースはレイヤ3で動作します」などの文には何の意味がありますが、それが何であるかを理解していません。インターフェイスがプロトコルを操作しないことを意味します(オペレーティングシステムはインターフェイスではありませんが)tunインターフェイス==タブインターフェイスのように聞こえます。

ここで、「インターフェース」という言葉は実際には2つのオブジェクトを意味することに注意してください。

物理ブリッジまたはルーターを考えてみてください。ポート付きのボックスです。このポートはケーブルを接続する場所です。レイヤ 2 またはレイヤ 3 プロトコルの操作は、そのポートでは発生しませんが、そのポートで実行されるソフトウェアによってボックス内で実行されます。したがって、誰かが「ブリッジ/ルーターのポートはレイヤ2/3で動作します」と言うと、ポート自体ではなくレイヤ2/3で動作するボックスなので奇妙に聞こえます。

しかし、より大きなコンテキスト、つまりその背後にあるネットワーク全体のコンテキストでブリッジやルーターを見ると、ブリッジやルーターは、言い換えれば、ネットワーク間の「インターフェース」です。ここでは、ブリッジ/ルーターをもはや「ボックス」とは考えず、その背後にあるより大きなシステムに接続する「ドット」と考えます。はい。ブリッジまたはルーターは実際にポートがあるボックスです。しかし、この大きな文脈では、私たちは箱の詳細をあまり気にしません。私たちは箱全体を考えます。したがって、この記事では、「インターフェース」という言葉は単にボックス内のポートを意味するものではありません。これには、レイヤー2/3プロトコルを操作できるボックスが含まれます。

それでは、tapandに関する質問に戻りますtun。私の考えでは:

  1. Atapまたは a はtunプロトコルが機能しないため、インターフェイス(ポートという意味)です。
  2. より大きな文脈で見ると、tap/tunインターフェースとその背後にあるプログラム/オペレーティングシステム/仮想マシンを全体的に見てみると、これが他のシステムと通信する「インターフェース」と言えます。ここでは「インターフェース」という言葉の意味が若干変わりますが、これに気づかなかったり、作者が気づかないようにすると混乱が生じることがあります。

関連情報