Description of problem:
I run VMs on my laptop with RHEL 6 Workstation for testing purposes. Every time after a cycle of suspend/resume the VMs loose their ability to access the network. I am using NAT only. VMs get IP, can ping the NET gateway (the hypervisor) and the host IP but can't ping anything else.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Boot host.
2. Use VM.
3. Shutdown VM.
4. Suspend host.
5. Bring host back.
6. Power up VM.
7. Test network.
Network not accessible.
Should work. :)
I don't have a machine running RHEL6 I can get to suspend and resume properly *at all* at the moment. I have checked with Fedora13, and guests are able to access the external network with no problem after a suspend/resume.
I will work on getting my RHEL box doing basic suspend/resume. In the meantime, can you please attach the output of the following (from the host, not the guest), both pre-suspend and post-resume:
iptables -S -t net
Maybe something in there will provide a clue.
Also, just to confirm - the *host* is able to contact the external network after resume, correct?
Ok, now this does not make sense to me...
First, note there have been some updates after I opened the ticket:
1 - I initially generated the before-*.txt files, with Windows 7 + RHEL 5.5 VMs running.
2 - Hibernate
3 - Resume
4 - Bring up Windows 7 VM, verified there is no network
5 - Generate the after-*.txt files
6 - Bring up RHEL 5.5 VM, verified that network now works (odd)
7 - Reboot Windows 7 VM, and now network works (very odd)
8 - Generate the later-*.txt files
Now I don't understand. :)
Created attachment 473287 [details]
Files requested by comment #4
The thing I suspected wasn't the case - I had thought possibly the iptables rules that do the NAT were getting stomped by something during the resume, but those seem to be fine.
The one item that changes is the output of brctl show, but not in a way that would imply what you're seeing:
before-brctl.txt: shows that there are no interfaces connected to virbr0, which would imply either that no guests are running, or at least that those guests are not connected to the network, and so they wouldn't be able to connect to *anywhere* (including the host).
after-brctl.txt: shows that two interfaces are connected to the bridge, presumably one for each guest, but you say that at the time you collected the after-* files, you had only one guest running, and it had no network connectivity.
later-brctl.txt: again shows no interfaces connected to virbr0, implying that there are no guests connected to the network, yet you say that at this point both guests are able to connect to the network.
Can you verify this is really the case? The evidence doesn't fit the description...
(The "vnet0" and "vnet1" are tap devices connected to the guests' emulated network interfaces; you can learn which tap device is in use for which guest by doing a "virsh dumpxml" of each running domain and looking in the <interface> section. Speaking of that, the output of "virsh dumpxml" for both of the guests, as well as the output of "net-dumpxml default" may (but probably won't) provide a hint).
Created attachment 473515 [details]
Another round of tests
I run another round of tests. The file 00-steps.txt explain what I did when, and then each other file contains the output of the chain of the commands during each step.