【链路聚合】Linux系统配置链路聚合详细步骤

2020-11-06 11:19:36 浏览数 (1)

前言

链路聚合(英语: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,测试是否正常工作

0 人点赞