网卡 team配置
一、介绍
- 网络组将多个网卡聚合在一起,从而实现冗错和提高吞吐量
- 网络组不同于旧版中bonding技术,提供更好的性能和扩展性
- 网络组由内核驱动和teamd守护进程实现.
启动网络组接口不会自动启动网络组中的port接口
1)启动网络组接口中的port接口总会自动启动网络组接口
2)禁用网络组接口会自动禁用网络组中的port接口
3)没有port接口的网络组接口可以启动静态IP连接
4)启用DHCP连接时,没有port接口的网络组会等待port接口的加入
runner 方式:
1.roundrobin 【mode 0】轮转策略 (balance-rr)
特点:
1)从头到尾顺序的在每一个slave接口上面发送数据包,轮询方式往每条链路发送报文,基于per packet方式发送。服务上ping 一个相同地址:1.1.1.1 双网卡的两个网卡都有流量发出。负载到两条链路上,说明是基于per packet方式 ,进行轮询发送。
2)提供负载均衡和容错的能力,当有链路出问题,会把流量切换到正常的链路上。
交换机端需要配置聚合口
2.activebackup【mode 1】活动-备份(主备)策略
特点:
一个端口处于主状态 ,一个处于从状态,所有流量都在主链路上处理,从链路不会有任何流量。当主端口down掉时,从端口接手主状态。
不需要交换机端支持
3.loadbalance【mode 2】限定流量
特点:
该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。既然目的地是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。
如果所有流量是通过单个路由器(比如 “网关”型网络配置,只有一个网关时,源和目标mac都固定了,那么这个算法算出的线路就一直是同一条,那么这种模式就没有多少意义了。),那该模式就不是最好的选择。
和balance-rr一样,交换机端口需要能配置为“port channel”。这模式是通过源和目标mac做hash因子来做xor算法来选路的。
交换机端需要配置聚合口
4.broadcast【mode 3】广播策略
特点:
这种模式一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源;不过这种模式有很好的容错机制。
此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题
适用于拓扑,两个接口分别接入两台交换机,并且属于不同的vlan,当一边的网络出现故障不会影响服务器另一边接入的网络正常工作。而且故障过程是0丢包
5.lacp (implements the 802.3ad Link Aggregation ControlProtocol)【mode 4】
特点:
802.3ad模式是IEEE标准,因此所有实现了802.3ad的对端都可以很好的互操作。802.3ad 协议包括聚合的自动配置,因此只需要很少的对交换机的手动配置(要指出的是,只有某些设备才能使用802.3ad)。802.3ad标准也要求帧按顺序(一定程度上)传递,因此通常单个连接不会看到包的乱序。
缺点:
标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding负载均衡模式一样,任何连接都不能使用多于一个接口的带宽。 此外,linux bonding的802.3ad实现通过对端来分发流量(通过MAC地址的XOR值),因此在“网关”型配置下,所有外出(Outgoing)流量将使用同一个设备。进入(Incoming)的流量也可能在同一个设备上终止,这依赖于对端802.3ad实现里的均衡策略。在“本地”型配置下,路两将通过 bond里的设备进行分发。
应用拓扑同mode 0,和mode 2一样,不过这种模式除了配置port channel之外还要在port channel聚合口下开启LACP功能,成功协商后,两端可以正常通信。否则不能使用。
二、 创建网络组team接口
语法: nmcli con add type team con-name CNAME ifname INAME [config JSON]
解释:CNAME 连接名, INAME 接口名 JSON 指定runner方式
格式: '{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp
准备环境:centos7系统 2块网卡:相同仅主机工作环境 (以下为ens33\ens37网卡名称)
nmcli connection add type team con-name team0 ifname team0 config
{"runner":{"name":"activebackup"}} ipv4.method manual ipv4.addresses 192.168.32.100/24 connection.autoconnect yes
三、创建port接口
语法:nmcli connection add type team-slave con-name CNAME ifname INAME masterTEAM
解释:CNAME 连接名 INAME 网络接口名(team0-ens33、team0-ens37) TEAM 网络组接口名(team0)
注意:连接名若不指定,默认为team-slave-IFACE
nmcli connection add con-name team0-ens33 type team-slave ifname ens33 master team0
# 把 ens33网卡创建为 team0网络组的子接口
nmcli connection add con-name team0-ens37 type team-slave ifname ens37 master team0
# 把 ens37 网卡创建为 team0网络组的子接口
四、启用team0下创建的两个子接口
nmcli connection up team0-ens33
nmcli connection up team0-ens37
五、删除网络组team
语法: 1、nmcli connection down team0
2、teamdctl team0 state (查看当前网络组team主网卡 和热备网卡哪个在工作)
3、nmcli connection delete team0-ens33 / nmcli connection delete team0-ens37
4、nmcli connection show (查看网络组 删除后就看不到了)
六、也可以:全手动配置team双网卡:
vi /etc/sysconfig/network-scripts/team
DEVICE=“team”
DEVICETYPE=“Team”
ONBOOT=“yes”
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=ip
GATEWAY=网关
TEAM_CONFIG=’{“runner”: {“name”: “activebackup”}}’
vim /etc/sysconfig/network-scripts/ifcfg-em1 # 编辑文件ifcfg- em1
DEVICE="em1“
DEVICETYPE=“TeamPort”
ONBOOT=“yes”
TEAM_MASTER=“team”
vim /etc/sysconfig/network-scripts/ifcfg-em2 # 编辑文件ifcfg- em2
DEVICE=“em2”
DEVICETYPE=“TeamPort”
ONBOOT=“yes”
TEAM_MASTER=“team”