1. 网卡Bonding一共有0-6七种mode,具体区别请自行搜索;

2. 建议通过nmtui命令在交互模式下配置,这样不会落下重要的字段,也不用去记忆到底有哪些字段;

3. 我的实验环境是VMWare Workstation+CentOS7,想实现网卡容错,所以选了mode 1(有些文章用了mode 6,但实测不行)。以下是配置文件:

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
NAME=ens32
UUID=93557b68---beeb-dc206f497946
DEVICE=ens32
ONBOOT=yes
MASTER=0e3677f7-6ba2--bdf3-44e18b5cfa1b
SLAVE=yes [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
NAME=ens34
UUID=05aab6ff--40b7-b0e2-15b04f2089e4
DEVICE=ens34
ONBOOT=yes
MASTER=0e3677f7-6ba2--bdf3-44e18b5cfa1b
SLAVE=yes [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
DNS1=10.197.80.104
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=0e3677f7-6ba2--bdf3-44e18b5cfa1b
ONBOOT=yes
BONDING_OPTS="updelay=0 resend_igmp=1 use_carrier=1 miimon=100 arp_all_targets=any ad_user_port_key=0 min_links=0 tlb_dynamic_lb=1 downdelay=0 xmit_hash_policy=layer2 packets_per_slave=1 primary_reselect=always arp_validate=none fail_over_mac=none ad_actor_sys_prio=65535 mode=1 lp_interval=1 lacp_rate=slow primary=ens32 all_slaves_active=0 arp_interval=0 ad_select=stable num_unsol_na=1 num_grat_arp=1"
IPADDR=10.199.89.30
PREFIX=
GATEWAY=10.199.89.1

4. 按照以上配置,重启网络服务时VMWare Workstation会报以下错误,因为此时你会发现两块物理网卡的mac地址一样了,所以我们要使用另一种办法:fail_over_mac=1,通过这个参数控制bond0使用active网卡的mac地址,而不去修改物理网卡自身的mac地址。(附上转来的解释)

解释一:linux网卡bonding的备份模式实验在真实物理机做完全没问题(前提是linux内核支持),但是在VMware Workstation虚拟机中做就会出现bond0能够正常启动也能够正常使用,只不过没有起到备份模式的效果。当使用ifconfig eth0 down后,网络出现不通现象。VMware Workstation给出提示:这个MAC地址是eth0的,eth1不能使用。
这种现象需要利用Linux的内核知识解决:bond0获取mac地址有两种方式:一种是从第一个活跃网卡中获取mac地址,然后其余的SLAVE网卡的mac地址都使用活跃网卡的mac地址;另一种是使用fail_over_mac参数,是bond0使用当前活跃网卡的mac地址,mac地址随着活跃网卡的状态转换而变化。VMware Workstation不支持第一种获取mac地址的方式,所以为了达到网卡绑定的效果,必须加上fail_over_mac=1的参数。
解释二:默认fail_over_mac=none,当发生错误时,只改slave的mac不改bond;fail_over_mac=1时,只改bond不改slave。

5. 查看Bonding的状态:cat /proc/net/bonding/bond0

6. 切换主从网卡可以采用拔插网线,ifdown/ifup,还有个办法是 ifenslave --change bond0 eth34(据网友说此法不会引起网络闪断,但是我实测偶尔还是闪断)

最新文章

  1. 求1...n中因子最多的数
  2. iOS 三种定时器
  3. SQL存储过程、视图
  4. MySQL存储过程解析
  5. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)
  6. hibernate对象关系实现(一)一对多
  7. RM报表的选项 注册表位置
  8. JavaScript对象 属性
  9. (转)将access数据库迁移到SQLserver的两种方法
  10. python中函数的总结之三
  11. 一个苹果证书怎么多次使用(授权Mac开发)——导出p12文件
  12. javascript格式化指定的日期对象
  13. (转)css换行样式:word-wrap同word-break的区别
  14. asp.net中ashx文件如何调用session
  15. linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖
  16. SBT详解
  17. java——国际化详解
  18. TP3.2写提交的验证码验证
  19. 48、mysql补充
  20. TCP回射服务器修订版(ubuntu 18.04)

热门文章

  1. 【转载】MSXML应用总结 开发篇(下)
  2. element-UI表格从一列中,拿到当前行的index----scope
  3. CLR via C#读书笔记一:CLR的执行模型
  4. 【CJOJ2433】陌上花开 树状数组套替罪羊树
  5. JNDI是什么,怎么理解
  6. 数据结构与算法 —— 链表linked list(06)
  7. kali 2018.1安装教程
  8. java随记
  9. React——条件渲染
  10. ASP.NET Core 接触&介绍