前言:
链路聚合(英语:Link Aggregation)将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担
网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。 网卡的链路聚合一般常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。
一、bond
bond的七种模式介绍:
- 1、mode=0(balance-rr)(平衡抡循环策略)
- 2、mode=1(active-backup)(主-备份策略)
- 3、mode=2(balance-xor)(平衡策略)
- 4、mode=3(broadcast)(广播策略)
- 5、mode=4(802.3ad)(IEEE 802.3ad 动态链接聚合)
- 6、mode=5(balance-tlb)(适配器传输负载均衡)
- 7、mode=6(balance-alb)(适配器适应性负载均衡)
各模式信息,可以查看链接非常详细:
https://blog.51cto.com/linuxnote/1680315
1、查看目前网卡的名称和状态
代码语言:javascript复制 nmcli device status
2、创建bond0口
代码语言:javascript复制nmcli connection add type bond con-name bond0 ifname bond0
3、将接口ens33、ens37加到bond0里去
代码语言:javascript复制nmcli connection add type bond-slave ifname ens33 master bond0
nmcli connection add type bond-slave ifname ens37 master bond0
4、静态配置bond0口地址、网关
代码语言:javascript复制nmcli connection modify bond0 ipv4.addresses ‘192.168.10.200/24’ipv4.gateway ‘192.168.10.2’
代码语言:javascript复制nmcli connection modify bond0 ipv4.method manual
5、启动
代码语言:javascript复制nmcli connection up bond0
6、验证
代码语言:javascript复制ip addr show bond0
代码语言:javascript复制ip route
测试断开一块网卡,可以看到切换时会丢失几个包后网络依旧连通着。
二、team
1.查看网卡的连接信息
代码语言:javascript复制nmcli connnection show
2.创建team,名称为team0
按照下面的语法,用 nmcli 命令为网络组接口创建一个连接。
# nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 指代连接的名称,INAME 是接口名称,JSON (JavaScript Object Notation) 指定所使用的处理器(runner)。JSON语法格式如下:
'{"runner":{"name":"METHOD"}}'
METHOD 是以下的其中一个:broadcast、activebackup、roundrobin、loadbalance 或者 lacp。
最常见的双网卡绑定模式: (1) roundrobin - 轮询模式 所有链路处于负载均衡状态,这种模式的特点增加了带宽,同时支持容错能力。 (2) activebackup - 主备模式 一个网卡处于活动状态,另一个处于备份状态,所有流量都在主链路上处理,当活动网卡down掉时,启用备份网卡。
这里我们创建“”roundrobin“为例”
代码语言:javascript复制nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name": "roundrobin"}}'
3.设置team0的ip、gateway、dns
代码语言:javascript复制nmcli con modify team0 ipv4.address '192.168.10.188/24' ipv4.gateway '192.168.10.2'
代码语言:javascript复制nmcli con modify team0 ipv4.dns 114.114.114.114
4.设置team的属性为manual
代码语言:javascript复制nmcli con modify team0 ipv4.method manual
5.添加网卡ens33、ens37到team0中
代码语言:javascript复制nmcli con add type team-slave con-name team0-port1 ifname ens33 master team0nmcli con add type team-slave con-name team0-port1 ifname ens37 master team0
6.启动team0
代码语言:javascript复制nmcli con up team0
7,查看team0状态
代码语言:javascript复制teamdctl team0 state view
通过以上就完成了通过nmcli创建roundrobin的网络team
8,测试是否正常工作