
Verwendung von Mac OS 10.14.5 Mojave und QEMU Version 4.0.0
Ich versuche, einen Ubuntu Server 19.04-Gast mit Netzwerkkommunikation über eine Brücke auf meinem Mac-Host zum Laufen zu bringen. Im Moment habe ich sogar mit einem Ping vom Gast zum Host und umgekehrt Probleme.
Ich habe eine Brücke auf dem Host erstellt mit:
sudo ifconfig bridge1 create
sudo ifconfig bridge1 192.168.100.1/24 up
und setze auch die Sys-Flags net.inet.ip.forwarding=1
, net.link.ether.inet.proxyall=1
obwohl ich nicht sicher bin, ob sie zu diesem Zeitpunkt im Projekt notwendig sind.
Die VM wird gestartet mit:
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
Wobei das Skript „qemu-ifup“ Folgendes enthält:
ifconfig bridge1 addm tap0
Die IP der VM habe ich mit Netplan eingestellt über:
network:
version: 2
ethernets:
ens3:
addresses:
- 192.168.100.2/24
gateway4: 192.168.100.1
und Netplan gelten.
Ich fülle die ARP-Tabellen des Hosts und Gasts manuell mit den MAC-Adressen der betreffenden Netzwerkgeräte:
_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]
auf dem Gast bzw. Host, wobei $GUEST_DEV_MAC und $BRIDGE_MAC die MAC-Adressen der beiden betreffenden Geräte sind.
Auf dem Gast ist ufw deaktiviert. iptables -S gibt Folgendes zurück:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
Wenn ich tcpdump auf dem Host ausführe und versuche, ihn vom Gast aus anzupingen, kann ich ICMP-Echoanforderungen und -Antworten sehen, aber sie erreichen den Gast nicht:
$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
wobei $GUEST_DEV_MAC und $BRIDGE_MAC die MAC-Adressen der beiden betreffenden Geräte sind.
Wenn ich versuche, den Gast vom Host aus anzupingen, erhalte ich nur:
$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
Ich weiß nicht, was den Datenverkehr zwischen diesen verhindern könnte, aber meine Erfahrung ist sehr begrenzt. Wenn weitere Informationen zum Debuggen erforderlich sind, lassen Sie es mich wissen, und wenn jemand genug Erfahrung hat, um Licht in die Sache zu bringen, was getan werden könnte, um die Verbindung zu reparieren, antworten Sie gerne. Danke.