{"title": "\u591a\u7f51\u5361xen\u6865\u63a5", "update_time": "2013-01-02 15:14:44", "tags": "xen bridge", "pid": "203", "icon": "xen.png"}
总会遇到默认的一个xen桥接不满足需求的情况,比如以下的场景: ``` | +------------------------+ | | | +------------+ | | | eth0 +++ +--+ DomainU +--+ +-+ eth1 | | | | | +------------+ | | | | +-------+ +-+ +--++ +------| | | | | | | | +++ +++ | | | Domain0 | | | +------------------------+ | | | Network 1 Network 2 ``` 我们的虚拟机希望和实体机一样有2个网卡,并且连接到相应的网络。 解决办法是通过修改相应配置产生相应的桥。针对以上的场景我们做以下实现: 1.创建桥接脚本 脚本位置/etc/xen/scripts/my-network-bridge,内容如下: ``` #!/bin/bash /etc/xen/scripts/network-bridge "$@" vifnum=0 netdev=eth0 bridge=xenbr0 /etc/xen/scripts/network-bridge "$@" vifnum=1 netdev=eth1 bridge=xenbr1 ``` 加上可执行文件权限: ``` chmod +x /etc/xen/scripts/my-network-bridg ``` 2.替换xen默认配置文件/etc/xen/xend-config.sxp中的桥接脚本 将(network-script network-bridge)替换为(network-script my-network-bridge) ``` sed -i 's/^(network-script network-bridge)/#(network-script network-bridge)\n(network-script my-network-bridge)/g' /etc/xen/xend-config.sxp ``` 3.重启桥接网络 ``` /etc/xen/scripts/network-bridge stop /etc/xen/scripts/network-bridge start ``` 4.完成后检查 执行brctl查看网桥,检查是否已经将eth0桥接到xenbr0,eth1桥接到xenbr1 ``` brctl show bridge ``` 5.虚拟机的网卡配置 网卡配置项改成如下: ``` vif = [ "mac=00:16:3e:0d:f9:d3,bridge=xenbr0","mac=00:16:3e:0d:f9:dd,bridge=xenbr1" ] ``` 网卡的mac地址请根据情况更改,重要的是bridge桥接配置,一个桥接到xenbr0,一个桥接到xenbr1 OK,完成!