2

tun/tap デバイスが実際にどのように機能するかを理解するのに少し問題があります。これは wiki からのものです。

  1. 仮想ネットワーク デバイスは実際にどのように機能しますか? 仮想ネットワーク デバイスは、物理メディアからパケットを受信する代わりに、ユーザー空間プログラムから受信し、物理メディアを介してパケットを送信する代わりに、ユーザー空間プログラムに送信する単純なポイント ツー ポイントまたはイーサネット デバイスと見なすことができます。

tap0 で IPX を構成したとします。カーネルが IPX パケットを tap0 に送信するたびに、アプリケーション (VTun など) に渡されます。アプリケーションはそれを暗号化、圧縮し、TCP または UDP 経由で反対側に送信します。反対側のアプリケーションは、受信したデータを解凍して復号化し、パケットを TAP デバイスに書き込みます。カーネルは、実際の物理デバイスから来たかのようにパケットを処理します。

OK アプリケーションは暗号化、圧縮し、TCP または UDP 経由で反対側に送信します。

インターネットへのルーティングごとに 3 つの物理接続がある場合、tun/tap デバイスがインターネットへのルーティングに使用する物理デバイスはどれですか?

tun/tap インターフェイスと実際の物理インターフェイスとの間の実際の関係について誰も実際に話していないので、私は混乱しています。

事前にタイ

4

2 に答える 2

5

固有の関係はありません。

TUN/TAP も他のデバイスもルーティングを行わないことを理解することが重要です。インターネット プロトコル (IP) ルーティングは IP スタックによって処理され、実際には TAP インターフェイスと実際のイーサネット インターフェイスの違いを区別することはできません。IP スタックが TUN/TAP インターフェースから受信したパケットは、同じマシン上のプログラムによって生成され、IP スタックがパケットを TUN または TAP インターフェースからルーティングするときに、インターフェースを開いたソフトウェアによってのみ受信されます。それらは、実際のイーサネット ネットワークではなく、ソフトウェアに接続されたイーサネット ポートと考えてください。

引用した例を十分に理解しているようです。Vtun (ソフトウェア) は、tap0 インターフェイスとソケットの両方を開き、他の IP トラフィックと同様にルーティングします。Vtun は、tap0 で受信したパケットを取得し、暗号化と圧縮でカプセル化し、ソケットからプッシュします。そのソケットのもう一方の端にある Vtun の別のインスタンス (おそらく別のマシンで実行されている) は、ソケットからパケットをカプセル化解除し、カーネルのネットワーク層によって処理されるように TAP インターフェースにプッシュします。

しかし、ソケットは TAP の一部ではなく、ルーティング方法は IP スタック次第です。Vtun の両方のインスタンスが同じシステムで実行されている場合、ソケットは物理インターフェイスをルーティングする必要はありません。このようなユース ケースでは、ソケット (および暗号化と圧縮) を完全に削除できます。2 つの TAP インターフェイス間でデータを愚かにコピーする 1 つのプログラムを持つことができます。TUN/TAP 仕様には、ソケットまたは物理インターフェイスを必要とするものは何もありません。例のソケットは、Vtun プログラムの性質によって導入された機能であり、偶発的なものです。

したがって、インターネットへの 3 つの物理接続に関する質問は、TUN/TAP とは関係ありませんが、代わりに一般的な IP ルーティングに関するものです。その答えは、特定の構成に大きく依存します。

于 2014-07-03T22:00:15.127 に答える