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

网卡绑定,也称作网卡捆绑。就是将两个或者更多的物理网卡绑定成一个虚拟网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗的讲就是说这几块网卡具有相同的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. 建立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地址,蓝色部分可不要)。

#bonding到bond0,使该网络适配器成为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,如果结果如下(注意红色部分),则表示网卡eth2和eth3都成功bonding到bond0上了:

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

按如下配置:

#bonding到bond0,使该网络适配器成为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

按如下配置:

#bonding到bond0,使该网络适配器成为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                                                             

输入以下内容保存:

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

#!/bin/sh

service network stop

sleep 2

rmmod bonding

sleep 2

modprobe bonding

sleep 2

service network restart

然后执行

#sh rebonding.sh                                                           

  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                         //保存配置

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

Linux网卡绑定(bonding)配置相关推荐

  1. Gnu/Linux网卡绑定bonding

    系统:    CentOS或RHEL5系列系统 配置文件:/etc/modprobe.conf ---------------------------------------- 系统:    Cent ...

  2. linux 双网卡绑定(bonding)实现负载均衡或故障转移

    linux 双网卡绑定(bonding)实现负载均衡或故障转移 我们在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是 ...

  3. Linux系统多网卡绑定各配置模式详解

    Linux系统多网卡绑定各配置模式详解 1. 配置多网卡bond 1.1. mode=0 模式 1.2. mode=1 模式 1.2.1. 关闭NetworkManager服务 1.2.2. 网卡配置 ...

  4. 【干货】Linux 网卡绑定的相关知识和技巧

    原理知识 Linux 多网卡的7种bond模式原理 Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用 ...

  5. linux 网卡绑定updelay,Linux 配置双网卡绑定实现负载均衡

    Linux 配置双网卡绑定,实现负载均衡 1.Bond的工作模式 Linux bonding驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余. bonding ...

  6. 红旗Linux网卡绑定,Linux bonding 之balance-alb 原理介绍及其实现

    要求: 首先要安装bonding driver 和 ifenslave.bonding driver 是实现网卡绑定的软件基础,它在很多系统中都作为模块而加载.ifenslave 是实现网卡绑定的一个 ...

  7. Linux bond6配置文件,Linux服务器网卡绑定bond配置(示例代码)

    原文 网卡绑定是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡.bond在实际网络应用部署中是一种常用的技术 下面介绍如何在CentOS服务器上实现网卡绑定 1.服务器ifc ...

  8. linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx

    Linux网卡顺序变更导致网卡绑定出错及解决办法测试 2012/2/21 描述:linux中新安装网卡会导致原网卡识别顺序紊乱,影响网络及网卡绑定正常工作,此时可以更改/etc/sysconfig/n ...

  9. linux 网卡绑定解绑,网卡绑定开机绑定,关机解绑

    Linux下实现双网卡负载均衡系统环境:RHEL5根据甘肃兰州实际情况的双网卡绑定方案, 方案思路:开机绑定,关机解绑 一.建立虚拟网络接口ifcfg-bond0文件[root@yangwenjun ...

最新文章

  1. java创建线程的两种方法区别
  2. k8s系列---部署集群
  3. [译]5步实现Silverlight中的Command
  4. java uuid 线程安全_java – 在多线程应用程序中生成相同的UUID
  5. 在日常维护管理中对MySQL 日志的需求
  6. vue 编辑弹框,编辑页面,列表数据也会跟着变
  7. 【论文复现】使用fastText进行文本分类
  8. u检验中的查u界值表_延边双壁波纹管pvc-u
  9. 优化理论03----优化导论和无约束问题的最优条件、优化问题的类型、局部、全局和严格优化、梯度和Hessian 黑塞矩阵和方向导数、无约束问题的最优条件
  10. 福利来了,axure8.1注册码
  11. sublime番外篇:入门者食用指北
  12. android逻辑分辨率,移动端web页面知识小结之手机分辨率与手机像素
  13. 集合切分:List集合按照数量切分成若干个集合
  14. Git使用中的一些常用小技巧
  15. 数据透视表如何做累计求和
  16. java 同步和异步
  17. python语言的标准库有哪些,python标准库函数有哪些
  18. spec2006 测试
  19. 谷歌翻译用不了修复方法记录
  20. 第三个python小功能完成后记录——二、必要模块函数记忆

热门文章

  1. 利用oc门或od门实现线与_oc门_od门_ttl三态门电路特点总汇
  2. mysql脚本文件捕捉错误_MySQL脚本执行错误
  3. QtPosSystem Qt零售终端源码下载 Qt-UI
  4. c语言endif的用法,#ifndef...#endif 的用法
  5. 无限火力跳跳机器人_《英雄联盟》无限火力机器人怎么玩 无限火力机器人套路分享...
  6. 找不到MSVCR110.dll wampserver
  7. C#练习题答案: 几何级数【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  8. 第一次出差:有点迷糊,出现了很多问题,在此做一下备忘录
  9. C# 加密算法RC4
  10. RC4 调用Java库加解密