• 网卡绑定bond


    网卡绑定

    bond模式:

    • Mode=0(balance-rr) 表示负载分担round-robin,和交换机的聚合强制不协商的方式配合。cisco交换机要设置Etherchannel

    • Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。

    • Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy) cisco交换机要设置Etherchannel

    • Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制...和交换机的聚合强制不协商方式配合。 cisco交换机要设置Etherchannel

    • Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)和 Etherchannel

    • Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave

    • Mode=6(balance-alb) 在5的tlb基础上增加了rlb。

    5和6不需要交换机端的设置,网卡能自动聚合。4需要支持802.3ad。0,2和3理论上需要静态聚合方式

    但实测中0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。

    常用的有三种

    • mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址

    • mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。

    • mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

    参考 http://5503845.blog.51cto.com/5493845/962580

    http://www.cnblogs.com/nulige/p/6714183.html?utm_source=itdadao&utm_medium=referral

    二:案例一:mode=1(active-backup):一个网卡处于活动状态 ,一个处于备份状态,所有流量都在主链路上处理。当活动网卡down掉时,启用备份的网卡。

    1:[root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 dhcp也可以设置成none 或 static (一下几个要一样)

    img

    MASTER=bond0 对应绑定名称bond0

    SLAVE=yes

    root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

    img

    MASTER=bond0 对应绑定名称bond0

    SLAVE=yes

    2:[root@lyt ~]# cd /etc/sysconfig/network-scripts/

    [root@lyt network-scripts]# cp ifcfg-eth0 ifcfg-bond0 #生成一个bond0的虚拟网卡

    [root@lyt network-scripts]# vim ifcfg-bond0 #编辑该网卡内容

    img

    3:[root@lyt network-scripts]# vim /etc/modprobe.conf #编辑该配置文件

    下图中1表示系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0;miimon=100表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线

    路;mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。

    img

    [root@linux ~]# vim /etc/modprobe.d/bonding.conf #此文件是自己创建,名字可以随便取

    alias bond0 bonding

    options bond0 miimon=100 mode=1

    options bond0 miimon=100 mode=1 primary=eth0 参数指定主网卡

    2.加载模块(重启系统后就不用手动再加载了)

    [root@test ~]# modprobe bonding

    4:[root@lyt network-scripts]# vim /etc/rc.local #编辑该开机脚本,将eth0和eth1网卡进行绑定

    img

    5:[root@lyt network-scripts]# init 6

    img

    [root@lyt ~]# ifconfig #查看网卡信息,在此处三块网卡的mac地址是一样的

    img

    [root@lyt ~]#vim /proc/net/bonding/bond0 #查看模式及网卡信息。实际mac地址是不一样的

    img

    将网卡eth0断掉后,系统使用备份网卡eth1,此时eth1处于活动状态

    img

    直接切换活动网卡,不出现丢包

    ifenslave -c bond0 eth1

    案例二:mode=0(round robin):所有链路处于负载均衡状态,这模式的特点增加了带宽,同时支持容错能力。

    1:在案例一的基础上,只需要修改/etc/modprobe.conf 配置文件:

    img

    2:vim /proc/net/bonding/bond0 #查看使用的模式及网卡信息,如图:

    img

    测试

    img

    注意:

    留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,

    那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:

    alias bond0 bonding

    options bonding mode=1 miimon=200

    alias bond1 bonding

    options bonding mode=1 miimon=200

    正确的设置方法有2种:

    第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:

    alias bond0 bonding

    alias bond1 bonding

    options bonding max_bonds=2 miimon=200 mode=1

    第二种,这种方式,不同的bond口的mode可以设成不一样:

    alias bond0 bonding

    options bond0 miimon=100 mode=1

    install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

    仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧!

    后记:简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义:

    miimon 监视网络链接的频度,单位是毫秒,我们设置的是200毫秒。

    max_bonds 配置的bond口个数

    mode bond模式,在一般的实际应用中,0和1用的比较多。

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    在CentOS 7 / RHEL 7中配置NIC(网络接口卡)绑定

    # 如果bonding模块没有加载到你的Linux机器上,那么使用下面的命令来加载。

    modprobe bonding

    步骤:1创建bond接口文件

    $ cat /etc/sysconfig/network-scripts/ifcfg-bond0

    DEVICE=bond0

    TYPE=Bond

    NAME=bond0

    BOOTPROTO=none

    ONBOOT=yes

    IPADDR=192.168.1.70

    NETMASK=255.255.255.0

    GATEWAY=192.168.1.1

    BONDING_MASTER=yes

    BONDING_OPTS="mode=6 miimon=100"

    步骤:2编辑NIC接口文件

    # ifcfg-enp0s3

    [root@openstack ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    TYPE=Ethernet

    BOOTPROTO=none

    DEVICE=enp0s3

    ONBOOT=yes

    MASTER=bond0

    SLAVE=yes

    # ifcfg-enp0s8

    [root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8

    TYPE=Ethernet

    BOOTPROTO=none

    DEVICE=enp0s8

    ONBOOT=yes

    MASTER=bond0

    SLAVE=yes

    步骤:3修改配置文件

    # vi /etc/modprobe.d/bonding.conf

    alias bond0 bonding

    步骤:4关闭和停止NetworkManager服务

    systemctl stop NetworkManager.service #停止NetworkManager服务

    systemctl disable NetworkManager.service #禁止开机启动NetworkManager服务

    重启网卡

    systemctl restart network

  • 相关阅读:
    js调用手机震动
    模拟器 Android Studio
    不修改代码,让调用方法 替换到另外一个方法
    springboot 获取请求 / 响应 接收和设置请求头 、请求码的方法
    mysql binlog 实现数据库同步先占位 有空研究下
    Airtest无线连接android手机
    springboot + spring cloudeureka
    更新一条数据多个字段的方法
    PyAutoGUI 操作C端 识别图片 点击(有空就看一下) 可以替代 Autoit
    playwright入门
  • 原文地址:https://www.cnblogs.com/fan-gx/p/15468687.html
Copyright © 2020-2023  润新知