如何给我的KVM客人networking连接?

我对KVM和整个虚拟化的想法都是全新的,但是在过去的几个小时里,它已经阅读了几天,并且使用了它。

创build,安装,克隆等等一切似乎都很棒。 但是,当我试图ping通8.8.8.8时,我所做的客户端就是“networking不可达”

我为主机和来宾使用CentOS 6.5。

来宾上的ifconfig

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 

我很欣赏,这可能是问题所在 – 应该有一个eth0设备,我假设? 为什么不在那里?

安装代码:

 virt-install \ --virt-type kvm \ --name sebweb2 \ --ram 16384 \ --cdrom /var/ISOs/CentOS-6.5-x86_64-minimal.iso \ --disk /var/lib/libvirt/images/sebweb2.img,format=qcow2 \ --network bridge=br0 \ --nographics \ --os-type linux \ --os-variant rhel6 \ --vcpus 12 

主机的ifconfig:

 br0 Link encap:Ethernet HWaddr 16:AC:2D:A6:98:40 inet addr:xxx.yyy.zzz.217 Bcast:xxx.yyy.zzz.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:92172 errors:0 dropped:0 overruns:0 frame:0 TX packets:58463 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5428257 (5.1 MiB) TX bytes:71953860 (68.6 MiB) eth0 Link encap:Ethernet HWaddr 16:AC:2D:A6:98:40 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:117592 errors:0 dropped:0 overruns:0 frame:0 TX packets:79097 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8766798 (8.3 MiB) TX bytes:73073312 (69.6 MiB) Memory:fbc00000-fbd00000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:92 errors:0 dropped:0 overruns:0 frame:0 TX packets:92 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8172 (7.9 KiB) TX bytes:8172 (7.9 KiB) virbr0 Link encap:Ethernet HWaddr 51:54:00:39:CA:A7 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:128 (128.0 b) TX bytes:0 (0.0 b) vnet0 Link encap:Ethernet HWaddr 54:FE:00:F1:31:95 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:256 errors:0 dropped:0 overruns:1 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:20835 (20.3 KiB) vnet1 Link encap:Ethernet HWaddr 54:FE:00:CD:CD:C4 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:1307 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:2722 (2.6 KiB) TX bytes:110215 (107.6 KiB) 

我应该提供的任何其他相关信息?

谢谢!

如果guest虚拟机上的“ifconfig -a”没有显示eth0,则在主机上运行“virt-manager”,以获得编辑虚拟机参数的好GUI,而不是在命令行上执行。 如果您需要,可以通过该GUI来添加networking接口。

一旦你在guest虚拟机上有一个eth0,那么你将需要在文件/ etc / sysconfig / network-scripts / ifcfg-eth0中指定接口的参数。 请务必使用“GATEWAY”关键字指定默认网关。 以下是一个手动指定参数的ifcfg脚本示例(与使用DHCP相反)。 您当然需要为您的networking提供正确的IPADDR,NETWORK,NETMASK和GATEWAY值。

 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.1.110 NETWORK=192.168.1.0 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 

要使对ifcfg-eth0的更改生效,请运行“service network restart”。

在主机上做“brctl show”

validation你的vm是连接到桥br0,因为你的br0有公共ip(我假设你已经评论过了),把公网ip分配给你的guest虚拟机,并带有正确的网关。

要么

从br0删除你的虚拟接口,并将其添加到virbr0。

在主机上

 brctl delif br0 vifname brctl addif virbr0 vifname 

通过设置BOOTPROTO = dhcp在你的guest 虚拟机上启用dhcp

你将得到一个192.168.122.0的IP地址,你应该可以访问外部,只要你有正确的libvirt创build的NAT规则。