ユーザー空間ネットワークスタック

ユーザー空間ネットワークスタック

私は(非常に単純な)ユーザーレベルのIPネットワークスタックを書いています。これを行うには、OSネットワークスタックを「バイパス」してネイティブイーサネットフレームをインポートする必要があります。このtapインターフェースは実行可能なアプローチのように聞こえますが、私にとってはうまくいかないようです。とインターフェイスbridgeの間にインターフェイスを作成しましたが、実際のインターフェイスには他の多くのパケットが含まれているにもかかわらず(もう一度確認されます)、そこには非常に奇妙なUDPパケットがほんの数だけ表示されます。wlantaptcpdump -i tap0 -e -vvwlantcpdump

私は何が間違っていましたか?ユーザ空間ネットワークスタックソリューションを解決する他の(より良い)方法はありますか?

ベストアンサー1

Wi-Fiステーションモードインターフェイスをブリッジできず、機能しません。どのソフトウェアスタックを使用するかは問題ではありません。この制限は仮想化などに適用されます。

それは明確ではありません。説明しようとします。

ieee802.11 パケットには (通常) 3 つのアドレスが含まれます。アクセスポイントのアドレス、送信者アドレス、受信者アドレス。送信者と受信者アドレスは、有線イーサネットとワイヤレスイーサネット間で共有されるイーサネットMACアドレスです。パケットは無線「ステーション」と有線ネットワーク(別名「DS」、配布システム)のホストとの間を流れることができるが、ステーションIDと宛先アドレスを含むのに十分なパケットフィールドにアドレスフィールドがないため、ステーションはもはや配布できない。 。 (同じ分野です。)

その結果、「メインモード」(アクセスポイント)インターフェイスはブリッジできますが、ステーションモードインターフェイスはブリッジできません。

解決策は通常、ブリッジングの代わりにNATを使用するルーティングを使用することです。

おすすめ記事