网卡(接口)绑定是将多块 网卡逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法。提高服务器网络可用性的一个方式是使用多个网卡。Linux 绑定驱动程序提供了一种将多个网卡聚合到一个逻辑的绑定接口的方法。这是个新的实现绑定的方法,并不影响 linux 内核中旧绑定驱动。

在 Linux 中用 nmcli 命令绑定多块网卡的方法

网卡绑定为我们提供了两个主要的好处:

现在让我们在 CentOS 7 上配置网卡绑定吧。我们需要决定选取哪些接口配置成一个组接口(Team interface)。

运行 ip link命令查看系统中可用的接口。

 $ ip link

这里我们使用 eno16777736eno33554960网卡在 “主动备份” 模式下创建一个组接口。(译者注:关于不同模式可以参考:多网卡的7种bond模式原理)

按照下面的语法,用 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. 创建组接口

现在让我们来创建组接口。这是我们创建组接口所使用的命令。

 # nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

运行 # nmcli con show命令验证组接口配置。

# nmcli con show

2. 添加从设备

现在让我们添加从设备到主设备 team0。这是添加从设备的语法:

# nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

在这里我们添加 eno16777736eno33554960作为team0接口的从设备。

# nmcli con add type team-slave con-name team0-port1 ifname eno16777736 master team0

# nmcli con add type team-slave con-name team0-port2 ifname eno33554960 master team0

再次用命令 #nmcli con show验证连接配置。现在我们可以看到从设备配置信息。

#nmcli con show