终于把xen的vlan搞定了。
首先说一下我的需求吧
用xen做测试床,模拟一个测试环境,我负责拓扑重现这块
首先要做的就是vlan,因为目标网络环境一般是分为多个网段的,比如10.0.1.X,10.0.0.X等等
默认xen网络采用一个网桥的方式连接所有的domU,即所有的domU和dom0都处在同一个网段,且均可以相互ping通
我的设计是建立多个网桥,将不同网段的机器连在不同的网桥上,网桥内部可以ping通,网桥之间不能ping,这样比较接近目标网络
采用的网络方式是vlan。
查了很多资料,大该概有以下解决方案:
1)服务器有多快网卡,每块网卡对应建立一个网桥
http://tilt.lib.tsinghua.edu.cn/node/459
http://holy2010.blog.51cto.com/1086044/342144
http://hi.baidu.com/sdgtxuyong/blog/item/47706709c9ade0c13bc76388.html
这几篇文章方法大同小异,有效性未验证,因为我的服务器只有一块网卡。
2)继续使用1)中的方法,用虚拟网卡来解决问题
http://www.usidcbbs.com/read-htm-tid-2084.html
http://hi.baidu.com/woody213/blog/item/86ce49fbfe3f89ceb58f313c.html
这两篇文章都提供了方法,试了一下,bonding可以工作,eth0和eth1总是起不起来(本人菜鸟,可能是配得不对)
3)看来多网卡支持多网桥的方式比较困难,于是想到用vlan的方式(其实也是多网桥,早该这么做)
http://johnwang.blog.51cto.com/474770/367688
这篇文章基本说明了一切,这里重复一下我的做法
cd /etc/sysconfig/network-scripts
创建两个文件ifcfg-xenbr11和ifcfg-eth0.11,前者是网桥设备,后者是网桥对应的vlan接口,其实可以看出这个接口也是在网卡eth0上的
因为我需要至少两个网端进行测试,所以重复上面的做法,建立ifcfg-xenbr22和ifcfg-eth0.22.
[root@XenServer network-scripts]# cat ifcfg-xenbr11
DEVICE=xenbr11
BOOTPROTO=static
ONBOOT=yes
TYPE=Bridge
[root@XenServer network-scripts]# cat ifcfg-eth0.11
DEVICE=eth0.11
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
VLAN=yes
BRIDGE=xenbr11
修改domU的配置文件
vif = [ "mac=************,bridge=xenbr11,script=vif-bridge" ](其他字段可以不管,就把bridge字段改成xenbr11就好)
我所使用的拓扑是vm02(IP=10.0.1.20),vm03(IP=10.0.1.30)->xenbr11;vm04(IP=10.0.0.40),vm05(IP=10.0.0.30)->xenbr33;即vm02和vm03一个网段,vm04和vm05一个网段
重启dom0,brctl show的结果:
[root@testbed01 ~]# brctl show
bridge name bridge id STP enabled interfaces
eth0 8000.a4badbfd5da5 no peth0
virbr0 8000.000000000000 yes
xenbr11 8000.a4badbfd5da5 no eth0.11
xenbr33 8000.a4badbfd5da5 no eth0.33
这里的 bridge id 就是mac地址,eth0的mac地址是真实的mac(个人觉得无关紧要)
一次用xm create vm02,xm create vm03……命令启动domU
brctl show的结果如下:
[root@testbed01 ~]# brctl show
bridge name bridge id STP enabled interfaces
eth0 8000.a4badbfd5da5 no peth0
virbr0 8000.000000000000 yes
xenbr11 8000.0a300e60401c no vif4.0
tap4.0
vif3.0
tap3.0
eth0.11
xenbr33 8000.86c9277207e7 no vif2.0
tap2.0
vif1.0
tap1.0
eth0.33
vlan搭建成功
测试:vm02与vm03可以ping通,vm04与vm05可以ping通;vm02,vm03与vm04,vm05之间不能ping通;达到预期效果
注意:虚拟接口脚本ifcfg-eth0.11貌似不能重复,即不能有多个接口对应同一个网桥,不然可能就有问题了。打开网络配置管理器,随便操作几下,就会好,很诡异。
最后以下几篇资料对我的帮助也不小:
http://www.felipe-alfaro.org/blog/2006/07/21/xen-network-configuration-and-multiple-vlans/