10

通常、eth0などのインターフェイスを介してpcapのtcpreplayを送信する場合、パケットはアウトバウンドになります。つまり、ネットワークカードを介して送信されます。システムがそれをインバウンドパケットとして処理するように、pcapsをインバウンドにする方法はありますか?

考えられるシナリオ

eth0からパケットを受信し、パケットから詳細を抽出してeth1を介して送信するアプリケーションがあります。これで、ネットワークがセットアップされ、実際のパケットが実際にシステムに流入する場合、状況は良好です。しかし、テストの目的で、eth0またはeth1ポートに接続されているものはありませんが、外部の物理ネットワーク接続に依存する必要がないように、pcapから(おそらくスクリプトを介して)同様の種類のトラフィックを作成したいです。アプリケーションをテストするため。

4

3 に答える 3

7

に置き換えeth0ますlo

  1. loからパケットを受信し、にパケットを送信するアプリケーションを実行しますeth1
  2. にパケットを送信する別のプログラム(パケットジェネレータ)を実行しますlo

送信されるすべてのパケットは再度lo受信されるloため、アプリケーションはパケットジェネレータからパケットを受信します。

他のパケットでビジー状態の場合loは、カーネル引数によってループバックデバイスを追加できますmax_loop=x

于 2012-08-17T10:35:18.660 に答える
5

考えられる解決策はいくつかあります。

  • 手っ取り早い解決策: 2 つの物理接続があるため、パッチ ケーブルを使用してマシンの 2 つのイーサネット ポートを接続することを検討したことはありますか? を使用して、libpcapを介してパケットを送信し、 を介しeth1て受信することができますeth0。もちろん、このソリューションにはマシンへの物理的なアクセスが必要であり、それらの接続を通常どおり使用することもできなくなります。

  • 正しい解決策:あなたが探しているのは、物理ネットワーク インターフェイスを介してトラフィックをエミュレートする方法であるように思えます。Linux (および場合によっては他の Unix ライクなシステム) でこれを行う一般的な方法は、TAP仮想インターフェイスを作成することです。TUN/TAP インターフェースの簡単なチュートリアルについては、こちらをご覧ください。

    残念ながら、tpcreplayまだ TUN/TAP インターフェイスをサポートしていないようです。なんとかうまくいくかもしれませんが、かなり厄介だと思います

  • 妥協点: VirtualBoxなどで Linux 仮想マシンを使用します。必要な正確なネットワーク構成についてはわかりませんが、私が知る限り、これは機能するはずです。

于 2012-08-19T08:18:11.980 に答える
1

同じコンピュータ上で特定のネットワーク カード/インターフェースを介してパケットを送受信しますか?
私が知っている唯一の方法は、バウンス/エコー サーバーをセットアップすることです。

于 2012-08-10T12:44:34.323 に答える