快速业务通道

单端口 实现Xen 虚拟机多VLAN

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-08

继上一篇《Xen安装windows和linux虚拟机》 ,在实际工作还会遇到各种需求,本文档将解决:一个物理端口下,Xen的虚拟机不同网卡属于不同VLAN.

实验环境:CentOs 5.5 两个VLAN 10、40

先介绍两个知识点:

linux bridge实现了ieee 802.1d协议,这个实现,不能支持VLAN的功能.也就是说,这个实现,只能承载一个广播域,而不能承载多个广播域.当然,可以创建多个bridge device,每个bridge都对应不同的vlan,在bridge内部,包通过fdb表来转发,但是这个fdb表里面并没有vlan的信息.如果要在多个bridge device之间通信,比在bridge device上创建vlan interface,然后配置路由,这样可以实现不同bridge之间的转发.
linux vlan实现了ieee 802.1q协议.802.1q本来应该是一个二层协议,但是linux的实现需要创建vlan interface,可以在vlan interface上配置ip地址.,这个interface可以放到路由表里面.一般来说,在这个interface上收到的包,会带这个interface配置的vlan id,而从这个interface发出去的包,会打上这个interface的vlan id.

一、新建两个bridge和网卡子接口

1、 两个网桥命名为Xenbr2,xenbr3.

2、 两个网卡接口eth1.10 跑vlan10,桥接到xenbr3;eth1.40 跑vlan 40桥接到xenbr2.

3、 可以使用命令brctl addbr bridgename 增加bridge ,brctl addif bridgename devicename 将网卡加入网桥;也可以新建配置文件.推荐使用配置文件.文件位置和内容如下:

[root@localhost network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-xenbr2

DEVICE=xenbr2

BOOTPROTO=static

ONBOOT=yes

TYPE=Bridge

[root@localhost network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-xenbr3

DEVICE=xenbr3

BOOTPROTO=static

ONBOOT=yes

Empire CMS,phome.net

TYPE=Bridge

[root@localhost network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth1.40

DEVICE=eth1.40

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

VLAN=yes

BRIDGE=xenbr2

[root@localhost network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth1.10

DEVICE=eth1.10

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

VLAN=yes

BRIDGE=xenbr3

PS:将网卡子接口加入网桥后就变成了网桥的一个端口,网桥是一个二层设备,网卡子接口配置了IP也无效.可以在网桥接口上配置IP供管理使用.

二、启动网桥

Ifup xenbr2

Ifup xenbr2

Ifup eth1.10

Ifup eth1.40

PS:网桥和网卡子接口启动有先后顺序之先,要先启动网桥,再启动网卡子接口.网卡了加入到网桥中去呀~

三、为虚拟机新增网卡

[root@xen-centos ~]# virsh

virsh # attach-interface centos bridge xenbr2

这个命令就能为centos这个虚拟机添加了一块网卡桥接到xenbr2上.

删除网卡的命令,不加MAC默认删除第一块网卡.

virsh # detach-interface centos bridge --mac 00:16:3E:24:B5:3B

Ps:重启不会丢失网卡,关机重新加载配置文件后会丢失网卡,下面提供修改配置文件的操作方法.

修改Xen虚拟机的配置文件

配置文件在/etc/xen 下,配置文件中对应的项是vif

1、 虚拟机只使用一块网卡

[root@localhost xen]# cat /etc/xen/centos

name = "centos"

uuid = "eb2f58c6-cd95-8109-f29e-5df80df8c476"

maxmem = 256

memory = 256

vcpus = 1

bootloader = "/usr/bin/pygrub"

on_poweroff = "destroy"

on_reboot = "restart"

on_crash = "restart"

Empire CMS,phome.net

disk = [ "tap:aio:/virtual/centos/centos5.5.img,xvda,w" ]

vif = [ "mac=00:16:36:2b:3f:a1,bridge=xenbr3,script=vif-bridge"]

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号