转: Linux下单网卡多vlan多虚拟机
#啟動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 關于VLAN與Cisco交換機中繼連接:http://www.net527.com/caozuoxitong/Linux/1119.htmlhttp://www.net527.com/caozuoxitong/Linux/1119.html
linux 單網卡與8大vlan通信 http://hi.baidu.com/zouhaoo/blog/item/3a85402acb061021d42af18d.html
Linux 設置 多ip,多vlan? http://kb.cnblogs.com/a/2205770/
轉載于:https://www.cnblogs.com/itfriend/archive/2012/05/30/2526660.html
總結
以上是生活随笔為你收集整理的转: Linux下单网卡多vlan多虚拟机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构C语言实现—队列操作
- 下一篇: vc++深入详解学习-NO.3