
Usando Mac OS 10.14.5 Mojave y QEMU versión 4.0.0
Estoy intentando que un invitado Ubuntu Server 19.04 se ejecute con comunicación de red a través de un puente en mi host Mac. En este momento estoy teniendo problemas incluso con un ping del invitado al anfitrión y viceversa.
Creé un puente en el host con:
sudo ifconfig bridge1 create
sudo ifconfig bridge1 192.168.100.1/24 up
y también configuré los indicadores del sistema net.inet.ip.forwarding=1
y, net.link.ether.inet.proxyall=1
aunque no estoy seguro de si son necesarios en este punto del proyecto.
La VM se inicia con:
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
Donde el script qemu-ifup tiene:
ifconfig bridge1 addm tap0
Configuré la ip de la máquina virtual con netplan a través de:
network:
version: 2
ethernets:
ens3:
addresses:
- 192.168.100.2/24
gateway4: 192.168.100.1
y se aplican netplan.
Completo las tablas ARP del host e invitado manualmente con las direcciones MAC de los dispositivos de red en cuestión:
_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]
en el invitado y el host respectivamente, donde $GUEST_DEV_MAC y $BRIDGE_MAC son las direcciones MAC de los dos dispositivos en cuestión.
En el ufw invitado está deshabilitado iptables -S devuelve:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
Cuando ejecuto tcpdump en el host e intento hacer ping desde el invitado, puedo ver solicitudes de eco ICMP y respuestas, pero no llegan al invitado:
$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
donde $GUEST_DEV_MAC y $BRIDGE_MAC son las direcciones MAC de los dos dispositivos en cuestión.
Cuando intento hacer ping al invitado desde el anfitrión, solo obtengo:
$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
No sé qué podría impedir el tráfico entre estos, pero mi experiencia es muy limitada. Si se requiere más información para la depuración, hágamelo saber, y si alguien tiene suficiente experiencia para arrojar algo de luz sobre lo que se podría hacer para arreglar la conexión, no dude en responder. Gracias.