Qemu에서 게스트 OS가 인터넷에 액세스하도록 허용하는 방법은 무엇입니까?

Qemu에서 게스트 OS가 인터넷에 액세스하도록 허용하는 방법은 무엇입니까?

Windows XP 이미지를 생성했고 이를 qemu로 부팅합니다. 를 통해 "사용자 모드 네트워킹"을 사용할 때 -net user내 게스트 OS(Windows XP)는 10.0.2.15 IP를 할당받고 10.0.2.2에 ping을 보내 Windows 드라이버가 올바르게 설치되도록 할 수 있습니다.

불행하게도 다른 어떤 것에도 접근할 수 없습니다. 튜토리얼을 읽었는데 "사용자 모드 네트워킹"이 인터넷 연결을 전달하지 않으며 TAP 장치나 브리지 장치를 사용해야 한다는 것을 알았습니다.

저는 이러한 장치에 익숙하지 않으며 튜토리얼이 매우 혼란스럽고 복잡합니다.

튜토리얼 중 하나에서는 qemu-bridge-helper를 사용하라고 제안했습니다. br0 브리지 장치를 허용하도록 /etc/qemu/bridge.conf를 구성하고 brctl addbr 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 주소를 제공하지 않기 때문입니다(어떻게든 tap0과 연결되어 있지만 그게 무슨 뜻인지 잘 모르겠습니다).

내 질문은 - DHCP를 통해 winxp에 주소를 제공하도록 "br0"을 어떻게 구성합니까? tap0 인터페이스에서 DHCP 서버를 실행해야 합니까? br0, tap0, eth0은 어떤 관련이 있나요? (eth0은 내 고정 IP 인터페이스이며 유일한 인터넷 인터페이스입니다.)

두 번째 질문은 - 게스트 OS에 대한 간단한 인터넷 액세스를 허용하도록 이 모든 것을 구성하는 더 쉬운 방법이 있습니까?

답변1

두 번째 질문은 - 게스트 OS에 대한 간단한 인터넷 액세스를 허용하도록 이 모든 것을 구성하는 더 쉬운 방법이 있습니까?

간단한 인터넷 액세스를 위해 수동으로 구성할 필요는 없습니다(또는 적어도 그렇게 해서도 안 됩니다). QEMU가 자동으로 처리합니다. (에서 사용하는) ICMP 프로토콜을 지원하지 않거나 ping, 외부 네트워크에 표시되지 않거나, 다른 가상 머신과 통신할 수 없는 등 몇 가지 제한 사항이 있지만 동일한 방식으로 실행되지만 간단한 사용에는 잘 작동합니다. 참조아치 위키자세한 내용은.

답변2

명령을 내린 후에는 brctl addbr br0새 브리지를 실제 네트워크 인터페이스에 연결해야 합니다. 예를 들어 eth0마녀는 인터넷에 연결되어 있습니다. 다음 명령에 사용하십시오 brctl addif br0 eth0.

관련 정보