QEMU mendukung ICMP di backend SLIRP. Diperlukan untuk mengizinkan apa yang disebut soket ping (PF_INET, SOCK_DGRAM, PROT_ICMP) untuk pengguna di kernel.
Ini sederhana
sysctl -w net.ipv4.ping_group_range='0 2147483647'
Lihat juga http://lwn.net/Articles/422330/
Dari wiki QEMU, QEMU tidak mendukung ICMP di backend SLIRP.
Jaringan Pengguna (SLIRP)
Ini adalah backend jaringan default dan umumnya paling mudah digunakan. Itu tidak memerlukan hak root / Administrator. Ini memiliki batasan berikut:
- ada banyak overhead sehingga kinerjanya buruk
- Lalu lintas ICMP tidak berfungsi (sehingga Anda tidak dapat menggunakan ping dalam tamu)
- tamu tidak dapat diakses langsung dari host atau jaringan eksternal
Untuk pekerjaan ICMP, Anda perlu menggunakan TAP, VDE, atau Socket.
Informasi lebih lanjut:QEMU Wiki - Jaringan dan juga bagian jaringan QEMU Wikibooks
Direkomendasikan juga:panduan lanjutan untuk menangani VLAN
Cara termudah dan lebih efektif yang saya temukan untuk saya adalah ini.
Singkatnya, di host:
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 mengonfigurasi tap
perangkat, milik pengguna Anda, aktifkan arp proxying
dan konfigurasikan route
antara tuan rumah dan tamu Anda.
Penulis (dan saya sendiri) menggunakannya untuk mengatasi masalah menjembatani ke wlan0
perangkat, yang tidak didukung oleh kernel Linux. Tapi ini berfungsi dengan baik dengan koneksi kabel. Di arp
konfigurasi, ubah saja wlan0
ke eth0
.
Alamat IP tamu harus ditetapkan oleh Anda, seperti DHCP
tidak berfungsi.
Dan Anda sudah dapat melakukan ping ke host Anda.