GNU/Linux >> Linux の 問題 >  >> Linux

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

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 カーネルではサポートされていませんが、有線接続でも同様に機能します。 arpwlan0 を変更するだけです eth0 まで .

ゲスト IP アドレスは DHCP のように自分で設定する必要があります 動作しません。

そして、すでにホストに ping を実行できます。


Linux
  1. プロキシの背後にあるときに ping を実行する方法は?

  2. ネットワーク:宛先ホストに到達できません

  3. ホストがわかるまでLinuxでpingを実行する方法は?

  1. Windows – Qemu WindowsゲストとLinuxホスト間の共有フォルダー?

  2. ホストから Docker コンテナのネットワーク名前空間にアクセスする方法

  3. ホスト名を使用して docker ネットワーク内の他のコンテナーに ping を実行するにはどうすればよいですか?

  1. RHEL8にiperfをインストールする方法

  2. Angry IPスキャナー(ネットワークスキャナー)の使い方

  3. Linuxのネットワークでプリンタを共有する方法