Windows Guest VM no internet on Ubuntu KVM host
Solution 1
After some discussion on the oftc-channel #virt, @laine pointed me to the solution.
Apparently, the resolv.conf file is missing on ubuntu 12.04 (at least on my installation of linux mint 13). It is replaced by some resolvconf directory tree.
To enable internet on the guests: I had to
- sudo iptables --flush => on the host, might be obsolete, I don't know that. It cleared some rules.
- add "nameserver8.8.8.8" to /etc/resolv.conf
- reboot
After that, it worked
EDIT: note that step 2 was also performed on the host. I think it was linux mint (ubuntu 12.04), which was missing the /etc/resolv.conf file.
Solution 2
Is there some reason you can't use bridged networking? I always run in bridged mode when the VMs need to have access to the Internet, and I generally recommend it (you haven't given any reason why bridged mode might not be a good idea). The VMs are then treated as first-class citizens as far as network connectivity is concerned.
Related videos on Youtube
Cerin
Updated on September 18, 2022Comments
-
Cerin over 1 year
I installed Windows 7 as a guest in KVM running on Ubuntu 12. Windows seems to be running fine with the exception that it can't access any external domains or IPs.
The guest can ping the host's IP and the host can ping the guest's IP, but that's it.
I used the default NAT setup, which others have reported should work. What can I do to fix this?
Edit: I also have VirtualBox running on the same host, also running a Windows VM, and it's internet works just fine.
Edit: The Ubuntu host's routing table:
user@localhost:~$ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth2 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
The virbr0 is some old bridge leftover from when I tried setting up bridging in Virtualbox, but it's no longer used since Virtualbox works find with NAT. I did try using it with KVM, but had no success.
-
Niall Byrne over 11 yearsIs IPv4 forwarding enabled on the Ubuntu box? ( cat /proc/sys/net/ipv4/ip_forward )
-
lbanz over 11 yearsCheck what dns server it is using. Try pinging the google opendns 8.8.8.8 from your windows 7 guest.
-
Cerin over 11 yearsThe Windows guest is using
192.168.122.1
as its DNS server. The guest can't ping the Google opendns IP. -
Niall Byrne over 11 yearsWhat does the routing table look like on the ubuntu box and what ip's are you using in your natted KVM and Virtualbox setups (is the virtualbox VM natted too ?)
-
Cerin over 11 years@NiallByrne, Yes, the Virtualbox VM is using NAT, listed as "PCnet-FAST III (NAT)". Please see my edit above about the host's routing table.
-
-
Cerin over 11 yearsI'm running this on a laptop with a wireless ethernet connection. Most documentation I've read about bridging mentions that most wifi Linux drivers don't support bridging (or not very well). I did try creating a bridge with my wifi ethernet interface, but it caused gnome-shell to crash and burn.
-
Tom O'Connor over 11 yearsI tend to add one more step to this, which is chattr +i /etc/resolv.conf to stop pesky resolvconf scripts screwing with it.