一.介绍
在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: