使用 virt-manager 图形工具创建 kvm guests 时,会发现无法使用桥接网络(bridged networking)。看完这篇文章将帮你搞定这个问题。

 

1. 配置桥接

对于使用 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

 

2. 将物理接口添加到桥接中

接下来,要让物理接口(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

 

3. 重新启动网络服务

# 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

 

4. 在 Virt-Manager 中使用桥接服务

运行 virt-manager 到了网络那一步的时候,就可以使用桥接网卡了。下面是你会看到的屏幕截图。不需要指定 MAC 地址,除非需要做某些类型的静态绑定。

 

接下来安装并启动 kvm guest 你就可以使用跟宿主机一样的网络去配置了.

 

总结

在 virt-manager 中直接使用桥接网络比通过命令行以及启动脚本去配置要简单得多。除了以上的步骤之外,由 virt-manager 搞定一切细节。 

注:本文应用于 Centos 5.x,但 Centos 6.x 应该差不多。