1

「openvswitch」のようなプロジェクトに取り組んでいます --- さまざまなネットワーク インターフェイス カードとインターフェイスする Linux カーネル モジュールです。

一部のネットワーク インターフェイス (eth0、eth1 など) をモジュールにバインドすると、インターフェイスから受信したパケットがカーネル モジュールによって処理されます (パケット ヘッダーが変更され、別のバインド インターフェイスからパケットが送信される場合があります)。

仮想マシン環境では、開発作業は簡単にできますが (カーネル空間プログラミングはしばしばマシンをクラッシュさせます)、テスト作業はほとんどできません。特定のパケットを vm の特定のインターフェイスに送信することは困難です。これには簡単な方法はありますか?

4

1 に答える 1

0

ハイパーバイザーでScapyなどのトラフィック生成ツールを使用して、VM に接続されている仮想 NIC にトラフィックを送信します。qemu/libvirt では、これらのインターフェースは通常、「vnet0」、「vnet1」などとして起動します。

ブリッジを使用せず、トラフィックを vnic に直接送信します。Linux ブリッジは IP トラフィックの転送に優れていますが、すべてのイーサネット フレームを変更せずに通過させるわけではありません。

于 2014-05-20T19:10:48.637 に答える