web-dev-qa-db-ja.com

ゲストOSがqemuでインターネットにアクセスできるようにするにはどうすればよいですか?

私はWindows XP=イメージを作成し、それをqemuで起動しています。-Net Userを介して「ユーザーモードネットワーク」を使用している場合、ゲストOS(Windows XP)は10.0を取得します.2.15 IPが割り当てられ、10.0.2.2にpingできるので、Windowsドライバーが正しくインストールされます。

残念ながら、他にはアクセスできません。チュートリアルを読んだところ、「ユーザーモードネットワーキング」では接続がインターネットに転送されず、TAPデバイスまたはBridgeデバイスのいずれかを使用する必要があることがわかりました。

私はこれらのデバイスに慣れていないため、チュートリアルは非常にわかりにくく、複雑です。

チュートリアルの1つで、qemu-bridge-helperを使用するよう提案されました。 /etc/qemu/bridge.confを構成してbr0ブリッジデバイスを許可し、brctl addbr br0を介してbr0デバイスを作成しました。

私はチュートリアルに従い、この方法でwinxpを起動しました:

qemu-system-x86_64 --enable-kvm -m 2048 \
  -drive file=winxp.img,if=virtio \
  -net nic,model=virtio \
  -net bridge,br=br0

イメージはうまく起動しますが、IPアドレスを取得できません。その理由は、WindowsはDHCPを使用するように構成されていますが、「br0」はDHCPインターフェイスを提供していないためです。

私の質問は-DHCP経由でwinxpにアドレスを与えるために「br0」をどのように設定するのですか? Tap0インターフェイスでDHCPサーバーを実行する必要がありますか? br0、tap0、eth0はどのように関連していますか? (eth0は私の静的IPインターフェイスであり、唯一のインターネットインターフェイスです。)

私の2番目の質問は、ゲストOSへの簡単なインターネットアクセスを許可するために、これらすべてを構成する簡単な方法はありますか?

5
bodacydo

私の2番目の質問は、ゲストOSへの簡単なインターネットアクセスを許可するために、これらすべてを構成する簡単な方法はありますか?

簡単なインターネットアクセスのために、手動で何かを構成する必要はありません(少なくとも、その必要はありません)。 QEMUが自動的に処理します。 ICMPプロトコル(pingによって使用される)をサポートしない、外部ネットワークから見えない、同じように実行される他の仮想マシンと通信できないなど、いくつかの制限がありますが、簡単な使い方。詳細は Arch Wiki を参照してください。

6
Crestwave

コマンドの後brctl addbr br0例として、新しいブリッジを実際のネットワークインターフェイスに接続する必要がありますeth0、魔女はインターネットに接続されています。次のコマンドbrctl addif br0 eth0

0
Khirgiy Mikhail