Mac OSX 上の QEMU VM 経由で ARP 要求を取得できない

Mac OSX 上の QEMU VM 経由で ARP 要求を取得できない

Mac OS 10.14.5 Mojave および QEMU バージョン 4.0.0 を使用

私は、Mac ホスト上のブリッジを介してネットワーク通信を行い、Ubuntu Server 19.04 ゲストを実行しようとしています。現時点では、ゲストからホストへの ping も、その逆も、うまくいきません。

次のようにしてホスト上にブリッジを作成しました:

sudo ifconfig bridge1 create
sudo ifconfig bridge1 192.168.100.1/24 up

また、sys フラグも設定しますnet.inet.ip.forwarding=1が、net.link.ether.inet.proxyall=1プロジェクトのこの時点でそれらが必要かどうかはわかりません。

VM は次のように起動されます:

sudo qemu-system-x86_64 -hda ubuntu-test -cdrom ubuntu-19.04-live-server-amd64.iso -accel hvf -netdev tap,br=/dev/bridge1,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown,id=net0 -device e1000,netdev=net0 -m 512

qemu-ifup スクリプトには次の内容が含まれています:

ifconfig bridge1 addm tap0

私は次のようにして netplan で VM の IP を設定しました:

network:
  version: 2
  ethernets:
    ens3:
      addresses:
        - 192.168.100.2/24
      gateway4: 192.168.100.1

およびネットプランが適用されます。

問題となっているネットワーク デバイスの MAC アドレスを、ホストとゲストの ARP テーブルに手動で入力します。

_gateway (192.168.100.1) at $BRIDGE_MAC [ether] PERM on ens3
? (192.168.100.2) at $GUEST_DEV_MAC on bridge1 ifscope permanent [bridge]

それぞれゲストとホストで、$GUEST_DEV_MAC と $BRIDGE_MAC は問題の 2 つのデバイスの MAC アドレスです。

ゲストでは ufw が無効になっており、iptables -S は次を返します:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

ホスト上で tcpdump を実行し、ゲストから ping を実行しようとすると、ICMP エコー要求と応答が表示されますが、ゲストには届きません。

$GUEST_DEV_MAC > $BRIDGE_MAC, IPv4, length 98: 192.168.100.2 > 192.168.100.1: ICMP echo request, id 1181, seq 2, length 64
$BRIDGE_MAC > $GUEST_DEV_MAC, IPv4, length 98: 192.168.100.1 > 192.168.100.2: ICMP echo reply, id 1181, seq 2, length 64

ここで、$GUEST_DEV_MAC と $BRIDGE_MAC は、問題の 2 つのデバイスの MAC アドレスです。

ホストからゲストに ping を実行しようとすると、次の結果しか返されません。

$BRIDGE_MAC > $GUEST_DEV_MAC, IPv4, length 98: 192.168.100.1 > 192.168.100.2: ICMP echo request, id 48948, seq 1, length 64

これらの間のトラフィックを妨げている原因が何なのかわかりませんが、私の経験は非常に限られています。デバッグのためにさらに情報が必要な場合はお知らせください。また、接続を修正するために何ができるかについて十分な経験をお持ちの方がいらっしゃいましたら、遠慮なく回答してください。ありがとうございます。

関連情報