QEMU は SLIRP バックエンドで ICMP をサポートします。カーネル内のユーザーに対して、いわゆる ping ソケット (PF_INET、SOCK_DGRAM、PROT_ICMP) を許可する必要があります。
シンプルです
sysctl -w net.ipv4.ping_group_range='0 2147483647'
http://lwn.net/Articles/422330/も参照してください
QEMU wiki によると、QEMU は SLIRP バックエンドで ICMP をサポートしていません。
<ブロック引用>ユーザー ネットワーキング (SLIRP)
これはデフォルトのネットワーク バックエンドであり、一般的に最も使いやすいものです。 root / 管理者権限は必要ありません。以下の制限があります:
- オーバーヘッドが大きいため、パフォーマンスが低下します
- ICMP トラフィックが機能しない (ゲスト内で ping を使用できない)
- ホストまたは外部ネットワークからゲストに直接アクセスできない
ICMP 作業には、TAP、VDE、またはソケットを使用する必要があります。
詳細:QEMU Wiki - ネットワーキングおよび Wikibooks QEMU ネットワーキング セクション
こちらもお勧め:VLAN を扱うための上級ガイド
私が見つけた最も簡単で効果的な方法はこれでした。
要約すると、ホストでは:
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
へのブリッジの問題に対処するためにそれを使用しました。 Linux カーネルではサポートされていませんが、有線接続でも同様に機能します。 arp
で wlan0
を変更するだけです eth0
まで .
ゲスト IP アドレスは DHCP
のように自分で設定する必要があります 動作しません。
そして、すでにホストに ping を実行できます。