Linux网卡绑定(bonding)配置

 

 

Linux网卡绑定(bonding)配置

 

1 网卡绑定(Bonding)概述... 4

2 Linux下bonding配置... 6

2.1 建立bonding网卡.. 6

2.2 配置开机自动加载bonding驱动.. 7

2.3 修改被绑定网卡配置.. 7

2.4 启动bonding. 7

2.5 验证bonding是否配置成功.. 8

3 修改bonding配置... 9

3.1 修改bonding配置后立即生效.. 9

 

 

 

 

 

 

  1. 网卡绑定(Bonding)概述
        •  

网卡绑定,也称作网卡捆绑。就是将两个或者更多的物理网卡绑定成一个虚拟网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗的讲就是说这几块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路,以达到提供负载均衡或者冗余、增加带宽的目的。

这项技术在sun和cisico中早已存在,被称为trinking(链路聚集)和etherchannel(链路捆绑)技术,在linux的2.4.X及其以上的内核中也采用了这种技术,被称为bonding。

        1. 的原理

什么是bonding需要从网卡的混杂(promise)模式说起。在正常情况下,网卡只接受目的硬件地址(MAC Address)是自身MAC的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种称为混杂模式,可以接受网络上所有的帧,比如说tcpdump,就是运行在这个模式下。Bonding也是运行在这个模式下,而且修改了驱动程序中的MAC地址,将两块网卡的MAC地址改成相同,可以接受待定MAC的数据帧。送给bond驱动程序处理。

        1. 工作模式

Bonding通过修改配置文件可以工作在以下七种工作模式:

1.  mode=0  round-robin

2.  mode=1  active-backup

3.  mode=2 load balancing (xor)

4.  mode=3  fault-tolerance (broadcast)

5.  mode=4  lacp

6.  mode=5  transmit load balancing

7.  mode=6  adaptive load balancing

分别对应以下七种策略:

(1)轮询策略(Round-robin policy),模式代号是0。该策略是按照设备顺序依次传输数据包,直到最后一个设备。这种模式提供负载均衡和容错能力。

(2)活动备份策略(Active-backup policy),模式代号是1。该策略只有一个设备处理数据,当它宕机的时候就会由备份代替,仅提供容错能力。

(3)异或策略(XOR policy),模式代号是2。该策略是根据MAC地址异或运算的结果来选择传输设备,提供负载均衡和容错能力。

(4)广播策略(Broadcast policy),模式代号是3。该策略通过全部设备来传输所有数据,提供容错能力。

(5)IEEE 802.3ad 动态链接聚合(IEEE 802.3ad Dynamic link aggregation),模式代号是4。该策略通过创建聚合组来共享相同的传输速度,需要交换机也支持 802.3ad 模式,提供容错能力。该模式下,网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps)。

(6)适配器传输负载均衡(Adaptive transmit load balancing),模式代号是5。该策略是根据当前的负载把发出的数据分给每一个设备,由当前使用的设备处理收到的数据,如果当前正用于接收数据的网卡发生故障,则由其它网卡接管,要求所用的网卡及网卡驱动可通过ethtool命令得到speed信息。本策略的通道联合不需要专用的交换机支持,提供负载均衡和容错能力。

(7)适配器负载均衡(Adaptive load balancing),模式代号是6。该策略在IPV4情况下包含适配器传输负载均衡策略,由ARP协商完成接收的负载,通道联合驱动程序截获ARP在本地系统发送出的请求,用其中一个设备的硬件地址覆盖从属设备的原地址。即在策略6的基础之上,在接收数据的同时实现负载均衡,除要求ethtool命令可得到speed信息外,还要求支持对网卡MAC地址的动态修改功能。

注意:

Mode参数中的0、2、3、4模式要求交换机支持“ports group”功能并能进行相应的设置,例如在cisco中要将所连接的端口设为“port-channel”。

 

        •  

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

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

由于我们项目上的交换机型号不可控,且可能会更换,所以我们项目中设备绑定一般都使用mode5。

 

 

  1. Linux下bonding配置
    1.  建立bonding网卡

新建bonding网卡配置文件ifcfg-bond0

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

按如下配置:(只需将其中红色标注的IP改为现场需要的IP地址即可,蓝色部分可不要)。

#物理设备名称

