teaming技术

一.介绍

在CentOS 6与RHEL 6系统中,双网卡绑定采用的是bonding技术。到了CentOS 7,不仅能继续沿用bonding,还新增了teaming技术。在此推荐使用teaming,因其在查看与监控方面更为便捷 。

二.原理

这里介绍两种最常见的双网卡绑定模式:

(1) roundrobin - 轮询模式

所有链路处于负载均衡状态,这种模式的特点增加了带宽,同时支持容错能力。

部署------

(说明:要用kvm做,如果用VMware做会出问题)

1.准备两块网卡

root@kvm \~# virsh attach-interface vm-1 --type bridge --source virbr0 --persistent

#添加网卡

root@teaming \~# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

NAME=eth0

IPADDR=192.168.122.100

NETMASK=255.255.255.0

GATEWAY=192.168.122.1

DNS1=114.114.114.114

ONBOOT=yes

BOOTPROTO=none

root@teaming \~# cat /etc/sysconfig/network-scripts/ifcfg-ens9

DEVICE=ens9

NAME=ens9

IPADDR=192.168.122.200

NETMASK=255.255.255.0

GATEWAY=192.168.122.1

DNS1=114.114.114.114

ONBOOT=yes

BOOTPROTO=none

2.重启网络并开启NetworkManager

root@teaming \~# systemctl restart network #重启网络

root@teaming \~# systemctl start NetworkManager #启动NetworkManager服务

3.配置teaming

root@teaming \~# yum install teamd #安装管理 team 设备的工具

root@teaming \~# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"roundrobin"}}' #添加轮询模式团队连接

root@teaming \~# nmcli connection modify team0 ipv4.addresses 192.168.122.100/24 ipv4.gateway 192.168.122.1 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes

#修改团队连接网络配置

root@teaming \~# cat /etc/sysconfig/network-scripts/ifcfg-team0

TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=team0

UUID=b6b9a81d-3afd-4344-9f87-6ca1e1bc5dbb

DEVICE=team0

ONBOOT=yes

DEVICETYPE=Team

IPADDR=192.168.122.100

PREFIX=24

GATEWAY=192.168.122.1

DNS1=114.114.114.114
添加成功!

root@teaming \~# nmcli connection add type team-slave con-name team0-slave1 ifname eth0 master team0 #添加eth0至团队连接

root@teaming \~# nmcli connection add type team-slave con-name team0-slave2 ifname ens9 master team0 #添加ens9至团队连接

root@teaming \~# nmcli connection show #配置好了就会变成这个样子

root@teaming \~# teamdctl team0 st #查看是否为轮询模式roundrobin

root@teaming \~# nmcli connection up team0 #激活

root@teaming \~# nmcli connection show #显示网络连接配置信息

root@teaming \~# nmcli connection up team0-slave1

#激活team0从连接配置team0-slave1

root@teaming \~# nmcli connection up team0-slave2

#激活team0从连接配置team0-slave2

root@teaming \~# nmcli connection show #显示网络连接配置信息

4.测试

开两个终端以及一台客户机进行测试

root@teaming \~# yum install tcpdump #安装tcpdump

终端1:

root@teaming \~# tcpdump -nn -i eth0 icmp #在eth0抓icmp包信息

终端2:

root@haproxy \~# tcpdump -nn -i ens9 icmp #在ens9抓icmp包信息

客户机:

root@kvm \~# ping 192.168.122.100

(2) activebackup - 主备模式

一个网卡处于活动状态,另一个处于备份状态,所有流量都在主链路上处理,当活动网卡down掉时,启用备份网卡。

部署------

1.准备两块网卡

前面准备了就不用再准备了,如果没有准备就去准备一下,方法在上面。

2.配置teaming

方法一:直接改配置文件

root@teaming \~# cat /etc/sysconfig/network-scripts/ifcfg-team0

TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=team0

UUID=b6b9a81d-3afd-4344-9f87-6ca1e1bc5dbb

DEVICE=team0

ONBOOT=yes

DEVICETYPE=Team

IPADDR=192.168.122.100

PREFIX=24

GATEWAY=192.168.122.1

DNS1=114.114.114.114

(就改这一个地方就行)

root@teaming \~# systemctl restart network #重启网卡

root@teaming \~# teamdctl team0 st #查看是否为主备模式activebackup

(配置成功)

root@teaming \~# nmcli connection up team0-slave1 #激活

root@teaming \~# nmcli connection up team0-slave2

root@teaming \~# nmcli connection show

(这就配置好了,然后进行测试)

方法二:把team0配置文件删了,重新再敲一遍命令

root@teaming \~# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

只有这不一样,剩下的和上面的轮询配置完全一样。

3.测试

开三个终端以及一台客户机进行测试

root@teaming \~# yum install tcpdump #安装tcpdump

终端1:

root@teaming \~# tcpdump -nn -i eth0 icmp #抓包

终端2:

root@haproxy \~# tcpdump -nn -i ens9 icmp

客户机:

root@kvm \~# ping 192.168.122.100

终端3: