QEMU bagaimana cara melakukan ping jaringan host?

10

Saya mencoba melakukan ping dari tamu ke jaringan host saya tanpa hasil.

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

Saya mencoba melakukan ping ke mesin acak:

$ ping 10.0.2.21
Destination Host Unreachable

Di tamu saya hanya bisa melakukan ping ke host 10.0.2.2 (server DHCP).

MaikoID
sumber
Pasang ke perangkat keran dan pasang perangkat keran & perangkat jaringan Anda ke jembatan
Ulrich Dangel

Jawaban:

11

QEMU mendukung ICMP pada backend SLIRP. Diperlukan untuk mengizinkan ping socket (PF_INET, SOCK_DGRAM, PROT_ICMP) untuk pengguna di kernel.

Sederhana saja

sysctl -w net.ipv4.ping_group_range='0 2147483647'

Lihat juga http://lwn.net/Articles/422330/

Roma
sumber
6

Dari wiki QEMU, QEMU tidak mendukung ICMP pada backend SLIRP.

Jaringan Pengguna (SLIRP)

Ini adalah backend jaringan default dan umumnya paling mudah digunakan. Itu tidak memerlukan hak root / Administrator. Ini memiliki batasan sebagai berikut:

  • ada banyak overhead sehingga kinerjanya buruk
  • Lalu lintas ICMP tidak berfungsi (jadi Anda tidak bisa menggunakan ping di dalam tamu)
  • tamu tidak dapat diakses langsung dari host atau jaringan eksternal

Untuk pekerjaan ICMP Anda harus menggunakan TAP, VDE atau Socket.

Informasi lebih lanjut: QEMU Wiki - Jaringan dan juga bagian jaringan Qibu Wikibooks

Disarankan juga: panduan lanjutan untuk berurusan dengan VLAN

Victor Aurélio
sumber
1
Ada juga ikhtisar yang bagus tentang opsi jaringan di sini: en.wikibooks.org/wiki/QEMU/Networking , dan juga panduan lanjutan untuk berurusan dengan VLAN
slm
@ sdm Ty. menambahkan tautan Anda sebagai jawaban;)
Victor Aurélio
4

Cara paling sederhana dan lebih efektif yang saya temukan untuk saya adalah ini .

Singkatnya, di tuan rumah:

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.

dan untuk tamu, jalankan saja dengan:

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

atau

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

Anda hanya perlu mengkonfigurasi tapperangkat, yang dimiliki oleh pengguna Anda, mengaktifkan arp proxyingdan mengkonfigurasi routeantara host Anda dan tamu.

Penulis (dan saya sendiri) menggunakannya untuk menangani masalah menjembatani ke wlan0perangkat, yang tidak didukung oleh kernel Linux. Tapi itu berfungsi juga dengan koneksi kabel. Dalam arpkonfigurasi, cukup ubah wlan0ke eth0.

Alamat IP tamu harus ditentukan oleh Anda, karena DHCPtidak berfungsi.

Dan Anda sudah dapat melakukan ping host Anda.

Luis
sumber
0

Saya baru saja mencapai ini dengan langsung menggabungkan dua jawaban saya berikut ini:

Menggabungkannya, saya menemukan "host IP" dengan ip routedan kemudian melakukan:

ping 10.0.2.2

dan itu berhasil.

Diuji dengan pengaturan QEMU + Buildroot ini pada host Ubuntu 19.04.

Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
sumber