DEVICE=bond0

#启动时是否激活

ONBOOT=yes

#是否启动协议,可以是none(无须启动协议)、bootp(使用bootp协议)、dhcp(使用dhcp协议)

BOOTPROTO=none

#IP地址

IPADDR=192.168.100.21

#网络掩码

NETMASK=255.255.255.0

#是否允许非root用户控制该设备

USERCTL=no

#网卡的类型

TYPE=Ethernet

#是否在该网卡启用IPV6的功能

IPV6INIT=no

#是否运行网卡在启动时向DHCP服务器查询DNS信息,并自动覆盖/etc/resolv.conf配置文件

PEERDNS=yes

----结束

    1.  配置开机自动加载bonding驱动

修改内核模块开机自动加载文件/etc/modprobe.conf(根据linux内核版本可能会存在不同,旧的版本可能是modules.conf),以使内核模块开机自动加载bonding驱动程序。

#vi /etc/modprobe.conf

在文件最后加上:

alias bond0 bonding

options bond0 miimon=100 mode=5

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

#mode参数:bonding模式

----结束

    1.  修改被绑定网卡配置

修改所有被绑定了的网卡的配置文件(以eth2为例)

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

按如下配置:(其中红色标注的MAC地址为现场实际的MAC地址,蓝色部分可不要)。

#bondingbond0,使该网络适配器成为bond0的附属设备

DEVICE=eth2

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

TYPE=Ethernet

#MAC地址最好不用删除,但要注释掉

#HWADDR=00:1B:21:64:32:24

    1.  启动bonding

启动bond0

Ifup bond0        #启动bond0                                            

                            

    1.  验证bonding是否配置成功

输入查看命令ifconfig,如果结果如下(注意红色部分),则表示网卡eth2eth3都成功bondingbond0上了:

bond0     Link encap:Ethernet  HWaddr 00:15:17:C4:8B:E0 

          inet addr:192.168.110.82  Bcast:192.168.110.255  Mask:255.255.255.0

          inet6 addr: fe80::215:17ff:fec4:8be0/64 Scope:Link

          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

          RX packets:129687 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2534730 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:11516581 (10.9 MiB)  TX bytes:3449545971 (3.2 GiB)

 

eth0      Link encap:Ethernet  HWaddr 00:15:17:C1:FE:F8 

          inet addr:172.30.70.82  Bcast:172.30.70.255  Mask:255.255.255.0

          inet6 addr: fe80::215:17ff:fec1:fef8/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:29570139 errors:0 dropped:0 overruns:0 frame:0

          TX packets:56858999 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2050166357 (1.9 GiB)  TX bytes:991407349 (945.4 MiB)

          Base address:0x6020 Memory:b9020000-b9040000

 

eth1      Link encap:Ethernet  HWaddr 00:15:17:C1:FE:F9 

          inet addr:172.30.66.48  Bcast:172.30.66.255  Mask:255.255.255.0

          inet6 addr: fe80::215:17ff:fec1:fef9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:80635258 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2221398 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1238154429 (1.1 GiB)  TX bytes:3024749035 (2.8 GiB)

          Base address:0x6000 Memory:b9000000-b9020000

 

eth2      Link encap:Ethernet  HWaddr 00:15:17:C4:8B:E0 

          inet6 addr: fe80::215:17ff:fec4:8be0/64 Scope:Link

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:5574 errors:0 dropped:0 overruns:0 frame:0

          TX packets:634713 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:410305 (400.6 KiB)  TX bytes:862488772 (822.5 MiB)

          Base address:0x5020 Memory:b9960000-b9980000

 

eth3      Link encap:Ethernet  HWaddr 00:15:17:C4:8B:E0 

          inet6 addr: fe80::215:17ff:fec4:8be0/64 Scope:Link

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:2016 errors:0 dropped:0 overruns:0 frame:0

          TX packets:633328 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:167005 (163.0 KiB)  TX bytes:862342651 (822.3 MiB)

          Base address:0x5000 Memory:b9920000-b9940000

 
  1. Redhat 5.8 配置多模式网口绑定
    1.  建立bonding网卡

以配置mode1和mode4两种模式同时工作为例。

创建两个bonding网卡配置文件ifcfg-bond0ifcfg-bond1

