CentOS 7.2 通过nmcli team实现双网卡绑定 bond

 网卡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。

下面来说一下怎么实现服务器网口聚合功能

  • 服务器侧配置(以下主要配置是mode 1即端口主备模式)

1、创建bond0口,其mode为1。(active-backup)(主-备份策略)

# nmcli connection add type bond con-name bond0 ifname bond0 mode 1

备注:会创建一个名为bond0的口,在路径/etc.sysconfig/network-scripts/就是ifcfg-bond0这个文件。

2、将2个网口enp6s0f0、enp6s0f1加到bond0里去。

#nmcli connection add type bond-slave con-name bond0-1 ifname enp6s0f0 master bond0

#nmcli connection add type bond-slave con-name bond0-2 ifname enp6s0f1 master bond0

备注:会分别创建名为bond0-1和bond0-2的二个文件,在路径/etc/sysconfig/network-scripts/就是ifcfg-bond0-1与ifcfg-bond0-2这二个文件。

3、修改路径/etc/sysconfig/network-scripts/下ifcfg-bond0、ifcfg-bond0-1、ifcfg-bond0-2、ifcfg-enp6s0f0和ifcfg-enp6s0f1这些文件。

1)ifcfg-bond0

将原先里面的配置删的只留下下面配置

DEVICE=bond0

TYPE=bond

BONDING_MASTER=yes

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.100.2

NETMASK=255.255.255.0

GATEWAY=192.168.100.1

(备注:经实际验证,BONDING_OPTS='miimon=100 mode=1'   命令错误的)

说明:miimon是用来进行链路监测的,其原理是检测网上的链路状态,一般将miimon值设为100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。mode为绑定的模式,1为主-备模式。

BONDING_OPTS='miimon=100 mode=1'   #该条命令是错误的,使用之后,拔掉一根网线,网络会继续丢包,重新插上也还是会继续丢包

需要将命令修改成:

BONDING_OPTS='mode=1 miimon=100'  

备注:若不加该条命令:BONDING_OPTS='mode=1 miimon=100'  ,后面轮流插拔网线,也不会丢包(希望有人可以解答是什么原因)

2)ifcfg-bond0-1不用修改,默认会出现下面配置:

TYPE=Ethernet

NAME=bond0-1

UUID=XXXXXXXXXXXXXXXXX

DEVICE=enp4s0f0

ONBOOT=yes

MASTER=bond0

SLAVE=yes

3)ifcfg-bond0-2也不用修改,默认会出现下面配置:

TYPE=Ethernet

NAME=bond0-2

UUID=YYYYYYYYYYYYYYYYYYYY

DEVICE=enp4s0f0

ONBOOT=yes

MASTER=bond0

SLAVE=yes

4)ifcfg-enp6s0f0

TYPE=Ethernet

BOOTPROTO=none   #原先是dhcp,要修改成 none

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp4s0f0

UUID=AAAAAAAAAAAAAAAAAAAAA

DEVICE=enp6s0f0

ONBOOT=yes      #原先是no,要修改成yes

MASTER=bond0

SLAVE=yes        #这一行是自己添加上的

 

5)ifcfg-enp6s0f1

TYPE=Ethernet

BOOTPROTO=none   #原先是dhcp,要修改成 none

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp4s0f0

UUID=BBBBBBBBBBBBBBBBBB

DEVICE=enp6s0f1

ONBOOT=yes      #原先是no,要修改成yes

MASTER=bond0

SLAVE=yes        #这一行是自己添加上的

上面配置好之后重启网络服务,会显示如下信息就说明服务启动了,可以测试将任意一个网线拔出再插回,看网络传输是否有问题。

CentOS 7.2 通过nmcli team实现双网卡绑定 bond_第1张图片

最后实际测试所有的mode类型,如下图所示

CentOS 7.2 通过nmcli team实现双网卡绑定 bond_第2张图片

你可能感兴趣的:(linux)