私はすでにいくつかの検索を行っており、多かれ少なかれtun0
インターフェースの機能を理解しています。私はさまざまな情報源から次の情報を得ました、
オペレーティングシステムがtun/tapデバイスを介して送信したパケットは、デバイスに接続するユーザー空間プログラムに配信されます。ユーザー空間プログラムは、パケットをtun/tapデバイスに渡すこともできます。この場合、tun/tapデバイスはこれらのパケットをオペレーティングシステムのネットワークスタックに配信(または「注入」)し、外部ソースからの受信をエミュレートします。 tun/tapインターフェースはソフトウェアのみのインターフェースです。つまり、カーネルにのみ存在し、通常のネットワークインターフェースとは異なり、物理的なハードウェアコンポーネントはありません(したがって、物理的なワイヤーは接続されていません)。
Tun/tapインターフェースは通常のネットワークインターフェースと考えることができます。カーネルがデータを送信する瞬間が来たと判断すると、代わりにインターフェースに接続されているユーザースペースプログラムにデータを送信します。
eth0
とtun0
の出力を比較すると、次のようになります。
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:14:22:50:78:71
inet addr:172.16.210.32 Bcast:172.16.255.255 Mask:255.255.0.0
...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
<snipped>
ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
ここで、2つを比較しようとすると、これらの違いがわかります。
eth0
にはMACアドレスがあり、当然tun0
にはありません。
eth0
はブロードキャストモードで動作しており、tun0
はポイントツーポイントモードで動作しています。
わからないことが次のような点があります。
このシナリオでのアドレスP-t-P:10.8.0.2
の役割は何ですか?
tun0
のサブネットマスクが255.255.255.255に設定されているのはなぜですか?
ハードウェアネットワークリンクは、ポイントツーポイントまたはポイントツーマルチポイントのいずれかです。 pppリンクはポイントツーポイント、イーサネットはポイントツーマルチポイントです。 tunはどちらとしても機能できますが、あなたの場合はポイントツーポイントリンクとして機能します。ポイントツーマルチポイントインターフェイスには4つのアドレスが関連付けられています。具体的には、IPアドレス(インターフェイスのアドレス)、ネットワークアドレス、ブロードキャストアドレス、ネットマスクです。ポイントツーポイントリンクには2つのアドレスが関連付けられています。具体的には、IPアドレス(ニアアドレス)とポイントツーポイントピアアドレス(ファーアドレス)です。ポイントツーポイントリンクは2つのアドレスでのみ機能するため、ブロードキャストアドレスとネットワークアドレス、およびネットマスクには有用なデータがないか、フラグ値がありません。
最後のポイントのtunインターフェースはMACアドレスを持つことができますが、デフォルトのMACアドレスはありません。