ifcfg-bond0mode1ifcfg-bond1mode4

新建bonding网卡配置文件ifcfg-bond0

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

按如下配置:(只需将其中红色标注的IP改为现场需要的IP地址即可,蓝色部分可不要)。

#物理设备名称

DEVICE=bond0

#启动时是否激活

ONBOOT=yes

#是否启动协议,可以是none(无须启动协议)、bootp(使用bootp协议)、dhcp(使用dhcp协议)、static(静态)

BOOTPROTO=static

#IP地址

IPADDR=192.168.100.21

#网络掩码

NETMASK=255.255.255.0

#网关

GATEWAY=192.168.100.254

#是否允许非root用户控制该设备

USERCTL=no

#注明是主设备

MASTER=yes

#绑定模式选择,moed1

BONDING_OPTS="mode=1 miimon=100"

新建bonding网卡配置文件ifcfg-bond1bond0基本相同,BONDING_OPTS修改为mode=4

--END

 

    1.  修改modprobe配置以支持多个模式的网口绑定

修改内核模块开机自动加载文件/etc/modprobe.conf

#vi /etc/modprobe.conf

在文件最后加上:

alias bond0 bonding

alias bond1 bonding

 

    1.  修改被绑定网卡配置

修改所有被绑定的网卡的配置文件(以eth0为例),预先确定好对应相应两种模式的网卡接口,各自修改好对应的主bond网卡。以eth0绑定到bond0为例。

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

按如下配置:

#bondingbond0,使该网络适配器成为bond0的附属设备

DEVICE=eth0

BOOTPROTO=none

ONBOOT=no

MASTER=bond0

SLAVE=yes

USERCTL=no

#MAC地址最好不用删除,但要注释掉

#HWADDR=00:1B:21:64:32:24

照例配置好所有的网卡。

    1.  启动bonding

加载bonding驱动

#rmmod bonding     

#modprobe bonding  

先启动bond0

Ifup bond0        #启动bond0 

再启动bond1

Ifup bond1        #启动bond1 

如果启动失败,请重启后再试。

 

 
  1. Redhat 6.2 配置多模式网口绑定
    1. 建立bonding网卡

Redhat 6.2配置多模式绑定较5.8版本更为简单,只需要修改网卡配置文件本身的设定即可,

以配置mode1和mode4两种模式同时工作为例。

创建两个bonding网卡配置文件ifcfg-bond0ifcfg-bond1

ifcfg-bond0mode1ifcfg-bond1mode4

新建bonding网卡配置文件ifcfg-bond0

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

按如下配置:(只需将其中红色标注的IP改为现场需要的IP地址即可,蓝色部分可不要)。

#物理设备名称

DEVICE=bond0

#启动时是否激活

ONBOOT=yes

#是否启动协议,可以是none(无须启动协议)、bootp(使用bootp协议)、dhcp(使用dhcp协议)、static(静态)

BOOTPROTO=static

#IP地址

IPADDR=192.168.100.21

#网络掩码

NETMASK=255.255.255.0

#网关

GATEWAY=192.168.100.254

#是否允许非root用户控制该设备

USERCTL=no

#注明是主设备

MASTER=yes

#绑定模式选择,moed1

BONDING_OPTS="mode=1 miimon=100"

新建bonding网卡配置文件ifcfg-bond1bond0基本相同,BONDING_OPTS修改为mode=4

--END

 

    1.  修改被绑定网卡配置

修改所有被绑定的网卡的配置文件(以eth0为例),预先确定好对应相应两种模式的网卡接口,各自修改好对应的主bond网卡。以eth0绑定到bond0为例。

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

按如下配置:

#bondingbond0,使该网络适配器成为bond0的附属设备

DEVICE=eth0

BOOTPROTO=none

ONBOOT=no

MASTER=bond0

SLAVE=yes

USERCTL=no

#MAC地址最好不用删除,但要注释掉

#HWADDR=00:1B:21:64:32:24

照例配置好所有的网卡。

    1.  启动bonding

加载bonding驱动

#rmmod bonding     

#modprobe bonding  

先启动bond0

Ifup bond0        #启动bond0 

再启动bond1

Ifup bond1        #启动bond1 

如果启动失败,请重启后再试。

 

 

  1. 修改bonding配置
    1.  修改bonding配置后立即生效

