ユーザ空間でのパケット送受信機能を備えたカスタムネットワークインタフェース

ユーザ空間でのパケット送受信機能を備えたカスタムネットワークインタフェース

Linuxプラットフォームのユーザースペースでカスタムネットワークインターフェースを実装できますか? netifは、ユーザー空間で最もよくアクセスされる異常な物理リンクを介してパケットを送信する必要があります。

送受信機能はIPレベルで機能する必要があり、リンクはイーサネットではなく独自のアドレス解決方法があるため、LinuxはARPを試みてはいけません。

たとえば、C言語でこれらのタスクを実行するには?開始できるサンプルコードはありますか?

答え1

はい、多くのソフトウェアはデフォルトですべてのユーザーレベルのVPN実装を実行できます。

ここでの秘密は、カーネルにTUNまたはTAPデバイスを作成し、そこにソフトウェアを接続するように要求することです。

  • TAPを利用したイーサネット層のソフトウェア実装、
  • IP層のソフトウェア実装にはTUNが使用されます。

多くの例とチュートリアルがあります。これがWikipediaの記事の内容です。ターン/タップ次の接続が必要です。tuntapのカーネルドキュメント;これはスタックオーバーフローです。回答 tun ドライバーの使い方

関連情報