The guest is using a different network than the host, so the host has to forward the guests traffic to reach the internet.
eth0 is already configured with an active dhclient server managing it. You might try a "/sbin/ifdown eth0" and /sbin/ifup eth0" to restart it.
Check network tables with "netstat -rn". This should show something like:
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 p6p1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 p5p1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 p6p1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 p5p1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 p6p1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
My guests are using 192.168.122.0 for their network, I also have two wired networks (192.168.0.0 for internal physical hosts, and
192.168.1.0 configured via DHCP for internet access).
The default route (0.0.0.0) should have your internet router designated as its gateway.
My network startup scripts have p6p1 (new naming construct) designated for dhcp, with DEFROUTE, PEERDNS, and PEERROUTES set to "yes".
The virbr0 is configured by the qemu/xen VM manager software.
The VMs need to be using their default router (actually, very likely the only route) which is the host.
Setting ip_forward makes the host kernel act as a router for the 192.168.xxx networks, which by default are NOT routable.
I will admit to not being an expert at this, but the only thing left is whether there is a firewall rule to reject forwarding a specific network. My firewall rules have a "-A FORWARD -i p5p1 -j ACCEPT" rule which should allow all forwarded connections to go to my internet router... which is supposed to allow packets from the internet to be forwarded. The full set of my forward list is:
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth+ -j ACCEPT
-A FORWARD -i p5p1 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
Note, the eth+ rule should be superfluous as that came before the new naming sequences (currently left in case I fall back to an earlier kernel). These are the last in my set of rules, and were configured using the system-config-firewall.
After all that, it should be working as long as the kernel forwarding is set to 1.