web-dev-qa-db-ja.com

TUNデバイスにBROADCASTフラグがないのはなぜですか?

LinuxでTUNデバイスを作成する場合、私のマシンでは、作成されたTUNデバイスに次のフラグがあります。

<POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP>

明らかに、MULTICASTはそこにリストされていますが、BROADCASTはリストされていません。 TUNデバイスはIPパケットを処理するため、ブロードキャストアドレスに送信されたパケットをどのように処理するかを決定するのはTUNデバイスファイルを処理するプログラムです。さらに、BROADCASTフラグがこのデバイスにリストされていない場合でも、アプリケーションがTUNデバイスのブロードキャストアドレスにパケットを送信することも合法です。

では、なぜTUNデバイスにBROADCASTフラグがないのですか?

編集:混乱してすみません。 TUNデバイスとは、OpenVPNがトンネリングに使用する方法を具体的に意味するものではありません。ここで説明するようなLinux(または他のUnix)のTUNデバイスを意味します: http://www.kernel.org/doc/Documentation/networking/tuntap.txt

4
Song Gao

これの鍵は、それが「POINTTOPOINT」であるという事実です...あなたのマシンはリモート側に直接接続し、実際のブロードキャストはリモートエンドによって生成される必要があります。確かに、ブロードキャストアドレスにパケットを送信すると、リモートエンドは確実にパケットを渡し、ブロードキャストアドレスに送信されたパケットもすべて返します。

対照的に、複数のワークステーションがスイッチに直接接続されている場合、マシンはブロードキャストを送信でき、そのブロードキャストを他のピアに再送信するためにgatewayは必要ありません。

4
TheCompWiz