QEMU 호스트 네트워크를 핑하는 방법?


10

게스트에서 호스트 네트워크로 핑을 시도했지만 성공하지 못했습니다.

qemu-system-x86_64 -hda debian_squeeze_amd64_standard.qcow2 -netdev user,id=user.0 -device e1000,netdev=user.0

임의의 컴퓨터를 핑하려고합니다.

$ ping 10.0.2.21
Destination Host Unreachable

게스트에서는 호스트 10.0.2.2 (DHCP 서버) 만 핑할 수 있습니다.


탭 장치에 연결하고 탭 장치 및 네트워크 장치를 브리지에 연결
Ulrich Dangel

답변:



6

QEMU 위키에서 QEMU는 SLIRP 백엔드에서 ICMP를 지원하지 않습니다.

사용자 네트워킹 (SLIRP)

이것이 기본 네트워킹 백엔드이며 일반적으로 사용하기 가장 쉽습니다. 루트 / 관리자 권한이 필요하지 않습니다. 다음과 같은 제한이 있습니다.

  • 오버 헤드가 많으므로 성능이 떨어집니다.
  • ICMP 트래픽이 작동하지 않으므로 게스트 내에서 ping을 사용할 수 없습니다.
  • 게스트는 호스트 또는 외부 네트워크에서 직접 액세스 할 수 없습니다

ICMP 작업의 경우 TAP, VDE 또는 소켓을 사용해야합니다.

추가 정보 : QEMU Wiki- 네트워킹Wikibooks QEMU 네트워킹 섹션

권장 사항 : VLAN 처리를위한 고급 안내서


1
여기에는 네트워킹 옵션에 대한 좋은 개요가 있습니다. en.wikibooks.org/wiki/QEMU/NetworkingVLAN 처리를위한 고급 안내서
SLM

@slm Ty. 답변에 귀하의 링크를 추가;)
Victor Aurélio

4

내가 찾은 가장 간단하고 효과적인 방법은 이것 입니다.

요약하면, 호스트에서 :

tunctl -u <username>

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp

ip link set tap0 up
route add -host 192.168.0.20 dev tap0   <-- to be changed by you.

그리고 손님을 위해 다음과 같이 실행하십시오.

kvm -hda ~/fedora.qcow2 -net nic -net tap,ifname=tap0,script=no -usb

또는

qemu -hda ~/fedora.qcow2 -net nic -net tap,ifname=tap0,script=no -usb 

사용자가 tap소유 한 장치 를 구성하고 호스트와 게스트 간을 활성화 arp proxying하고 구성하면 route됩니다.

필자 (그리고 나 자신) wlan0는 리눅스 커널에서 지원하지 않는 장치로 의 브리징 문제를 다루기 위해 이것을 사용했다 . 그러나 유선 연결에서도 잘 작동합니다. 에서 arp구성, 단지 변경 wlan0eth0.

게스트 IP 주소는 DHCP작동하지 않으므로 사용자가 설정해야합니다 .

그리고 이미 호스트를 핑할 수 있습니다.


0

방금 다음 두 가지 답변을 직접 결합하여이를 달성했습니다.

이들을 결합하여 "호스트 IP"를 ip route찾은 후 다음을 수행했습니다.

ping 10.0.2.2

그리고 효과가있었습니다.

Ubuntu 19.04 호스트 에서이 QEMU + Buildroot 설정 으로 테스트했습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.