I think it's worth mentioning the ability to forward a usb interface directly to a VM for completely organic networking. Usb dongles cost pennies and it saves so much config. And if you want to run other vms or containers on a host vm, then this method lets you have most control from within the VM.