redhat 双网卡绑定

redhat 双网卡绑定

当系统中有多个网卡需要进行设置时,建议将网卡的MAC地址与ethX文件中的HWADDR一一对应,否则系统重启后网卡的eth号很可能会发生改变,在设置了网卡绑定的生产系统中,这是非常危险的。

1、配置驱动模块

  修改文件/etc/modprobe.conf,找到:

       alias eth0 8139cp

       alias eth1 8139cp

注意:

     8139cp为网卡型号。

  在此内容后加入:

    ######## Bonding ##########

      alias bond0 bonding

      options bonding max_bonds=1

    ######## Bonding ##########

    alias bond0 bonding

       options bond0 miimon=100 mode=1

2、建立bonding网卡配置

    新建文件/etc/sysconfig/network-scripts/ifcfg-bond0,输入以下内容:

          DEVICE=bond0

          ONBOOT=yes

          BOOTPROTO=static

          IPADDR=192.168.100.21

          NETMASK=255.255.255.0

          USERCTL=no

          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.3ad负载均衡模式,要求交换机也支持802.3ad模式,理论上服务器及交换机都支持此模式时,网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps)

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

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

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

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

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

     layer2+3 -通过mac和ip地址进行HASH计算

     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以提高系统性能。

3、修改被绑定网卡的配置

   修改/etc/sysconfig/network-scripts/ifcfg-eth0为:

          # Realtek Semiconductor Co., Ltd. RTL-8139/<?xml:namespace prefix = st1 />/+

          DEVICE=eth0

          MASTER=bond0

          SLAVE=yes

          HWADDR=54:52:00:35:f9:a0

          ONBOOT=yes

4、修改/etc/sysconfig/network-scripts/ifcfg-eth1为:

           # Realtek Semiconductor Co., Ltd. RTL-8139//+

           DEVICE=eth1

           MASTER=bond0

           SLAVE=yes

            HWADDR=54:52:00::37:ce

           ONBOOT=yes

  启动网卡绑定设备

5、导入bonding驱动:

         [root@localhost ~]# modprobe -i bonding max_bonds=1

         bonding: Warning: either miimon or arp_interval

         and arp_ip_target module parameters must be
          specified, otherwise bonding will not detect
          link failures! see bonding.txt for details.

此时系统会发出一个警告,意思是bonding驱动要求提供miimon参数或arp_inerval参数与arp_ip_target参数的组合,否则系统将无法检测出网卡设备连接是否失效。由于miimon已经在/etc/sysconfig/network-scripts/ifcfg-bond0中设定,所以可以不用理会此警告。

6、重启网络

        [root@localhost ~]# /etc/init.d/network restart

           bonding: Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect

link failures! see bonding.txt for details.

        [root@localhost ~]# cat network

          Shutting down interface eth0                    

          [   OK   ]

          Shutting down interface eth1                      

          [   OK   ]

         Shutting down loopback interface:                  

         [   OK   ]

          Bringing up loopback interface:                    

          [   OK   ]

          Bringing up interface bond0:                        

          [   OK   ]    

    网络重启完毕,此时由于/etc/sysconfig/network-scripts/ifcfg-bond0中的设置,miimon参数已经生效。

     以上"导入bonding驱动"及"重启网络"的操作也可以通过重新启动操作系统来实现,但对于一些正在生产环境中运行的系统,一般要求进行系统维护时不影响系统的正常运作。通过以上两个操作可以将系统的"总失效时间"降到最低。

文献出自: