Consider a host machine running multiple virtual machines. Hypervisor is most likely KVM with libvirt. The host machine should be connected to some firewall or switch for filtering/analyzing traffic. Is there some way to setup the host or VMs so that I can see which traffic comes from which VM?
MAC address is not an option since it is going to stripped on the host. I could use a per VM NIC but this would require extra hardware. Any other ideas? Maybe some kind of tagging which does not get stripped by the host and does not interfere with networking?