绑定网卡的模式一共有七种
模式0:轮询策略(round robin),mode=0,
优点:流量提高一倍
缺点:需要接入交换机做端口聚合,否则可能无法使用
特点:增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上
模式1:主备策略(active-backup),mode=1,
只有主网卡处于工作状态,备网卡处于备用状态,主网卡坏掉后备网卡开始工作,提供容错能力。
优点:冗余性高
缺点:链路利用率低,两块网卡只有1块在工作
不需要交换机端支持
模式2:异或策略(load balancing (xor)),mode=2
根据源MAC地址和目的MAC地址进行异或计算的结果来选择传输设备,提供负载均衡和容错能力。
需要交换机配置聚合口
模式3:广播策略(fault-tolerance (broadcast)),mode=3
将所有数据包传输给所有接口通过全部设备来传输所有数据,一个报文会复制两份通过bond下的两个网卡分别发送出去,提供高容错能力。
需要交换机配置聚合口
模式4:动态链接聚合(lacp),mode=4,按照802.3ad协议的聚合自动配置来共享相同的传输速度,网卡带宽最高可以翻倍,链路聚合控制协议(LACP)自动通知交换机聚合哪些端口,需要交换机支持 802.3ad协议,提供容错能力。
模式5:输出负载均衡模式(transmit load balancing),mode=5,输出负载均衡模式,只有输出实现负载均衡,输入数据时则只选定其中一块网卡接收,需要网卡和驱动支持ethtool命令。
模式6:输入/输出负载均衡模式(adaptive load balancing),mode=6,输入和输出都实现负载均衡,需要网卡和驱动支持ethtool命令。
mode5和mode6不需要交换机端的设置,网卡能自动聚合。mode4需要支持802.3ad。mode0,mode2和mode3理论上需要静态聚合方式。
拿到新机器后,执行以下操作
# 永久关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 临时关闭selinux
setenforce 0
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭NetworkManager,否则重启网卡时报错
systemctl stop NetworkManager
systemctl disable NetworkManager
修改网卡信息ens33和ens34
首先按照原配置将ens33 和 ens34 中的ONBOOT改为yes
然后ping www.baidu.com查看是否可以上网,保证两个网卡可以正常上网
如何检查呢如下
# 关闭ens33
ifdown ens33
# 查看端口状态,如没有就yum -y install net-tools
ifconfig
# ping百度
ping www.baidu.com
# 开启ens33
ifup ens33
# 查看端口状态
ifconfig
# 同样操作ens34 检查网卡是否可用
检查完成后,进行下一步,使用mode1模式进行绑定网卡
将网卡进行备份
cp /etc/sysconfig/network-scripts/ifcfg-{ens33,ens33_bak}
cp /etc/sysconfig/network-scripts/ifcfg-{ens34,ens34_bak}
创建一个虚拟网卡bond0
vim /etc/sysconfig/network-scripts/ifcfg-bond0
将下面内容填入,注意ip地址需要和网段相同
TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.19.120
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
DNS1=114.114.114.114
修改ens33网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
将下面内容填入
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
修改ens34网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens34
将下面内容填入
TYPE=Ethernet
BOOTPROTO=none
NAME=ens34
DEVICE=ens34
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
在/etc/modprobed.d/中创建bonding.conf
vim /etc/modprobe.d/bonding.conf
将下面内容填入
alias bond0 bonding
options bond0 miimon=100 mode=1 fail_over_mac=1
编辑开机脚本将两个网卡指定热备模式下工作顺序
# 添加启动项
echo "ifenslave bond0 ens33 ens34" >> /etc/rc.d/rc.local
# 添加执行权限
chmod +x /etc/rc.d/rc.local
最后重启网卡
# 重启网卡
systemctl restart network
# ifconfig查看信息
ifconfig
cat /proc/net/bonding/bond0
然后就可以进行测试啦
找个机器ping 本次测试的机器
ping 192.168.19.120
# 先停掉ens33
ifdown ens33
# 查看网卡信息
ifconfig
# 查看ping百度的命令是否有断开
# 启动ens33
ifup ens33
# 重复操作ens34