按照第2章重新进行配置,然后执行以下命令使修改立即生效:

#service network stop                                                    

#rmmod bonding                                                         

#modprobe bonding                                                      

#service network restart                                                   

如果是通过网络远程ssh上去的就需要将以下命令编写到shell脚本中执行

vi rebonding.sh                                                             

输入以下内容保存:

#bondingbond0,使该网络适配器成为bond0的附属设备

#!/bin/sh

service network stop

sleep 2

rmmod bonding

sleep 2

modprobe bonding

sleep 2

service network restart

然后执行

#sh rebonding.sh                                                           

 

  1. 交换机配置
    1.  

Linux服务器端口聚合的七种模式,mode 0、mode1、mode 2、mode 3、mode 4、mode 5、mode 6,其中只有mode 2与mode4需要配置交换机,其它模式无需配置。交换机聚合模式有两种:手工负载分担模式(适合于mode 2)和LACP模式(适合于mode4)。下面分别介绍思科和华为交换机对应的配置

      1. 华为交换机聚合配置

1、聚合配置:手工负载分担模式,适合于MODE 2

system-view                                   //进入配置模式

interface gigabitethernet 0/0/1   //进入端口,删除端口配置,此端口才能加入到聚合里

display this    //命令显示端口是否配置,把配置前面加上 undo, 删除配置后才能加入到聚合组

          比如

display this

   port link-type access

   port default vlan 20

  //则使用如下命令删除配置

undo default vlan

undo link-type

quit

interface eth-trunk 2                       //创建聚合组

mode manual load-balance                  //将聚合组工作模式设置为手动负载分担,缺省为此模式,可不配置

port link-type access                       //配置端口模式为access,此模式的端口可用于接服务器,

trunkport gigabitethernet 0/0/1 to 0/0/3     //将万兆口0/0/1 to 0/0/3加入到聚合组

 

以下为查看命令

display trunkmembership eth-trunk 2     //查看Eth-Trunk 的成员接口

display eth-trunk 2                    //查看Eth-Trunk 的手工负载分担模式。

2、LACP模式,适合于MODE 4

system-view                                   //进入配置模式

interface gigabitethernet 0/0/4              //进入端口,删除端口配置,此端口才能加入到聚合里

display this            //命令显示端口是否配置,把配置前面加上 undo, 删除配置后才能加入到聚合组

          比如

 

display this

   port link-type access

   port default vlan 20

  //则使用如下命令删除配置

undo default vlan

undo link-type

quit

interface eth-trunk 3            //创建聚合组

bpdu enable          

mode lacp-static

port link-type access                       //配置端口模式为access,此模式的端口可用于接服务器,

trunkport gigabitethernet 0/0/1 to 0/0/3     //将万兆口0/0/1 to 0/0/3加入到聚合组

以下为查看命令

display lacp statistics eth-trunk 3       //查看LACP 收发报文统计信息

display trunkmembership eth-trunk 3     //查看Eth-Trunk 的成员接口

display eth-trunk 3                    //查看Eth-Trunk 的手工负载分担模式。

      1. 思科交换机聚合配置

1、手工负载分担模式,适合于MODE 2

enable                      //进入系统模式

configure terminal        //进入配置模式

channel-group 1 mode on    //创建聚合组channel-group 1

interface range gigabitethernet2/0/1 -4   //选择2/0/1到2/0/4这4个端口

switchport mode access           //配置接口封装类型为access

switchport access vlan 10                 //为接口配置VLAN

channel-group 1 mode on                    //将接口加入到channel-group 1中

exit

copy runnint-config startup-config                         //保存配置

 

2、LACP模式,适合于MODE 4

enable                      //进入系统模式

configure terminal        //进入配置模式

channel-group 1 mode active    //创建聚合组channel-group 1

interface range gigabitethernet2/0/1 -4   //选择2/0/1到2/0/4这4个端口

switchport mode access           //配置接口封装类型为access

switchport access vlan 10                 //为接口配置VLAN

channel-group 1 mode active                    //将接口加入到channel-group 1中

exit

copy runnint-config startup-config                         //保存配置

 

注:由于交换机软件版本不同,交换机预配置不同,所以配置命令会有一些细微的变化,此时需求参考交换机的对应配置手册。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页