web-dev-qa-db-ja.com

VMwareを使用したTcpreplaying

これは、テストベッドのセットアップに関する質問に似ています。

VMwareを使用して、VMのLinuxカーネルのネットワークコードをデバッグしたいと思います。私のVMには2つのネットワークインターフェイスがあります。ホストでキャプチャファイルを再生し、VMでパケットを受信します。私の問題は、VMで再生されたパケットが表示されないことです。

  1. ホスト上でSudoとしてVMwareとtcpreplayを実行しています。したがって、デバイスファイルへのアクセスに問題はないはずだと思います。
  2. VMware Workstation7.0を実行しています

a。独自の仮想ネットワーク名を作成するオプションを提供するカスタムネットワークから始めました。 2つのインターフェイス用にそれぞれ/ dev/vmnet3と/ dev/vmnet4を作成しました。ただし、ゲストを起動した後、ホスト上に作成されたこれらのインターフェイスまたはデバイスファイル(/ dev内)は表示されませんでした。

b。次に、「ホストのみ」を試しましたが、インターフェイスに関連付けられているブリッジ/デバイスファイルが表示されません。

c。最後に、ブリッジネットワークモードを試しました。

ホストにvmnet1、vmnet8、vboxnet0が表示されます。上記の3つのケースすべてについて、これらの各インターフェイスでキャプチャファイルをtcpreplayしました。 VM "tcpdump -i any"を使用してパケットをキャプチャしようとしましたが、パケットが表示されません。

アイデア/ポインタはありますか?

5
Methos

最近VMwareWorkstationでこれを試していませんが、通常、これは次のいずれかの結果です。

  1. キャプチャしようとしているVMは、NICを無差別モードにしないため、その宛先ではないパケットを表示できません。これを解決するには、tcpdumpをルートとしてVMで実行するか、tcpreplayを変更してVMのMACアドレスをパケットの宛先として使用する)送信中です(tcpreplayにはtcprewriteが付属しているため、この種の変更が簡単です)。あるいは、再生されるパケットの宛先MACアドレスをブロードキャストアドレスff:ff:ff:ff:ff:ffにすることもできます(警告:非常に危険です。自分が何をしているかを本当に理解していない限り、これを行う前に物理ネットワークからプラグを抜くことをお勧めします)。

  2. ホストはVMがインターフェイスをプロミスキャスモードにすることを許可していません。VMwareWorkstationでこれを調整する方法はわかりませんが、ESX [i]にはオプションがあります。 「プロミスキャスモードを許可する」のvSwitch。1で説明したように、tcpreplayストリームの宛先MACアドレスを変更することでこれを回避することもできます。

  3. ホストのvmnetのアクセス許可が正しくないため、プロミスキャスモードが機能します(ホストOSとしてLinuxを使用している場合)。これに関するVMwareKBの記事はたくさんあり、それを解決することはせいぜい一貫性がありません。/dev/vmnetXインターフェイスを777に変更することでそれを実行できる場合がありますが、リプレイトラフィックをVM)のMAC宛てにするだけの方がおそらく良いでしょう。答えは最初にそれを解決しません。

幸運を、

--jed

1
Jed Daniels

再生しているキャプチャの宛先MACアドレスがVM)内のインターフェイスのMACではなく、同じVLAN)にホストがある場合仮想スイッチはそのMACに関連付けられたポートでフレームを転送するため、MACにはトラフィックは表示されません。

ブリッジフォワードテーブルを一覧表示して、宛先のMacを検索してみてください。

0