Is it possible to create an IPtables rule that forwards all incoming traffic on port 80 on the host to port 80 of the qemu VM?
Is such a scenario possible with qemu?
Yes, actually I do this for my personal test environment (I have a public website that goes to a QEMU-KVM VM on my home PC).
Basically if the VM has network access then you're just dealing with a routing issue.
I have several fake company "departments" set up in my VM to test different types of setups, each environment gets its own subnet hanging of a particular virbr* device (virbr1 happens to be the virtual interface to the website's VM but you're interface numbering is obviously going to be different.
At that point, the you can treat it the same way you would if you were going to do a NAT to some physical machine that only the hypervisor had network access to and could reach by IP Address.
I have my internet router forward port 80's to the hypervisor and the hypervisor just NAT's port 80 to the private IP associated with the KVM:
192.168.1.9 is the IP address of my hypervisor, 10.0.1.9 is the IP address of the VM I'm running apache on.
One simple solution: