Add support for host networking with Apple Virtualization#7380
Conversation
3c98442 to
a0978bd
Compare
|
How could I test this? I'm having an issue with UTM related to issue #3294 and I think this may work. |
|
I didn't write this up but I looked into this a little while ago, but unfortunately the APIs are not compatible. Maybe there's some magic possible by fiddling with some serialized objects. I think it should be possible with a network helper process and route the network through that, but that's a little out of my depth at the moment and probably has some performance considerations as well. Or cross our fingers that Apple adds support for this in macOS 27. |
|
I think you can still connect shared networking on macOS <=15. It just requires you to use VZFileHandleNetworkDeviceAttachment. This project https://github.com/nirs/vmnet-helper implemented a helper to forward packets from the socket to a vmnet network. There is a nice diagram on this page explaining how it works https://github.com/nirs/vmnet-helper/blob/main/docs/architecture.md#native-vmnet-on-macos-26 But on macOS 26+ you no longer need the helper because of vzvmnetnetworkdeviceattachment. |
This is untested (and thus a draft) because I do not have access to a host machine running Tahoe at the moment (and I couldn't get nested virtualization to work).
In the vmnet documentation I noticed a new feature in Tahoe: https://developer.apple.com/documentation/virtualization/vzvmnetnetworkdeviceattachment
There's not a ton of documentation available, but I assume this works similarly to how you can attach to a specific vmnet with QEMU.
If that is indeed how that API works, then this should allow VMs running with Apple Virtualization to be networked with custom host defined networks (as an extension to #6186).