KVM 网卡配置bond(四)

版权声明:文章转发需标明文章出处地址及作者 https://blog.csdn.net/weixin_44267608/article/details/89028880

网卡配置bond(绑定)

网卡bond(绑定),也称作网卡捆绑。就是将两个或者更多的物理网卡绑定成一个虚拟网卡。网卡是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在应用部署中是一种常用的技术。

多网卡绑定实际上需要提供一个额外的软件的bond驱动程序实现。通过驱动程序可以将多块网卡屏蔽。对TCP/IP协议层只存在一个Bond网卡,在Bond程序中实现网络流量的负载均衡,即将一个网络请求重定位到不同的网卡上,来提高总体网络的可用性。

网卡绑定的目的:
1.提高网卡的吞吐量。
2.增强网络的高可用,同时也能实现负载均衡。

Bond模式:

(1)Mode=0(balance-rr) 表示负载分担round-robin,平衡轮询策略,具有负载平衡和容错功能bond的网卡MAC为当前活动的网卡的MAC地址,需要交换机设置聚合模式,将多个网卡绑定为一条链路。

(2)Mode=1(active-backup) 表示主备模式,具有容错功能,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。

(3)Mode=2(balance-xor) 表示XOR Hash负载分担(异或平衡策略),具有负载平衡和容错功能每个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。适配器负载均衡模式并行发送,并行接收数据包

常用的有三种
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。

mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。

mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

bond操作

原理
在这里插入图片描述

关机添加4块网卡

之后nmtui进行编辑,将有线连接换成对应的名字编辑好退出
在这里插入图片描述

进入目录查看
cd /etc/sysconfig/network-scripts
ls
在这里插入图片描述

添加网络适配器并配置相应文件
ens36、ens37、ens38、ens39、
vim ifcfg-ens36

HWADDR是mac地址

HWADDR=00:0C:29:48:E0:C0
TYPE=Ethernet
BOOTPROTO=none
NAME=ens36
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes
~          

ens37

HWADDR=00:0C:29:48:E0:DE
TYPE=Ethernet
BOOTPROTO=none
NAME=ens37
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes
~           

ens38

HWADDR=00:0C:29:48:E0:CA
TYPE=Ethernet
BOOTPROTO=none
NAME=ens38
DEVICE=ens38
ONBOOT=yes
MASTER=bond0
SLAVE=yes

ens39

HWADDR=00:0C:29:48:E0:D4
TYPE=Ethernet
BOOTPROTO=none
NAME=ens39
DEVICE=ens39
ONBOOT=yes
MASTER=bond0
SLAVE=yes

cp ifcfg-br0 ifcfg-bond0
vim ifcfg-bond0

DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
BONDING_OPTS="mode=6 miimon=100"         #模式为6,100秒检测一次
BRIDGE=br1

新建网桥
cp ifcfg-bro ifcfg-br1
vim ifcfg-br1

TYPE=Bridge
DEVICE=br1
NAME=br1
ONBOOT=yes
BOOTPROTO=none

systemctl restart network
ip a
在这里插入图片描述

建立网口
vconfig add br1 10
vconfig add br1 20
如果失败,则是8021q模块没有导入
则modprobe 8021q
在这里插入图片描述

给虚拟网口配置文件
vim ifcfg-br1.10

VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=10
NAME=br1.10
NBOOT=yes
ZONE=trusted
DEVICE=br1.10
BRIDGE=brvlan-10
~               

vim ifcfg-br1.20

VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=20
NAME=br1.20
NBOOT=yes
ZONE=trusted
DEVICE=br1.20
BRIDGE=brvlan-20
~                 

创建vlan
brctl addbr brvlan-10
brctl addbr brvlan-20

[root@kvm2 network-scripts]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c2948e0b6	no		ens33
br1		8000.000c2948e0c0	no		bond0
brvlan-10		8000.000000000000	no		
brvlan-20		8000.000000000000	no		
virbr0		8000.525400f31ac1	yes		virbr0-nic

brctl addif brvlan-10 br1.10
brctl addif brvlan-20 br1.20

[root@kvm2 network-scripts]# brctl addif brvlan-10 br1.10
[root@kvm2 network-scripts]# brctl addif brvlan-20 br1.20
[root@kvm2 network-scripts]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c2948e0b6	no		ens33
br1		8000.000c2948e0c0	no		bond0
brvlan-10		8000.000c2948e0c0	no		br1.10
brvlan-20		8000.000c2948e0c0	no		br1.20
virbr0		8000.525400f31ac1	yes		virbr0-nic

配置网桥配置文件
vim ifcfg-brvlan-10

TYPE=bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes

vim ifcfg-brvlan-20

TYPE=bridge
BOOTPROTO=static
NAME=brvlan-20
DEVICE=brvlan-20
ONBOOT=yes

重启网络
systemctl restart network

之后测试
与之前网桥测试相同,看是否能ping通

猜你喜欢

转载自blog.csdn.net/weixin_44267608/article/details/89028880
KvM
今日推荐