QEMUホストネットワークにpingする方法?


10

ゲストからホストネットワークにpingしようとしていますが、成功しません。

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

私はランダムなマシンにpingしようとします:

$ ping 10.0.2.21
Destination Host Unreachable

ゲストでは、ホスト10.0.2.2(DHCPサーバー)に対してのみpingを実行できます。


タップデバイスに接続し、タップデバイスとネットワークデバイスをブリッジに接続します
Ulrich Dangel

回答:


11

QEMUはSLIRPバックエンドでICMPをサポートしています。カーネルのユーザーに対して、いわゆるpingソケット(PF_INET、SOCK_DGRAM、PROT_ICMP)を許可する必要があります。

簡単です

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

http://lwn.net/Articles/422330/も参照してください


6

QEMU wikiから、QEMUはSLIRPバックエンドでのICMPをサポートしていません。

ユーザーネットワーキング(SLIRP)

これはデフォルトのネットワーキングバックエンドであり、一般的に最も簡単に使用できます。root /管理者権限は必要ありません。次の制限があります。

  • オーバーヘッドが多いのでパフォーマンスが悪い
  • ICMPトラフィックが機能しない(したがって、ゲスト内でpingを使用できない)
  • ゲストは、ホストまたは外部ネットワークから直接アクセスできません

ICMPの作業には、TAP、VDE、またはソケットを使用する必要があります。

詳細: QEMU Wiki- ネットワーキングおよびWikibooks QEMUネットワーキングセクション

推奨:VLANを処理するための高度なガイド


1
:そこのネットワークオプションの良い概要はここにもだen.wikibooks.org/wiki/QEMU/Networkingは、またのVLANに対処するための高度なガイド
SLM

@slm Ty。回答にリンクを追加しました;)
VictorAurélio2013年

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は、Linuxカーネルでサポートされていないデバイスへのブリッジの問題に対処するためにそれを使用しました。ただし、有線接続でも機能します。でarp設定だけ変更wlan0しますeth0

ゲストIPアドレスは、機能DHCPしないため、ユーザーが設定する必要があります。

そして、あなたはすでにあなたのホストにpingすることができます。


0

私は次の2つの答えを直接組み合わせることでこれを達成しました。

これらを組み合わせると、「ホストIP」が見つかり、次のようになりましたip route

ping 10.0.2.2

そしてそれは働いた。

このQEMU + BuildrootセットアップでUbuntu 19.04ホストでテストされています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.