Linux下单网卡多vlan多虚拟机

来源:互联网 发布:网络机柜报价 编辑:程序博客网 时间:2024/04/30 10:04

#启动xen服务:
xend start
#列出虚拟机
xm list
#start
xm create -c 虚拟机名
#进入虚拟机
xm console 虚拟机名
#退出虚拟机
ctrl]
#关闭
xm shutdown

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

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"

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

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

2、 虚拟机使用两块网卡

[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"

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

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

四、最后一步

将交换机的端口模式改成trnuk

小结:以此类推的话,添加多个VLAN就新建网卡子接口跑不用的VLAN。要是有多块网卡的,也可以分别桥接到不同的网桥。组网很灵活。也可以将物理网卡使用bonding技术后再桥接,这个技术不错,哈哈~

网桥有如下特点:
(1) 在混杂模式下工作。
(2) 有一个将全局唯一地址映射到网桥端口的地址表。
(3) 根据所接收帧的目的地址作出转发决定。
(4) 根据所接收帧的源地址建立和更新地址表。
(5) 当遇到未知的目的地址时,向每个端口(除接收此帧的端口外)转发该帧

 

使得我们机房的网络正式支持多vlan,目前是8个vlan.

   IP地址分布在9个网段:192.168.0.*-192.168.8.*

   第一机房: vlan8
   第二机房:vlan2
   第三机房:vlan3,vlan4,vlan5,vlan6,vlan7.


   主要是使用了vconfig工具。

   ip addres add 0.0.0.0 dev eth2

  
使 eth2 支持 3个机房的7个vlan: vlan2-vlan8
   vconfig add eth2   2
   vconfig
add eth2   3
   vconfig add eth3   4
   vconfig add eth2   5
  
vconfig add eth2   6
   vconfig add eth2   7
   vconfig add eth2   8


   eth0 走路由器,通外网
  
   eth1 连默认的vlan1,连内网的其它服务器以及网管工作站。


   物理网卡eth2被掰成了7个虚拟网卡: eth2.2,eth2.3,eth2.4,eth2.5,eth2.6,eth2.7,eth2.8.


分别给这7个虚拟网卡设置ip地址。

ifconfig eth0.100 100.100.100.100 netmask 255.255.255.0 up

ifconfig eth0.100 100.101.100.101 netmask 255.255.255.0 up

最后,再给7个vlan设置静态路由:

ip
route add 192.168.2.0/24 dev   eth2.2
ip route add 192.168.3.0/24 dev  
eth2.3
ip route add 192.168.4.0/24 dev   eth2.4
ip route add
192.168.5.0/24 dev   eth2.5
ip route add 192.168.6.0/24 dev   eth2.6
ip
route add 192.168.7.0/24 dev   eth2.7
ip route add 192.168.8.0/24 dev  
eth2.8

linux 单网卡与8大vlan通信 http://hi.baidu.com/zouhaoo/blog/item/3a85402acb061021d42af18d.html
Linux 设置 多ip,多vlan  http://kb.cnblogs.com/a/2205770/