Wie erlaube ich dem Gastbetriebssystem in QEMU den Internetzugriff?

Wie erlaube ich dem Gastbetriebssystem in QEMU den Internetzugriff?

Ich habe ein Windows XP-Image erstellt und boote es mit qemu. Wenn ich „User Mode Networking“ über verwende -net user, wird meinem Gastbetriebssystem (Windows XP) die IP 10.0.2.15 zugewiesen und ich kann 10.0.2.2 anpingen, sodass die Windows-Treiber korrekt installiert werden.

Leider kann ich auf nichts anderes zugreifen. Ich habe Tutorials gelesen und festgestellt, dass „User Mode Networking“ keine Verbindungen zum Internet weiterleitet und ich entweder ein TAP-Gerät oder ein Bridge-Gerät verwenden muss.

Ich kenne mich mit diesen Geräten nicht aus und die Tutorials sind sehr verwirrend und kompliziert.

In einem der Tutorials wurde mir vorgeschlagen, qemu-bridge-helper zu verwenden. Ich habe /etc/qemu/bridge.conf so konfiguriert, dass das Bridge-Gerät br0 zugelassen wird, und das Gerät br0 über erstellt brctl addbr br0.

Ich habe die Tutorials befolgt und mein WinXP folgendermaßen gebootet:

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

Das Image bootet einwandfrei, aber ich bekomme keine IP-Adresse. Der Grund dafür ist, dass Windows für die Verwendung von DHCP konfiguriert ist, aber „br0“ keine DHCP-Adresse bereitstellt, da es nur eine Bridge-Schnittstelle ist (irgendwie mit tap0 verknüpft, aber ich bin nicht sicher, was das bedeutet).

Meine Frage ist: Wie konfiguriere ich „br0“, um WinXP über DHCP Adressen zuzuweisen? Muss ich auf der Schnittstelle tap0 einen DHCP-Server ausführen? Welche Beziehung besteht zwischen br0, tap0 und eth0? (eth0 ist meine statische IP-Schnittstelle, die einzige Internetschnittstelle.)

Meine zweite Frage lautet: Gibt es eine einfachere Möglichkeit, das Ganze so zu konfigurieren, dass Gastbetriebssysteme einfach auf das Internet zugreifen können?

Antwort1

Meine zweite Frage lautet: Gibt es eine einfachere Möglichkeit, das Ganze so zu konfigurieren, dass Gastbetriebssysteme einfach auf das Internet zugreifen können?

Für den einfachen Internetzugang müssen Sie nichts manuell konfigurieren (oder sollten es zumindest nicht tun); QEMU erledigt das automatisch. Es hat einige Einschränkungen, z. B. unterstützt es nicht das ICMP-Protokoll (verwendet von ping), ist für das externe Netzwerk nicht sichtbar und kann nicht mit anderen virtuellen Maschinen kommunizieren, die auf dieselbe Weise ausgeführt werden, aber für den einfachen Gebrauch funktioniert es gut. Siehe dieArch Wikifür mehr Informationen.

Antwort2

Nach Ihrem Befehl brctl addbr br0müssen Sie die neue Bridge an eine echte Netzwerkschnittstelle anschließen, beispielsweise an eth0eine, die mit dem Internet verbunden ist. Verwenden Sie dafür den nächsten Befehl brctl addif br0 eth0.

verwandte Informationen