これは、テストベッドのセットアップに関する質問に似ています。
VMwareを使用して、VMのLinuxカーネルのネットワークコードをデバッグしたいと思います。私のVMには2つのネットワークインターフェイスがあります。ホストでキャプチャファイルを再生し、VMでパケットを受信します。私の問題は、VMで再生されたパケットが表示されないことです。
a。独自の仮想ネットワーク名を作成するオプションを提供するカスタムネットワークから始めました。 2つのインターフェイス用にそれぞれ/ dev/vmnet3と/ dev/vmnet4を作成しました。ただし、ゲストを起動した後、ホスト上に作成されたこれらのインターフェイスまたはデバイスファイル(/ dev内)は表示されませんでした。
b。次に、「ホストのみ」を試しましたが、インターフェイスに関連付けられているブリッジ/デバイスファイルが表示されません。
c。最後に、ブリッジネットワークモードを試しました。
ホストにvmnet1、vmnet8、vboxnet0が表示されます。上記の3つのケースすべてについて、これらの各インターフェイスでキャプチャファイルをtcpreplayしました。 VM "tcpdump -i any"を使用してパケットをキャプチャしようとしましたが、パケットが表示されません。
アイデア/ポインタはありますか?
最近VMwareWorkstationでこれを試していませんが、通常、これは次のいずれかの結果です。
キャプチャしようとしているVMは、NICを無差別モードにしないため、その宛先ではないパケットを表示できません。これを解決するには、tcpdumpをルートとしてVMで実行するか、tcpreplayを変更してVMのMACアドレスをパケットの宛先として使用する)送信中です(tcpreplayにはtcprewriteが付属しているため、この種の変更が簡単です)。あるいは、再生されるパケットの宛先MACアドレスをブロードキャストアドレスff:ff:ff:ff:ff:ffにすることもできます(警告:非常に危険です。自分が何をしているかを本当に理解していない限り、これを行う前に物理ネットワークからプラグを抜くことをお勧めします)。
ホストはVMがインターフェイスをプロミスキャスモードにすることを許可していません。VMwareWorkstationでこれを調整する方法はわかりませんが、ESX [i]にはオプションがあります。 「プロミスキャスモードを許可する」のvSwitch。1で説明したように、tcpreplayストリームの宛先MACアドレスを変更することでこれを回避することもできます。
ホストのvmnetのアクセス許可が正しくないため、プロミスキャスモードが機能します(ホストOSとしてLinuxを使用している場合)。これに関するVMwareKBの記事はたくさんあり、それを解決することはせいぜい一貫性がありません。/dev/vmnetXインターフェイスを777に変更することでそれを実行できる場合がありますが、リプレイトラフィックをVM)のMAC宛てにするだけの方がおそらく良いでしょう。答えは最初にそれを解決しません。
幸運を、
--jed
再生しているキャプチャの宛先MACアドレスがVM)内のインターフェイスのMACではなく、同じVLAN)にホストがある場合仮想スイッチはそのMACに関連付けられたポートでフレームを転送するため、MACにはトラフィックは表示されません。
ブリッジフォワードテーブルを一覧表示して、宛先のMacを検索してみてください。