业务需求双网卡绑定模式

为了方便演示 我们用ens33 管理 ens34-35用于bond配置
centos 7 里面

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ad:8d:99 brd ff:ff:ff:ff:ff:ff
    inet 9.110.187.253/24 brd 9.110.187.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fead:8d99/64 scope link 
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ad:8d:a3 brd ff:ff:ff:ff:ff:ff
4: ens35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ad:8d:ad brd ff:ff:ff:ff:ff:ff


1. 简要
双网卡绑定技术在centos7中使用了teaming技术,而在rhel6/centos7中使用的是bonding技术,在centos7中双网卡绑定既能使用teaming也可以使用bonding,这里推荐使用teaming技术,方便与查看和监控。
2. 原理
这里介绍两种最常见的双网卡绑定模式:
(1)roundrobin - 轮询模式
所有链路处于负载均衡状态,这种模式的特点增加了带宽,同时支持容错能力。
(2)activebackup - 主备模式
一个网卡处于活动状态,另一个处于备份状态,所有流量都在主链路上处理,当活动网卡down掉时,启用备份网卡

使用teaming模式进行双网卡绑定
roundrobin模式也称为轮询模式,它基于每一个包,当某一台服务器的两张网卡设置为roundrobin模式teaming,此时服务器发出的数据包,就会在两个物理网卡上进行轮询,即第一个数据包走一张网卡,第二个数据包走第二张网卡,依次轮询。
注意:
(1)roundrobin具有容错性,当一张网卡down掉,数据包依然发送成功。
(2)在使用roundrobin模式必须要在交换机上做以太通道,不然会出现网络无法连通

停止NetworkManager

systemctl start NetworkManager
systemctl enable NetworkManager

#使用nmcli命令操作,创建team接口team0,同时设置teaming模式为roundrobin 此命令可在网卡配置文件目录中生成ifcfg-tem0
nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name": "roundrobin"}}'

如下

DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\": \"roundrobin\"}}"
DEVICETYPE=Team
BOOTPROTO=dhcp
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=team0
UUID=d1135759-b5a5-4168-888a-a947b9e41021
ONBOOT=yes#给接口team0设置ip地址和网关
nmcli con modify team0 ipv4.address '10.1.1.254/24' ipv4.gateway '10.1.1.1'#设置为手动模式,取消DHCP 对应文件 BOOTPROTO=none
nmcli con modify team0 ipv4.method manual#将两张物理网卡加入到team中
nmcli con add type team-slave con-name team0-port1 ifname ens34 master team0
nmcli con add type team-slave con-name team0-port2 ifname ens35 master team0#查看
nmcli con sh#查看team0的状态
teamdctl team0 st
setup:
  runner: roundrobin
ports:
  ens34
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens35
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0

测试 通过down 网卡端口测试    

#删除
nmcli con del type team-slave con-name team0-port1

轮询算法的缺点

轮询调度算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询调度算法容易导致服务器间的负载不平衡。

所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况

 bond模式介绍参考

http://support.huawei.com/huaweiconnect/enterprise/thread-282727.html

心有缚,则有缚,心无缚,则自由。