关键词: eth0 peth0 eth1 peth1 xenbr0 xenbr1
eth0 eth1 这个是物理网卡的名字,而peth0, peth1 是虚拟机下的物理网卡接口,xenbr0, xenbr1是虚拟的网桥
eth0, peth0以及xenbr0是对应的,三者缺一不可。
brct1 show命令显示了当前网桥配置:
# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.feffffffffff no vif0.0
peth0
vif1.0
Xen网桥配置
首先,我们看看在Xen中用于配置虚拟网桥的一些命令和脚本。第一个脚本是/etc/xen/xend-config.sxp,它可以对虚拟机进行一些普通设置,其中包括了如下两行:
(network-script network-bridge)
(vif-script vif-bridge)
第一行确保网桥脚本(network-bridge script)被执行。网桥脚本是用于设置虚拟网桥的脚本,它使用brct1和ip命令设置网桥。执行该脚本时,会有如下几个执行步骤:
重命名物理接口eth0为peth0。
创建虚拟接口eth0。
复制MAC(媒体访问控制)地址和peth0相关配置到eth0。
禁用ARP协议。实际上是完全禁用了接口的功能。
创建虚拟网桥xenbr0。
将接口peth0和vif0.0连接到网桥。
多网桥操作
对于只有一个以太网接口的服务器,一个网桥就足够了。但是如果服务器有多个接口,可能就需要创建网桥以分散接口间通信了。通过这种方法,可以连接 xenbr0与peth0、xenbr1与peth1,使某个xenbr只能被特定的虚拟机连接,如,xenbr1只能与dom1连接。network- bridge脚本包含了完成这个操作的所有必要内容。例如,如下命令会创建一个连接到eth1网络板的网桥:
# ./etc/xen/scripts/network-bridge netdev=eth1 bridge=xenbr1 start
这条命令尽管很有用,但需要对/etc/xen/xend-config.sxp脚本进行一些调整才能在启动过程中自动创建网桥。默认情况下,这个脚本 会调用network-bridge脚本。不过,这个network-bridge脚本只能被调用一次。要避免这个问题,你需要创建一个network- wrapper脚本,通过配置network-wrapper脚本可以调用network-bridge脚本两次。通过如下步骤配置:
创建脚本/etc/xen/scripts/network-wrapper,使用如下命令:/etc/xen/scripts/network- bridge netdev=eth0 bridge=xenbr0 start /etc/xen/scripts/network-bridge netdev=eth1 bridge=xenbr1 start
调整/etc/xen/xend-config.sxp脚本,以便调用 network-wrapper脚本。在/etc/xen/xend-config.sxp脚本中添加如下内容:# (network-script network-bridge) (network-script network-wrapper_ (vif-script vif-bridge)
确保在每个非特权域的配置文件中指定它使用的网桥。这样,vif行会类似如下内容:vif=[ 'bridge=xenbr1', 'mac=00:16:3e:07:d2:0e', ]
总结
现在的服务器通常会有多个物理网卡。在Xen环境下,为了也有同样的效果,可以额外的配置一些网桥,分别让各虚拟机专用,从而提高虚拟网络的性能。
参考:http://hi.baidu.com/heqk/blog/item/7b520ff49c52eae17709d79a.html
eth0 eth1 这个是物理网卡的名字,而peth0, peth1 是虚拟机下的物理网卡接口,xenbr0, xenbr1是虚拟的网桥
eth0, peth0以及xenbr0是对应的,三者缺一不可。
brct1 show命令显示了当前网桥配置:
# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.feffffffffff no vif0.0
peth0
vif1.0
Xen网桥配置
首先,我们看看在Xen中用于配置虚拟网桥的一些命令和脚本。第一个脚本是/etc/xen/xend-config.sxp,它可以对虚拟机进行一些普通设置,其中包括了如下两行:
(network-script network-bridge)
(vif-script vif-bridge)
第一行确保网桥脚本(network-bridge script)被执行。网桥脚本是用于设置虚拟网桥的脚本,它使用brct1和ip命令设置网桥。执行该脚本时,会有如下几个执行步骤:
重命名物理接口eth0为peth0。
创建虚拟接口eth0。
复制MAC(媒体访问控制)地址和peth0相关配置到eth0。
禁用ARP协议。实际上是完全禁用了接口的功能。
创建虚拟网桥xenbr0。
将接口peth0和vif0.0连接到网桥。
多网桥操作
对于只有一个以太网接口的服务器,一个网桥就足够了。但是如果服务器有多个接口,可能就需要创建网桥以分散接口间通信了。通过这种方法,可以连接 xenbr0与peth0、xenbr1与peth1,使某个xenbr只能被特定的虚拟机连接,如,xenbr1只能与dom1连接。network- bridge脚本包含了完成这个操作的所有必要内容。例如,如下命令会创建一个连接到eth1网络板的网桥:
# ./etc/xen/scripts/network-bridge netdev=eth1 bridge=xenbr1 start
这条命令尽管很有用,但需要对/etc/xen/xend-config.sxp脚本进行一些调整才能在启动过程中自动创建网桥。默认情况下,这个脚本 会调用network-bridge脚本。不过,这个network-bridge脚本只能被调用一次。要避免这个问题,你需要创建一个network- wrapper脚本,通过配置network-wrapper脚本可以调用network-bridge脚本两次。通过如下步骤配置:
创建脚本/etc/xen/scripts/network-wrapper,使用如下命令:/etc/xen/scripts/network- bridge netdev=eth0 bridge=xenbr0 start /etc/xen/scripts/network-bridge netdev=eth1 bridge=xenbr1 start
调整/etc/xen/xend-config.sxp脚本,以便调用 network-wrapper脚本。在/etc/xen/xend-config.sxp脚本中添加如下内容:# (network-script network-bridge) (network-script network-wrapper_ (vif-script vif-bridge)
确保在每个非特权域的配置文件中指定它使用的网桥。这样,vif行会类似如下内容:vif=[ 'bridge=xenbr1', 'mac=00:16:3e:07:d2:0e', ]
总结
现在的服务器通常会有多个物理网卡。在Xen环境下,为了也有同样的效果,可以额外的配置一些网桥,分别让各虚拟机专用,从而提高虚拟网络的性能。
参考:http://hi.baidu.com/heqk/blog/item/7b520ff49c52eae17709d79a.html
0
另外,有找到一篇这样的帖子来解决:(我在我的试验机器上试过,完美解决问题)
xen提供的脚本/etc/xen/script/network-bridge只能一个个建立,如要开机就启动2个虚拟网桥,按下面方法配置。
解决办法:
1.新建立一文件network-bridge-xen
#vi /etc/xen/script/network-bridge-xen
2.加入以下代码。3.更改属性
# chmod 755 network-bridge-xen
4.修改/etc/xen/xend-config.sxp里的代码
把所有的:
(network-script network-bridge ) →(network-script network-bridge-xen )
在/etc/xen/xend-config.sxp 中添加
vif = [ 'type=ioemu,bridge=xenbr0','type=ioemu,bridge=xenbr1' ]
添加:(network-script 'network-bridge-xen netdev=eth1')
添加:(network-script 'network-bridge-xen bridge=xenbr1')
cat /etc/xen/xend-config.sxp 内容做参考:5. 最后重启xend服务
# service xend restart
xen提供的脚本/etc/xen/script/network-bridge只能一个个建立,如要开机就启动2个虚拟网桥,按下面方法配置。
解决办法:
1.新建立一文件network-bridge-xen
#vi /etc/xen/script/network-bridge-xen
2.加入以下代码。
- #!/bin/sh
- # network-xen-custom
- # Exit if anything goes wrong
- set -e
- # First arg is operation.
- OP=$1
- script=/etc/xen/scripts/network-bridge
- case ${OP} in
- start)
- $script start vifnum=0 bridge=xenbr0 netdev=eth0
- $script start vifnum=1 bridge=xenbr1 netdev=eth1
- ;;
- stop)
- $script stop vifnum=0 bridge=xenbr0 netdev=eth0
- $script stop vifnum=1 bridge=xenbr1 netdev=eth1 br1 netdev=eth1
- ;;
- status)
- $script status vifnum=0 bridge=xenbr0 netdev=eth0
- $script status vifnum=1 bridge=xenbr1 netdev=eth1
- ;;
- *) echo "Unknown command:${OP}" echo 'Valid commands are: start, stop, status' exit 1
- ;;
- esac
# chmod 755 network-bridge-xen
4.修改/etc/xen/xend-config.sxp里的代码
把所有的:
(network-script network-bridge ) →(network-script network-bridge-xen )
在/etc/xen/xend-config.sxp 中添加
vif = [ 'type=ioemu,bridge=xenbr0','type=ioemu,bridge=xenbr1' ]
添加:(network-script 'network-bridge-xen netdev=eth1')
添加:(network-script 'network-bridge-xen bridge=xenbr1')
cat /etc/xen/xend-config.sxp 内容做参考:
- {# To bridge network traffic, like this:
- #
- # dom0: ----------------- bridge -> real eth0 -> the network
- # |
- # domU: fake eth0 -> vifN.0 -+
- vif = [ 'type=ioemu,bridge=xenbr0','type=ioemu,bridge=xenbr1' ]
- #
- # use
- #
- (network-script network-bridge-xen)
- #
- # Your default ethernet device is used as the outgoing interface, by default.
- # To use a different one (e.g. eth1) use
- #
- (network-script 'network-bridge-xen netdev=eth0')
- (network-script 'network-bridge-xen netdev=eth1')
- #
- # The bridge is named xenbr0, by default. To rename the bridge, use
- #
- # (network-script 'network-bridge bridge=<name>')
- (network-script 'network-bridge-xen bridge=xenbr0')
- (network-script 'network-bridge-xen bridge=xenbr1')}
# service xend restart
编辑回复