网络组是将多块网卡逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法。提高服务器网络可用性的一个方式是使用多个网卡。Linux 绑定驱动程序提供了一种将多个网卡聚合到一个逻辑的绑定接口的方法。这是个新的实现绑定的方法,并不影响linux内核中旧绑定驱动。
broadcast:传输来自所有端口的每个包
roundrobin:以轮询方式传输来自每个端口的包
activebackup:故障转移,监视链接更改并选择活动端口进行数据传输
loadbalance:监控流量并使用哈希函数以尝试在为包传输选择端口时达到完美均衡
lacp(implements the 802.3ad Link Aggregation Control Protocol)
实施802.3链路聚合控制协议
创建网络组接口
nmcli命令可用于创建和管理组和端口接口。以下4个步骤用于创建和激活网络组接口:
配置IP地址 nmcli connection add type ethernet con-name ens36 ifname ens36
激活IP nmcli connection up ens36
设置IP地址nmcli connection modify ens36 ipv4.addresses 192.168.2.200/24
设置网管nmcli connection modify ens36 ipv4.gateway 192.168.2.2
设置dns nmcli connection modify ens36 ipv4.dns 144.144.144.144
设置手动 nmcli connection modify ens36 ipv4.method manual (手动),(auto 自动)
重载网卡 systemctl restart network
查看IP nmcli connection show ens36 | grep ipv4
2、确定组接口的IPv4和/或IPv6属性
3、分配端口接口
4、启动/关闭组接口和端口接口
创建组接口命令格式:组接口默认使用dhcp获取IP参数
nmcli con add type team con-name CNAME ifname INAME [configJSON]
CNAME:连接名,INAME:接口名
JSON指定runner方式
格式:'{"runner": {"name": "METHOD"}}'
METHOD可以是broadcast,roundrobin,
activebackup,loadbalance, lacp
分配端口接口命令格式:
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
CNAME:连接名
INAME:网络接口名
TEAM:网络组接口名
连接名若不指定,默认为team-slave-IFACE
启动/关闭组接口和端口接口
nmcli dev dis INAME
nmcli con up CNAME
INAME设备名 CNAME网络组接口名或port接口
实验:创建网络组(如果是建网络组必须要恢复到原始快照)
nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'
添加IP nmcli connection modify team0 ipv4.addresses 172.16.16.2/24
添加网关nmcli connection modify team0 ipv4.gateway 172.16.16.254
添加DNS nmcli connection modify team0 ipv4.dns 144.144.144.144
改为手动 nmcli connection modify team0 ipv4.method manual
加入33网卡 nmcli connection add con-name team1 type team-slave ifname ens33 master team0
加入36网卡nmcli connection add con-name team2 type team-slave ifname ens36 master team0
启动
nmcli connection up team0
nmcli connection up team1
nmcli connection up team2
两台虚拟机同样的操作
5、查看状态
teamdctl team0 state
会自动创建配置文件:
team组配置文件
[root@localhost network-scripts]# cat ifcfg-team0
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=346f1ea9-20e8-4798-b162-0cddbeeef375
ONBOOT=yes
DEVICETYPE=Team //标示这个是一个team组接口
DNS1=144.144.144.144
IPADDR=172.16.16.1
PREFIX=24
ONBOOT=yes
DEVICETYPE=Team
DNS1=144.144.144.144
IPADDR=172.16.16.1
PREFIX=24
GATEWAY=171.16.16.254
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
组中端口的配置文件:
[root@localhost network-scripts]# cat ifcfg-team2
NAME=team02
UUID=f573946a-c553-43ed-9c97-1d8650e47f34
DEVICE=ens36
ONBOOT=yes
TEAM_MASTER=team0 //定义端口所属的组设备
DEVICETYPE=TeamPort //标示这是一个组端口接口
可以模拟设备接口down掉
nmcli device disconnect ens36
常用的team配置排障工具命令:
teamnl 和 teamdctl
显示team1接口的组端口:
[root@localhost ~]# teamnl team0 ports
3: ens36: up 1000Mbit FD
2: ens33: up 1000Mbit FD
显示team1的当前活动端口:
[root@localhost ~]# teamnl team0 getoption activeport
2
设置team1的当前活动端口:
[root@localhost ~]# teamnl team1 setoption activeport 3
[root@localhost network-scripts]# teamnl team0 getoption activeport