date: 2020-07-05title: linux使用bond实现双网卡绑定 #标题
tags: 双网卡绑定 #标签
categories: linux大杂烩 # 分类
实现双网卡绑定的方法有两种: bond和team,这里记录下bond实现方法。
bond支持的模式
共支持bond[0-6]共七种模式,常用的就三种,如下:
- mode=0:默认,平衡负载模式,有自动备援,但需要配置交换机。
- mode=1:主备模式,其中一条线若断线,其他线路将会自动备援,不需要配置交换机。
- mode=6:平衡负载模式,有自动备援,不需要配置交换机。
配置bond
OS | 网卡 | bond1 IP | bond 模式 |
---|---|---|---|
Centos 7.6 | ens33 ens37 | 192.168.20.55 | mode 1 |
注: ip地址配置在bond1 上,物理网卡无需配置IP地址。
# 加载bonding模块,并确认已加载
$ modprobe --first-time bonding
$ lsmod | grep bonding
bonding 149864 0
# 编写bond1 配置文件如下:
$ cat > /etc/sysconfig/network-scripts/ifcfg-bond1 << EOF
DEVICE=bond1
TYPE=Bond
IPADDR=192.168.20.55
NETMASK=255.255.255.0
GATEWAY=192.168.20.1
DNS1=114.114.114.114
DNS2=8.8.8.8
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
EOF
# 修改ens33网卡配置文件
$ cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
MASTER=bond1 # 需要和上面的ifcfg-bond0配置文件中的DEVICE的值一致
SLAVE=yes
EOF
# 修改ens37网卡配置文件
$ cat > /etc/sysconfig/network-scripts/ifcfg-ens37 << EOF
DEVICE=ens37
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens37
MASTER=bond1
SLAVE=yes
EOF
# 配置bonding
cat >> /etc/modules-load.d/bonding.conf << EOF
alias bond1 bonding
options bonding mode=1 miimon=200
EOF
# 重启网络服务
$ systemctl restart network # 如果服务启动失败,则表示配置bond网卡失败
重启network后,查看相应网卡信息如下:
查看bond1相关信息
$ cat /proc/net/bonding/bond1 # 查看bond1的接口状态
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin) # 绑定模式
MII Status: up # 接口状态
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33 # 备用接口: ens33
MII Status: up # 接口状态
Speed: 1000 Mbps # 端口速率
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:75:bb:6e # 接口永久MAC地址
Slave queue ID: 0
Slave Interface: ens37 # 备用接口: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:75:bb:78
Slave queue ID: 0
至此,ens33或ens37中任意一块网卡down掉,都不会影响通信。
注: 如果你是使用vmware workstaction虚拟机进行测试,请不要直接执行命令ifdown ens33
或ifdown ens37
进行测试,这样因为虚拟机的原因测试不到效果,请直接将下面的 已连接 复选框 去掉勾选进行测试: