zoukankan      html  css  js  c++  java
  • Linux下的网卡Bonding

    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-6558-4138-beeb-dc206f497946
    DEVICE=ens32
    ONBOOT=yes
    MASTER=0e3677f7-6ba2-4644-bdf3-44e18b5cfa1b
    SLAVE=yes
    
    [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34
    TYPE=Ethernet
    NAME=ens34
    UUID=05aab6ff-1203-40b7-b0e2-15b04f2089e4
    DEVICE=ens34
    ONBOOT=yes
    MASTER=0e3677f7-6ba2-4644-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-4644-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=32
    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(据网友说此法不会引起网络闪断,但是我实测偶尔还是闪断)

  • 相关阅读:
    安全加固3-加固
    Centos7 64位 -- glibc-2.29 编译升级方法(已成功)
    Centos7 -- glibc 升级失败、意外删除、故意删除后的处理方法
    系统引导修复,grub2下的各种骚作
    linux 升级 5.0.2内核
    kvm虚拟化二: 字符界面管理及 无人值守安装
    kvm虚拟化一: 图形化的管理方式
    Linux rhel7 无线网络配置
    虚拟化简介
    requests模块使用二
  • 原文地址:https://www.cnblogs.com/IvanChen/p/7299767.html
Copyright © 2011-2022 走看看