Linux之Team 与 Bond实验
测试者:qjzhao
一、前置条件
测试环境:VM1台centos7.4服务、3个网卡(仅主机模式,NAT),2c4G,50G。
说明:本测试环境是安装完毕系统后又新增两网卡,在/etc/sysconfig/network-scripts/下未生成另外ifcfg-ens**文件(当前只有第一个网卡的ifcfg-ens32,这个根据不同的环境可能有出入),如果是在安装操作系统就创建三张网卡则会自动生成ifcfg-ens文件,无须后期添加。
配置网卡
配置网卡时,需关闭计算机。
[root@registry ~]# nmcli con
NAME UUID TYPE DEVICE
ens33 d200c7f9-08c6-4086-9234-c969dafdaeac ethernet ens33
ens34 8fa8ec37-8d23-307c-b21a-6aaffdb7964d ethernet ens34
ens35 5313b46e-bebb-3fbb-84c9-2fb2e27ee1ca ethernet ens35
virbr0 e075fc42-28df-419c-a0bc-83199c67aa85 bridge virbr0
二、Bond
Bond模式中,
##如果设备的上有ip,则需要先删除设备上的ip
注:常用命令
nmcli con delete
nmcli con down
##停用网卡
nmcli con up
##启动网卡
1、删除虚拟网卡
[root@registry ~]#ifconfig virbr0 down && brctl delbr virbr0 && systemctl disable libvirtd.service && systemctl mask libvirtd.service
[root@registry ~]# nmcli con show
NAME UUID TYPE DEVICE
ens32 d200c7f9-08c6-4086-9234-c969dafdaeac ethernet ens32
ens34 8fa8ec37-8d23-307c-b21a-6aaffdb7964d ethernet ens34
ens35 5313b46e-bebb-3fbb-84c9-2fb2e27ee1ca ethernet ens35
2、添加bond接口
nmcli connection delete bond0 删除已存在的bond接口
[root@localhost ~]# nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 188.188.189.10/24
[root@localhost ~]#
3、添加Bond接口设备
3.1备份、删除网卡
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak && cp /etc/sysconfig/network-scripts/ifcfg-ens34 /etc/sysconfig/network-scripts/ifcfg-ens34.bak && cp /etc/sysconfig/network-scripts/ifcfg-ens35 /etc/sysconfig/network-scripts/ifcfg-ens35.bak
rm -rf /etc/sysconfig/network-scripts/ifcfg-ens3{3,4,5}
3.2为bond接口添加设备
3.2.1 第一种方法
此处是直接修改ifcfg文件,请注意保留TYPE、NAME、UUID、DEVICE、onboot,**新增MASTER、SLAVE参数**
vim ifcfg-ens33
TYPE=Ethernet
NAME=ens33
UUID=10c4d9df-c49f-4a08-9892-8695af32d938
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim ifcfg-ens34
TYPE=Ethernet
NAME=ens34
UUID=91439b81-6054-43bb-ab56-c2f40b93a7aa
DEVICE=ens34
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim ifcfg-ens35
TYPE=Ethernet
NAME=ens35
UUID=49e22d15-f61f-413c-92ec-8a5c4072f756
DEVICE=ens35
ONBOOT=yes
MASTER=bond0
SLAVE=yes
~
3.2.2 第二种方法
这里需要注意的是:通过nmcli添加后会生成新的ifcfg文件,此时我们需要注意的是,需把备份ifcfg文件中的UUID替换成之前备份文件中的UUID
nmcli connection add con-name ens33 ifname ens33 type bond-slave master bond0
nmcli connection add con-name ens34 ifname ens34 type bond-slave master bond0
nmcli connection add con-name ens35 ifname ens35 type bond-slave master bond0
4、reboot
做完以上操作后,就可以重启系统了
5、bond接口状态查看
watch -n 1 cat /proc/net/bonding/bond0
6、负载均衡测试
6.1全部宕掉连接测试
[root@qjzhao ~]# nmcli con show
名称 UUID 类型 设备
bond0 9720b432-d27e-4980-ab9e-70bf70f2cee3 bond bond0
ens33 10c4d9df-c49f-4a08-9892-8695af32d938 802-3-ethernet ens33
ens34 91439b81-6054-43bb-ab56-c2f40b93a7aa 802-3-ethernet ens34
ens35 49e22d15-f61f-413c-92ec-8a5c4072f756 802-3-ethernet ens35
[root@qjzhao ~]# nmcli con down ens33
成功取消激活连接 'ens33'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
[root@qjzhao ~]# nmcli con down ens34
成功取消激活连接 'ens34'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@qjzhao ~]# nmcli con down ens35
成功取消激活连接 'ens35'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@qjzhao ~]# nmcli con show
名称 UUID 类型 设备
bond0 9720b432-d27e-4980-ab9e-70bf70f2cee3 bond bond0
ens33 10c4d9df-c49f-4a08-9892-8695af32d938 802-3-ethernet --
ens34 91439b81-6054-43bb-ab56-c2f40b93a7aa 802-3-ethernet --
ens35 49e22d15-f61f-413c-92ec-8a5c4072f756 802-3-ethernet --
当三个负载节点全部宕掉时,xshell已无法连接。
6.2宕掉2个连接测试
[root@qjzhao ~]# nmcli con up ens34
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@qjzhao ~]# nmcli con up ens35
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)
[root@qjzhao ~]#
至此,bond网卡配置完毕。我联想笔记本Tinkpad win10系统,vm15进行此测试时,只要修改网卡配置就直接蓝屏死机。
三、Team
1、备份网卡
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak && cp /etc/sysconfig/network-scripts/ifcfg-ens34 /etc/sysconfig/network-scripts/ifcfg-ens34.bak && cp /etc/sysconfig/network-scripts/ifcfg-ens35 /etc/sysconfig/network-scripts/ifcfg-ens35.bak
2、添加TEAM接口
nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 188.188.190.10/24 ##添加team聚合方式
3、为Team接口增加网卡设备
3.1 添加设备的第一种方法
这里需要注意的是:通过nmcli添加后会生成新的ifcfg文件,此时我们需要注意的是,需把备份ifcfg文件中的UUID替换成之前备份文件中的UUID
nmcli connection add con-name ens33 ifname ens33 type team-slave master team0
nmcli connection add con-name ens34 ifname ens34 type team-slave master team0
nmcli connection add con-name ens35 ifname ens35 type team-slave master team0
3.2添加设备的第二种方法
此处是直接修改ifcfg文件,请注意保留NAME、UUID、DEVICE、onboot,**新增TEAM_MASTER、DEVICETYPE参数**
[root@qjzhao network-scripts]#vim ifcfg-ens33
NAME=ens33
UUID=10c4d9df-c49f-4a08-9892-8695af32d938
DEVICE=ens33
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
[root@qjzhao network-scripts]# cat ifcfg-ens34
NAME=ens34
UUID=91439b81-6054-43bb-ab56-c2f40b93a7aa
DEVICE=ens34
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
[root@qjzhao network-scripts]# cat ifcfg-ens35
NAME=ens35
UUID=49e22d15-f61f-413c-92ec-8a5c4072f756
DEVICE=ens35
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
reboot
做完以上步骤后,可以重启系统。
3、宕机测试
3.1全部宕掉
3.2宕掉2个测试
[root@qjzhao ~]# nmcli con up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
[root@qjzhao ~]# nmcli con show
名称 UUID 类型 设备
ens33 10c4d9df-c49f-4a08-9892-8695af32d938 802-3-ethernet ens33
team0 e4edccb0-30a5-45d7-a3a3-16373d914042 team team0
ens34 91439b81-6054-43bb-ab56-c2f40b93a7aa 802-3-ethernet --
ens35 49e22d15-f61f-413c-92ec-8a5c4072f756 802-3-ethernet --
3、负载均衡查看
watch -n 1 teamdctl team0 stat
[root@qjzhao ~]# nmcli con show
名称 UUID 类型 设备
ens33 10c4d9df-c49f-4a08-9892-8695af32d938 802-3-ethernet ens33
ens34 91439b81-6054-43bb-ab56-c2f40b93a7aa 802-3-ethernet ens34
ens35 49e22d15-f61f-413c-92ec-8a5c4072f756 802-3-ethernet ens35
team0 e4edccb0-30a5-45d7-a3a3-16373d914042 team team0
三、Team与Bond区别
综述,建议大家使用Team。