zoukankan      html  css  js  c++  java
  • Linux设置bond网卡绑定

    Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项 技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。

     
    1.# vim /etc/modprobe.conf
    编辑 /etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0
    alias bond0 bonding
     
    options bond0 miimon=100 mode=1
    说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。
    mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
    mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.

     

     
    modprobe bonding 加载bonding模块
     
     
    2.分别编辑 ifcfg-eth0 ifcfg-eth1
     
    DEVICE=eth0
    MASTER=bond0
    SLAVE=yes
    HWADDR=00:0C:29:86:AD:80
    ONBOOT=yes
     
    DEVICE=eth1
    MASTER=bond0
    SLAVE=yes
    ONBOOT=yes
    HWADDR=00:0c:29:86:ad:8a
     
    3.vim ifcfg-bond0
     
    DEVICE=bond0
    BOOTPROTO=static
    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    ONBOOT=yes
    BONDING_OPTS="mode=1 miimon=100 primary=eth0"
     
     

    BONDING_OPTS参数解释

    此参数用于指定网卡绑定时的属性,以下是对常用参数进行的解释:

    miimon参数:指定网卡故障时的切换时间间隔以ms为单位。

    primary参数:指定默认的主网卡设备。

    mode参数:

    0-轮询模式,所绑定的网卡会针对访问以轮询算法进行平分。

    1-高可用模式,运行时只使用一个网卡,其余网卡作为备份,在负载不超过单块网卡带宽或压力时建议使用。

    2-基于HASH算法的负载均衡模式,网卡的分流按照xmit_hash_policy的TCP协议层设置来进行HASH计算分流,使各种不同处理来源的访问都尽量在同一个网卡上进行处理。

    3-广播模式,所有被绑定的网卡都将得到相同的数据,一般用于十分特殊的网络需求,如需要对两个互相没有连接的交换机发送相同的数据。

    4-802.3ab负载均衡模式,要求交换机也支持802.3ab模式,理论上服务器及交换机都支持此模式时,网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps)

    5-适配器输出负载均衡模式,输出的数据会通过所有被绑定的网卡输出,接收数据时则只选定其中一块网卡。如果正在用于接收数据的网卡发生故障,则由其他网卡接管,要求所用的网卡及网卡驱动可通过ethtool命令得到speed信息。

    6-适配器输入/输出负载均衡模式,在"模式5"的基础上,在接收数据的同时实现负载均衡,除要求ethtool命令可得到speed信息外,还要求支持对网卡MAC地址的动态修改功能。

    xmit_hash_policy参数(此参数对mode参数中的2、4模式有影响):

    layer1-通过MAC地址进行HASH计算。

    计算公式:(MACsrc⊕MACdest)% Nslave

    layer3+4-通过TCP及UDP端口及其IP地址进行HASH计算。

    计算公式:((portsrc⊕portdest)⊕(IPsrc⊕IPdest)) % Nslave

    注意:

    mode参数中的0、2、3、4模式要求交换机支持"ports group"功能并能进行相应的设置,例如在Cisco中要将所连接的端口设为"trunk group"。

    选择绑定模式的建议

    如果系统流量不超过单个网卡的带宽,请不要选择使用mode 1之外的模式,因为负载均衡需要对流量进行计算,这对系统性能会有所损耗。

    建议mode 5、mode 6只在交换机不支持"ports group"的情况下选用。

    如果交换机及网卡都确认支持802.3ab,则实现负载均衡时尽量使用mode 4以提高系统性能

  • 相关阅读:
    python之字典方法
    python之字符串方法
    python strip()方法使用
    Airtest自动化测试工具介绍
    selenium 环境配置
    一个自定义线程池的小Demo
    简单工厂模式
    BootStrap入门_创建第一个例子
    MongoDB的索引
    MongoDB的查询
  • 原文地址:https://www.cnblogs.com/niezhongle/p/11077045.html
Copyright © 2011-2022 走看看