一、LinuxBridge集线器管理
网路虚拟化是虚拟化技术中最复杂的部份,也是十分重要的资源。
第一节中我们创建了一个名为br0的linux-bridge集线器,假如在此集线器上新建一台vm,如右图:
VM2的虚拟网卡vnet1也联接到了br0上。现今VM1和VM2之间可以通讯,同时VM1和VM2也都可以与内网通讯。
查看网路状态:
用brctlshow显示当前集线器联接状态:
brctl:
二、Vlan介绍
LAN表示LocalAreaNetwork,本地局域网linux 网卡虚拟化,一般使用Hub和Switch来联接LAN中的计算机。通常来说,两台计算机连入同一个Hub或则Switch时,它们就在同一个LAN中。
一个LAN表示一个广播域。其涵义是:LAN中的所有成员就会收到任意一个成员发出的广播包。
VLAN表示VirtualLAN。一个带有VLAN功能的switch才能将自己的端口界定出多个LAN。计算机发出的广播包可以被同一个LAN中其他计算机收到,但坐落其他LAN的计算机则未能收到。简单地说,VLAN将一个交换机分成了多个交换机,限制了广播的范围,在二层将计算机隔离到不同的VLAN中。
比方说,有两组机器,GroupA和B,我们想配置成GroupA中的机器可以互相访问,GroupB中的机器也可以互相访问,并且A和B中的机器难以相互访问。一种方式是使用两个交换机,A和B分别接到一个交换机。另一种方式是使用一个带VLAN功能的交换机,将A和B的机器分别放在不同的VLAN中。
VLAN的隔离是二层上的隔离,A和B难以互相访问指的是二层广播包(例如arp)难以跨越VLAN的边界。但在三层上(例如IP)是可以通过路由器让A和B互通的。
现今的交换机几乎都是支持VLAN的。一般交换机的端口有两种配置模式:Access和Trunk。如右图
Access口
这种端口被打上了VLAN的标签,表明该端口属于那个VLAN。不同VLAN用VLANID来分辨,VLANID的范围是1-4096。Access口都是直接与计算机网卡相连的,这样从该网卡下来的数据包流入Access口后就被打上了所在VLAN的标签。Access口只能属于一个VLAN。
Trunk口
假定有两个交换机A和B。A上有VLAN1(红)、VLAN2(黄)、VLAN3(蓝);B上也有VLAN1、2、3,那怎么让AB上相同VLAN之间才能通讯呢?
办法是将A和B连上去,但是联接A和B的端口要容许VLAN1、2、3三个VLAN的数据都还能通过。这样的端口就是Trunk口了。VLAN1,2,3的数据包在通过Trunk口抵达对方交换机的过程中一直带着自己的VLAN标签。
三、LinuxBridge实现Vlan原理
KVM虚拟化环境下实现VLAN构架,如右图
eth0是宿主机上的数学网卡,有一个命名为eth0.10的子设备与之相连。eth0.10就是VLAN设备了,其VLANID就是VLAN10。eth0.10挂在命名为brvlan10的LinuxBridge上,虚机VM1的虚拟网卡vent0也挂在brvlan10上。
这样的配置其疗效就是:宿主机用软件实现了一个交换机(其实是虚拟的),里面定义了一个VLAN10。eth0.10,brvlan10和vnet0都分别接到VLAN10的Access口上。而eth0就是一个Trunk口。VM1通过vnet0发出来的数据包会被打上VLAN10的标签。
eth0.10的作用是:定义了VLAN10
brvlan10的作用是:Bridge上的其他网路设备手动加入到VLAN10中
降低一个VLAN20,如右图
这样虚拟交换机就有两个VLAN了,VM1和VM2分别属于VLAN10和VLAN20。
对于新创建的虚机,只须要将其虚拟网卡装入相应的Bridge,还能控制其所属的VLAN。
VLAN设备总是以父子关系出现,父子设备之间是一对多的关系。一个母设备(eth0)可以有多个子设备(eth0.10,eth0.20……),而一个子设备只有一个母设备。
四、LinuxBridge实现Vlan
(1)查看核心是否提供VLAN功能,执行
#dmesg|grep-i802
或则检测/proc/net/vlan目录是否存在。
假如沒有提供VLAN功能,/proc/net/vlan目录是不存在的。
假如8021q模块没有载入,则可以通过使用modprobe模组载入802.1q模组,並且借助lsmod命令确认模组是否早已载入到核心内。
#modprobe8021q
#lsmod|grep8021q
设置开机载入8021q模块(可选)
在/etc/sysconfig/modules下降低一个8021q.modules文件,文件内容为modprobe8021q
#vi/etc/sysconfig/modules/8021q.modules
modprobe8021q
(2)安装查看用于查看Vlan配置的工具————vconfig
提早武器好vconfig-1.9-16.el7.x86_64.rpm
#rpm-ivhvconfig-1.9-16.el7.x86_64.rpm
#rpm-qavconfig
(3)创建vlan插口
创建vlan插口前,在设备上添加一块网卡ens34,
网路配置如下图:
注意:
将BOOTPROTO=static
基于网卡ens34构建vlan10linux 网卡虚拟化命令,vlan20插口:ens34.10,ens34.20:
#vconfigaddens3410
#vconfigaddens3420
#cd/etc/sysconfig/network-scripts/
#cpifcfg-ens34ifcfg-ens34.10--创建ens33.10插口配置文件
编辑ifcfg-ens34.10文件linux命令ls,降低/更改下边内容:
#vimifcfg-ens34.10
VLAN=yes
TYPE=vlan
PHYSDEV=ens34
VLAN_ID=10
NAME=ens34.10
ONBOOT=yes
ZONE=trusted
DEVICE=ens34.10
BRIDGE=brvlan-10
#cpifcfg-ens34.10ifcfg-ens34.20
编辑ifcfg-ens34.20文件,降低/更改下边内容:
#vimifcfg-ens34.20
VLAN=yes
TYPE=vlan
PHYSDEV=ens34
VLAN_ID=20
NAME=ens34.20
ONBOOT=yes
ZONE=trusted
DEVICE=ens34.20
BRIDGE=brvlan-20
(4)分别构建集线器brvlan-10,brvlan-20
#brctladdbrbrvlan-10
#brctladdbrbrvlan-20
(5)编辑集线器brvlan-10配置文件:
#vimifcfg-brvlan-10
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes
编辑集线器brvlan-20配置文件:
#vimifcfg-brvlan-20
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-20
DEVICE=brvlan-20
ONBOOT=yes
(6)将集线器brvlan-10接到网口ens34.10,brvlan-20接到网口ens34.20
#brctladdifbrvlan-10ens34.10
#brctladdifbrvlan-20ens34.20
(7)重新启动网路服务
#systemctlrestartnetwork
五、Vlan模式测试虚机
先将NetworkManager服务关掉
(1)在宿主机中早已提早创建好了虚机VM1
在virt-manager上将VM1的虚拟网卡挂到brvlan-10上
(2)从VM1克隆一台虚机VM2
virst-clone-ovm1-nvm2-f/var/lib/libvirt/images/vm2.qcow2
(3)启动VM1和VM2,并配置ip
(4)查看Bridge,发觉brvlan10早已联接了vnet0vnet1设备。
六、网卡配置bond(绑定)
(1)网卡bond(绑定),也叫做网卡捆绑。就是将两个或则更多的化学网卡绑定成一个虚拟网卡。网卡是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在应用布署中是一种常用的技术。
多网卡绑定实际上须要提供一个额外的软件的bond驱动程序实现。通过驱动程序可以将多块网卡屏蔽。对TCP/IP合同层只存在一个Bond网卡,在Bond程序中实现网路流量的负载均衡,将要一个网路恳求重定位到不同的网卡上,来提升总体网路的可用性。
(2)网卡绑定的目的:
1.提升网卡的吞吐量。
2.提高网路的高可用,同时也能实现负载均衡。
(3)网卡配置bond(绑定)bond模式:
1、Mode=0(balance-rr)表示负载分担round-robin,平衡协程策略,具有负载平衡和容错功能
bond的网卡MAC为当前活动的网卡的MAC地址,须要交换机设置聚合模式,将多个网卡绑定为一条链路。
2、Mode=1(active-backup)表示主备模式,具有容错功能,只有一块网卡是active,另外一块是备的standby,这时假若交换机配的是捆绑,将不能正常工作,由于交换机往两块网卡分包,有一半包是遗弃的。
3、Mode=2(balance-xor)表示XORHash负载分担(异或平衡策略),具有负载平衡和容错功能
每位slave插口传输每位数据包和交换机的聚合强制不协商形式配合。(须要xmit_hash_policy)。
4、Mode=3(broadcast)表示所有包从所有interface发出,广播策略,具有容错能力,这个不均衡,只有冗余机制...和交换机的聚合强制不协商形式配合。
5、Mode=4(802.3ad)表示支持802.3ad合同(IEEE802.3ad动态链接聚合)和交换机的聚合LACP方法配合(须要xmit_hash_policy)。
6、Mode=5(balance-tlb)适配器传输负载均衡,并行发送,难以并行接收,解决了数据发送的困局。是按照每位slave的负载情况选择slave进行发送,接收时使用当后轮到的slave。
7、Mode=6(balance-alb)在5的tlb基础上降低了rlb。适配器负载均衡模式并行发送,并行接收数据包。
5和6不须要交换机端的设置,网卡能手动聚合。4须要支持802.3ad。0,2和3理论上须要静态聚合方法,但实测中0可以通过mac地址误导的形式在交换机不设置的情况下不太均衡地进行接收。
常用的有三种:
mode=0:平衡负载模式,有手动备援,但须要”Switch”支援及设定。
mode=1:手动备援模式,其中一条线若断线,其他线路将会手动备援。
mode=6:平衡负载模式,有手动备援,何必”Switch”支援及设定。
(4)网卡配置bond(绑定)
1、eth1,eth2,eth3都配置绑定为bond0linux设置环境变量,比如:
#catifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
载入bond模块:
#modprobebonding
2、查看bond0,并桥接到br1
#catifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
#IPADDR=192.168.10.10
#PREFIX=24
#GATEWAY=192.168.10.19
BONDING_OPTS="mode=6miimon=100"
BRIDGE=br1
3、查看集线器br0
catifcfg-br1
TYPE=Bridge
DEVICE=br1
ONBOOT=yes
IPADDR=192.168.10.1
IPADDR1=192.168.20.1
IPADDR2=192.168.30.1
IPADDR3=192.168.40.1
IPADDR4=192.168.50.1
PREFIX3=24
PREFIX4=24
#GATEWAY=172.16.0.1
#DNS1=172.16.254.251
#DNS2=223.5.5.5
4、重启系统
查看网卡信息:
#ethtoolbond0
七、网卡配置bond+vlan实践
(1)创建bond0,并创建配置文件
(2)将bond0桥接到br1,并创建br1配置文件,重启网路服务
(3)在br1上,创建虚拟vlan网口:br1.10,br1.20,并创建配置文件
(4)创建brvlan-10,brvlan-10,并创建配置文件
(5)将集线器与虚拟vlan网口联接
brctladdifbrvlan-10br1.10
brctladdifbrvlan-20br1.20
(6)重启网路服务
本文原创地址://lrxjmw.cn/lwqwqglwlxnh.html编辑:刘遄,审核员:暂无