使用 virt-manager 图形工具创建 kvm guests 时,会发现无法使用桥接网络(bridged networking)。看完这篇文章将帮你搞定这个问题。
对于使用 virt-manager 安装 qemu/kvm 实例, 缺省桥接网卡缺省应命名为 vnet0 vnet1 ,首先安装需要的包,并启动 libvirtd 服务:
yum install kvm qemu python-virtinst libvirt libvirt-python virt-manager service libvirtd start
然后执行以下命令,会看到
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
接下来是配置 vnet0 作为桥接网卡
vi /etc/sysconfig/network-scripts/ifcfg-vnet0
内容应该类似如下
DEVICE=vnet0 BOOTPROTO=none ONBOOT=yes IPADDR=221.248.48.215 NETMASK=255.255.255.192 GATEWAY=221.248.48.193 TYPE=Bridge
注意,vnet0里边的ip、netmask、gateway应当与 eth0 中的完全相同,这是因为马上 vnet0 将会替代 eth0 作为对外的网络接口,而eth0仅仅会被当做桥接,失去对外网络接口的作用。然后,请启动 vnet0 接口:
ifup vnet0
接下来,要让物理接口(eth0)使用vnet0作为桥接。运行如下命令
# brctl addif vnet0 eth0
然后验证一下是否成功,再次运行 brctl show:
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes vnet0 8000.0019b97ec863 yes eth0
接下来要修改 eth0 的配置文件。这个配置文件应该一早就存在,编辑一下。
vi /etc/sysconfig/network-scripts/ifcfg-vnet0
只需要增加一行 BRIDGE=vnet0 看起来应该如下
# Intel Corporation 82574L Gigabit Network Connection
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:25:90:62:02:86
ONBOOT=yes
IPADDR=221.248.48.215
NETMASK=255.255.255.192
GATEWAY=221.248.48.193
TYPE=Ethernet
BRIDGE=vnet0
# service network restart Shutting down interface vnet0: [ OK ] Shutting down interface eth0: [ OK ] Shutting down interface eth1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] Bringing up interface eth1: [ OK ] Bringing up interface vnet0: [ OK ]
执行完毕后,eth0的桥接就完成了. 现在再看看 brctl show
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes vnet0 8000.002590620286 no vnet1 eth0
运行 virt-manager 到了网络那一步的时候,就可以使用桥接网卡了。下面是你会看到的屏幕截图。不需要指定 MAC 地址,除非需要做某些类型的静态绑定。
接下来安装并启动 kvm guest 你就可以使用跟宿主机一样的网络去配置了.
在 virt-manager 中直接使用桥接网络比通过命令行以及启动脚本去配置要简单得多。除了以上的步骤之外,由 virt-manager 搞定一切细节。
注:本文应用于 Centos 5.x,但 Centos 6.x 应该差不多。