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 #配置好了就会变成这个样子 ![](https://i-blog.csdnimg.cn/direct/7d2a9360a37845839475105e490370c2.png) \[root@teaming \~\]# teamdctl team0 st #查看是否为轮询模式roundrobin ![](https://i-blog.csdnimg.cn/direct/436ff3d594c84fdda1190bf9bb91c0fb.png) \[root@teaming \~\]# nmcli connection up team0 #激活 ![](https://i-blog.csdnimg.cn/direct/d6a00a0a7b1949c18726f31315a372e5.png) \[root@teaming \~\]# nmcli connection show #显示网络连接配置信息 ![](https://i-blog.csdnimg.cn/direct/e2047fa3233e4092892050058ff33bf0.png) \[root@teaming \~\]# nmcli connection up team0-slave1 #激活team0从连接配置team0-slave1 \[root@teaming \~\]# nmcli connection up team0-slave2 #激活team0从连接配置team0-slave2 ![](https://i-blog.csdnimg.cn/direct/34aec1a59ee046588e4e2ad1df0366ad.png) \[root@teaming \~\]# nmcli connection show #显示网络连接配置信息 ![](https://i-blog.csdnimg.cn/direct/65965f24b83b428a9e529634f46450ac.png) ##### 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 ![](https://i-blog.csdnimg.cn/direct/d94e24fbb8644d119d36a1961a36460b.png) ![](https://i-blog.csdnimg.cn/direct/465bb047decb423392554b48c318a4a2.png) ![](https://i-blog.csdnimg.cn/direct/287f80b2e34d427782617a3a60be3a52.png) ### (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 ![](https://i-blog.csdnimg.cn/direct/c766dab85e7a4a72979a5f9152ed0eb4.png) (配置成功) \[root@teaming \~\]# nmcli connection up team0-slave1 #激活 \[root@teaming \~\]# nmcli connection up team0-slave2 \[root@teaming \~\]# nmcli connection show ![](https://i-blog.csdnimg.cn/direct/cf0fc1de6c3b4f3ab440c23e9c91c611.png) (这就配置好了,然后进行测试) 方法二:把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 ![](https://i-blog.csdnimg.cn/direct/a2d99722415444e1b099715c86e2b7b2.png) 终端3: ![](https://i-blog.csdnimg.cn/direct/3ac6098b8a3a49aeb0ff631c522d9b8e.png)