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地址。

  1. # 加载bonding模块,并确认已加载
  2. $ modprobe --first-time bonding
  3. $ lsmod | grep bonding
  4. bonding 149864 0
  5. # 编写bond1 配置文件如下:
  6. $ cat > /etc/sysconfig/network-scripts/ifcfg-bond1 << EOF
  7. DEVICE=bond1
  8. TYPE=Bond
  9. IPADDR=192.168.20.55
  10. NETMASK=255.255.255.0
  11. GATEWAY=192.168.20.1
  12. DNS1=114.114.114.114
  13. DNS2=8.8.8.8
  14. USERCTL=no
  15. BOOTPROTO=none
  16. ONBOOT=yes
  17. EOF
  18. # 修改ens33网卡配置文件
  19. $ cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
  20. DEVICE=ens33
  21. TYPE=Ethernet
  22. ONBOOT=yes
  23. BOOTPROTO=none
  24. DEFROUTE=yes
  25. IPV4_FAILURE_FATAL=no
  26. NAME=ens33
  27. MASTER=bond1 # 需要和上面的ifcfg-bond0配置文件中的DEVICE的值一致
  28. SLAVE=yes
  29. EOF
  30. # 修改ens37网卡配置文件
  31. $ cat > /etc/sysconfig/network-scripts/ifcfg-ens37 << EOF
  32. DEVICE=ens37
  33. TYPE=Ethernet
  34. ONBOOT=yes
  35. BOOTPROTO=none
  36. DEFROUTE=yes
  37. IPV4_FAILURE_FATAL=no
  38. NAME=ens37
  39. MASTER=bond1
  40. SLAVE=yes
  41. EOF
  42. # 配置bonding
  43. cat >> /etc/modules-load.d/bonding.conf << EOF
  44. alias bond1 bonding
  45. options bonding mode=1 miimon=200
  46. EOF
  47. # 重启网络服务
  48. $ systemctl restart network # 如果服务启动失败,则表示配置bond网卡失败

重启network后,查看相应网卡信息如下:

linux使用bond实现双网卡绑定 - 图1

查看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 ens33ifdown ens37进行测试,这样因为虚拟机的原因测试不到效果,请直接将下面的 已连接 复选框 去掉勾选进行测试:

linux使用bond实现双网卡绑定 - 图2