8.2. 使用 libvirt 桥接的联网
桥接联网(也称为物理设备共享)是将物理设备专门用于一台虚拟机。桥接通常用于高级设置以及使用多个网络接口的服务器。
禁用 Xen 网络脚本
如果您的系统使用 Xen 桥接,则建议您编辑 /etc/xen/xend-config.sxp
文件并更改以下行禁用默认 Xen 网络桥接:
(network-script network-bridge)
To:
(network-script /bin/true)
禁用网络管理器(NetworkManager)
网络管理器不支持桥接。必须禁用网络管理器才可使用旧的网络脚本联网。
# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start
Note
Instead of turning off NetworkManager, you can add “NM_CONTROLLED=no
“ to the ifcfg-*
scripts used in the examples.
生成网络初始化脚本
创建或者编辑以下两个网络配置文件。可重复这一步(使用不同名称)添加额外网络桥接。
改为 /etc/sysconfig/network-scripts
目录:
# cd /etc/sysconfig/network-scripts
为您添加到桥接中的设备打开网络脚本。在这个示例中,ifcfg-eth0
定义已被设定为桥接一部分的物理网络接口:
DEVICE=eth0
# change the hardware address to match the hardware address your NIC uses
HWADDR=00:16:76:D6:C9:45
ONBOOT=yes
BRIDGE=br0
Tip
您可以在配置文件最后附加 MTU
变量配置设备的最大传输单位(MTU)。
MTU=9000
在 /etc/sysconfig/network-scripts
目录中创建名为 ifcfg-br0
和类似的新网络脚本。br0
是桥接名称,它可以是任何名称,只要该文件名称与 DEVICE 参数一致即可。
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
Warning
The line, TYPE=Bridge
, is case-sensitive. It must have uppercase ‘B’ and lower case ‘ridge’.
配置后请重启联网或者重新引导。
# service network restart
Configure iptables
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# service iptables save
# service iptables restart
Disable iptables on bridges
Alternatively, prevent bridged traffic from being processed by iptables
rules. In /etc/sysctl.conf
append the following lines:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Reload the kernel parameters configured with sysctl
# sysctl -p /etc/sysctl.conf
Restart the libvirt
daemon.
# service libvirtd reload
You should now have a “shared physical device”, which guests can be attached and have full LAN access. Verify your new bridge:
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
br0 8000.000e0cb30550 no eth0
请注意:该桥接完全独立于 virbr0
桥接。不要试图将物理设备附加到 virbr0
。virbr0
桥接只用于网络地址转换(NAT)连接性。