linux bond 模式哪种模式好

 > 
linux中bonding配置步骤详解
    时间:
17:57    阅读:
    整理: 红客VIP
下面给各位引见一个linux中bonding配置步骤详解吧,由于本人关于这个bonding也不了解文章只是加以整理,希望对各位有协助。
现今简直各行各业外部都树立了本人的效劳器,由于效劳器的特殊位置,它的牢靠性、可用性及其 I/O 速度就显得十分的重要, 保持效劳器的高可用性和安全性是企业级IT 环境的重要目的,其中最重要的一点是效劳器网络衔接的高可用性,为完成这些要求,如今效劳器大都采用多网卡配置,系统大都采用如今十分盛行的 linux 作为效劳器任务的环境。如今带宽曾经不是效劳质量提高的瓶颈了,相对的网络设备和效劳器的处置才能就渐渐成为新的瓶颈。为提高效劳器的网络衔接的可用性和牢靠性,目前Sun公司的Trunking技术、3Com 公司的 DynamicAccess 技术、Cisco 公司的Etherchannel技术等等都在研讨将效劳器的多个网卡接口绑定在一同的链路聚集技术, 链路聚集技术将多个链路虚拟成一个逻辑链路进而提供了一种廉价、有效的办法扩展网络设备和效劳器的带宽,提高网络的灵敏性与可用性。
本文引见 linux 下的 bonding 技术,linux 2.4.x 的内核中采用了这种技术,应用 bonding 技术可以将多块网卡接口经过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备似乎是一个独自的以太网接口设备,深刻点讲就是多块网卡具有相反的 IP 地址而并行衔接聚分解一个逻辑链路任务。
二、bond的几种算法
Linux的bond支持7种任务形式,可以参考内核源码包文件: Documentation/networking/bonding.txt 。这里逐一引见。
形式1:mode=0 ,即:(balance-rr) Round-robin policy(平衡轮循策略)
特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1&.不断循环下去,直到最后一个传输终了),此形式提供负载平衡和容错才能;但是我们知道假设一个衔接或许会话的数据包从不同的接口收回的话,中途再经过不同的链路,在客户端很有能够会出现数据包无序抵达的效果,,而无序抵达的数据包需求重新要求被发送,这样网络的吞吐量就会下降。
形式2:mode=1,即: (active-backup) Active-backup policy(主-备份策略)
特点:只要一个设备处于活动形状,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是独一的,以避免switch(交流机)发作混乱。此形式只提供了容错才能;由此可见此算法的优点是可以提供高网络衔接的可用性,但是它的资源应用率较低,只要一个接口处于任务形状,在有 N 个网络接口的状况下,资源应用率为1/N
形式3:mode=2,即:(balance-xor) XOR policy(平衡策略)
特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目的MAC地址) % slave数量。其他的传输策略可以经过xmit_hash_policy选项指定,此形式提供负载平衡和容错才能。
形式4:mode=3,即:broadcast(播送策略)
特点:在每个slave接口上传输每个数据包,此形式提供了容错才能。
形式5:mode=4,即:(802.3ad) IEEE 802.3adDynamic link aggregation(IEEE 802.3ad 静态链接聚合)
特点:创立一个聚合组,它们共享异样的速率和双工设定。依据802.3ad标准将多个slave任务在同一个激活的聚合体下。
外出流量的slave选举是基于传输hash策略,该策略可以经过xmit_hash_policy选项从缺省的XOR策略改动到其他策略。需求留意的是,并不是一切的传输策略都是802.3ad顺应的,尤其思索到在802.3ad标准43.2.4章节提及的包乱序效果。不同的完成能够会有不同的顺应性。
必要条件:
条件1:ethtool支持获取每个slave的速率和双工设定
条件2:switch(交流机)支持IEEE 802.3ad Dynamic link aggregation
条件3:大少数switch(交流机)需求经过特定配置才能支持802.3ad形式
形式6:mode=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载平衡)
特点:不需求任何特别的switch(交流机)支持的通道bonding。在每个slave上依据以后的负载(依据速度计算)分配外出流量。假设正在接受数据的slave出缺点了,另一个slave接收失败的slave的MAC地址。
该形式的必要条件:ethtool支持获取每个slave的速率。
形式7:mode=6,即:(balance-alb) Adaptive load balancing(适配器顺应性负载平衡)
特点:该形式包含了balance-tlb形式,同时加上针对IPV4流量的接纳负载平衡(receive load balance, rlb),而且不需求任何switch(交流机)的支持。接纳负载平衡是经过ARP协商完成的。bonding驱动截获本机发送的ARP应对,并把源硬件地址改写为bond中某个slave的独一硬件地址,从而使得不同的对端运用不同的硬件地址停止通讯。
往常常常用到的是mode=0、mode=1、mode=4、mode=6算法。
三、bond配置
A、centos/redhat下的配置1
1、dist.conf配置
# vim /etc/modprobe.d/dist.conf
# 编缉该配置文件,内行尾添加如下内容
alias bond0 bonding
options bond0 miimon=100 mode=1
alias bond1 bonding
options bond1 miimon=100 mode=1
alias net-pf-10 off& //这行是封锁ipv6支持,也可以不要
阐明:miimon 是用来停止链路监测的。假设miimon=100,那么系统每100ms 监测一次链路衔接形状,假设有一条线路不通就转入另一条线路;mode 的值表示任务形式 。一些老的redhat/centos发行中已运用/etc/modprobe.conf配置文件。
2、网卡配置
# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond1
这里只列出了eth0网卡的配置。假定目前效劳器有四快网卡,eth0、eth1配置为bond1,eth2、eth3配置为bond0 。参照下面的配置,同理eth1网卡只需复制一份eth0的配置,修正下设备名;再复制两份为eth2、eth3,需求修正DEVICE和MASTER bond称号即可。
&3、bond 网卡配置
以bond1网卡为例:
# cat ifcfg-bond1
DEVICE=bond1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
USERCTL=no
IPADDR=10.211.89.202
NETMASK=255.255.255.224
#GATEWAY=10.211.89.193
注:centos/redhat下有network和NetworkManager两个效劳管理网卡,两个效劳同时开启在配置bond失效后会有报错。可以经过以下配置命令封锁NetworkManager效劳:
# /etc/init.d/NetworkManager stop
# chkconfig NetworkManager off
B、centos/redhat下的配置2
bond选择的配置也可以不配置在dist.conf文件,而直接配置在ifcfg-bond网卡接口中,详细如下:
# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.180
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
USERCTL=no
BONDING_OPTS=&mode=1 miimon=100&
C、sles(suse)下的配置
suse相似于redhat/centos,即支持写到modprobe配置文件,也支持在bond网卡配置文件中添加。以下是在bond网卡中的配置(留意和下面运用BONDING参数项略有不同):
# vim /etc/sysconfig/network/ifcfg-bond0
BOOTPROTO='static'
IPADDR='10.211.0.21'
NETMASK='255.255.255.0'
STARTMODE='onboot'
BONDING_MASTER='yes'
BONDING_MODULE_OPTS='mode=1 miimon=200 use_carrier=1'
BONDING_SLAVE0='eth1'
BONDING_SLAVE1='eth2'
四、删除bonding设备
如由于最后配置的bonding设备取名为bond0,然后改名为了bond1,形成了两个bonding设备的存在,如今需删除bond0 。先查看下网络设备:
# ls /sys/class/net
bond0& bond1& bonding_masters& eth0& eth1& lo
直接删除bond0,会提示无权限。
可以经过bonding_masters文件删除bond设备:
# cat bonding_masters
bond0& bond1
直接编辑bonding_masters文件会提示权限效果
# echo -bond0 & bonding_masters
echo后的 - 号表示删除设备, + 号表示添加设备
# cat bonding_masters
# ls /proc/net/bonding
可以看出bond网口曾经删除成功。
把eth0参加bond(bond0):
# echo +eth0 & /sys/class/net/bond0/bonding/slaves
从bond(bond0)里移除eth0:
# echo -eth0 & /sys/class/net/bond0/bonding/slaves
添加第一个bond,带有两个e1000接口,任务于active-backup形式,运用ARP监控,可以经过如下命令:
# modprobe e1000
# echo +bond1 & /sys/class/net/bonding_masters
# echo active-backup & /sys/class/net/bond1/bonding/mode
echo 1 & /sys/class/net/bond1/bonding/mode
# ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up
添加arp目的地址:
# echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target
# echo 2000 & /sys/class/net/bond1/bonding/arp_interval
# echo +eth2 & /sys/class/net/bond1/bonding/slaves
# echo +eth3 & /sys/class/net/bond1/bonding/slaves
查看bond接口信息:
# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mb
Duplex: full
Link Failure Count: 0
Permanent HW addr: a0:b3:cc:e5:97:68
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a0:b3:cc:e5:97:6c
Slave queue ID: 0
五、ifensalve 工具
ifensalve是一款linux下的负载平衡工具,运用ifensalve 配置bonding,如下:
# modprobe bonding mode=1 miimon=100
# ifconfig bond0 192.168.1.10 netmask 255.255.255.0
# ifenslave bond0 eth0& eth1
也可以运用ifensalve 工具从bond接口里删除一个物理接口,如:
# ifenslave -d bond0 eth0
异样可以运用ifensalve工具将一个物理接口作为active接口:
# ifenslave -c bond0 eth0
还可以运用ifenslave bond0 显示接口的详细信息。
【】【】【】【】【】下次自动登录
现在的位置:
& 综合 & 正文
【linux-bond】网卡绑定,其作用及好处
所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡
好处:增加带宽,还可以实现主备功能,
两块网卡可以使用同一个IP工作,不会因为其中一块坏了而导致机器不可用,避免单点故障
至于命令,直接在/etc/sysconfig/network中编辑文件
vi /etc/sysconfig/network/ifcfg-bond0
BOOTPROTO="static"
BROADCAST="192.168.1.255"
IPADDR="192.168.1.251"
NETMASK="255.255.255.0"
NETWORK="192.168.1.0"
REMOTE_IPADDR=""
STARTMODE="onboot"
BONDING_MASTER="yes"
BONDING_MODULE_OPTS="mode=1 miimon=200 use_carrier=1 primary=eth?"
BONDING_SLAVE0="eth0"
BONDING_SLAVE1="eth1"
最后2个为绑定的网卡的名称,此例是把eth0和eth1共同绑定成bond0
最后要注意的是,绑定做好后,把eth0,eth1的配置文件删掉(保险点改个名字丢那好了)
重启网卡后绑定成功,如果还有不明白的可以再提问
1、主备功能具体是什么意思?意义是?
2、命令, Vi编辑器中编辑的文件/etc/sysconfig/network/ifcfg-bond0
进去发现不存在此文件,请给出具体的配置文件的名字以及该文件的具体路径。
3、配置完毕之后,把eth0,eth1的配置文件删掉(保险点改个名字丢那好了)?具体的他们的配置文件在哪里,目录?或者改名字该如何修改啊?
4、绑定成功后,重启网卡是不是重启主机?命令是reboot吗?
1.下面有位哥们对主备解释过了,主备网卡不会因为其中一块坏了而导致机器不可用,避免单点故障。也就是冗余。
2. Vi编辑器中编辑的文件/etc/sysconfig/network/ifcfg-bond0
进去发现不存在此文件,本来就是不存在的,自己建立编辑的。
3.配置完毕之后,把eth0,eth1的配置文件删掉(保险点改个名字丢那好了)?具体的他们的配置文件在哪里,目录?或者改名字该如何修改啊?
eth0,eth1的配置文件也在/etc/sysconfig/network下
改名字用mv命令例如mv ifcfg-eth0 ifcfg-eth0.bak,这样这个配置文件就不生效了
4.绑定网卡后重启网卡就行了,不要重启主机
service network restart即可
&&&&推荐文章:
【上篇】【下篇】linux bond 多个IP_百度知道
linux bond 多个IP
1一样能在eth0和eth1之间浮动,谢谢,同10,两块网卡eth0.2.1.200,请问该怎么配,IP是10,我的redhat 6.0.200请教各位.0,我现在要在bond0上增加一个10.200.0, eth1绑成一个bond0.4
比如第一个网卡是0,任意一个IP地址.1而第二个是0。在同一段网络.2那么你还需要一个跑主业务的IP,需要一个确定的业务IP两者之间浮动
其他类似问题
为您推荐:
bond的相关知识
其他1条回答
0.200ip addr add 10.2&#47
不好意思需要永久有效,在/etc/sysconfig/network-scripts/ 里怎么配?是生成一个ifcfg-bond0:1吗
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分44阅读权限10帖子精华可用积分44 信誉积分136 专家积分0 在线时间66 小时注册时间最后登录
白手起家, 积分 44, 距离下一级还需 156 积分
帖子主题精华可用积分44 信誉积分136 专家积分0 在线时间66 小时注册时间最后登录
论坛徽章:0
做网卡的bond,配置文件如下:
root@IBM001 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.163.2
GATEWAY=192.168.163.254
TYPE=Ethernet
[root@IBM001 network-scripts]# cat ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:21:5E:11:6E:4A
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
MASTER=bond0
[root@IBM001 network-scripts]# cat ifcfg-eth2
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth2
BOOTPROTO=none
HWADDR=00:10:18:8F:FD:60
TYPE=Ethernet
MASTER=bond0
[root@IBM001 network-scripts]# cat /etc/modprobe.conf
alias eth0 bnx2
alias eth1 bnx2
alias eth2 bnx2
alias eth3 bnx2
alias scsi_hostadapter megaraid_sas
alias scsi_hostadapter1 ata_piix
alias scsi_hostadapter2 lpfc
alias usb0 usbnet
alias peth0 bnx2
alias peth1 bnx2
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
mode=1&&主备模式情况下,拔下网线,没有发生切换,把mode改成0,负载模式,把网线可以成功,为什么会出现这种情况呢?
请高手指点。。。。
[root@IBM001 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 200
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:21:5e:11:6e:4a
Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:10:18:8f:fd:60
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分429阅读权限20帖子精华可用积分429 信誉积分468 专家积分0 在线时间437 小时注册时间最后登录
稍有积蓄, 积分 429, 距离下一级还需 71 积分
帖子主题精华可用积分429 信誉积分468 专家积分0 在线时间437 小时注册时间最后登录
论坛徽章:0
请问这个你解决了么? 什么原因
UID空间积分0 积分478阅读权限20帖子精华可用积分478 信誉积分810 专家积分0 在线时间272 小时注册时间最后登录
稍有积蓄, 积分 478, 距离下一级还需 22 积分
帖子主题精华可用积分478 信誉积分810 专家积分0 在线时间272 小时注册时间最后登录
论坛徽章:0
是否虚拟机,uname -a 看看& &像Samba、Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,网卡bond是通过把多个物理网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,具体的功能取决于采用的哪种模式。一、bond的七种模式介绍:1、mode=0(balance-rr)(平衡抡循环策略)链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路。交换机需要配置聚合口,思科叫port channel。特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降2、mode=1(active-backup)(主-备份策略)这个是主备模式,只有一块网卡是active,另一块是备用的standby,所有流量都在active链路上处理,交换机配置的是捆绑的话将不能工作,因为交换机往两块网卡发包,有一半包是丢弃的。特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N3、mode=2(balance-xor)(平衡策略)表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy,需要交换机配置port channel)特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力4、mode=3(broadcast)(广播策略)表示所有包从所有网络接口发出,这个不均衡,只有冗余机制,但过于浪费资源。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。需要和交换机的聚合强制不协商方式配合。特点:在每个slave接口上传输每个数据包,此模式提供了容错能力5、mode=4(802.3ad)(IEEE 802.3ad 动态链接聚合)表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy).标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding负载均衡模式一样,任何连接都不能使用多于一个接口的带宽。特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的 是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应 性。必要条件:条件1:ethtool支持获取每个slave的速率和双工设定条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式6、mode=5(balance-tlb)(适配器传输负载均衡)是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。必要条件:ethtool支持获取每个slave的速率7、mode=6(balance-alb)(适配器适应性负载均衡)在5的tlb基础上增加了rlb(接收负载均衡receive load balance).不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的.特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。来自端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达 时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。使用ARP协商进行负载均衡的一个问题是:每次广播 ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave。这个问题可以通过给所有的对端发送更新 (ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新 激活时,接收流量也要重新分布。接收的负载被顺序地分布(round robin)在bond中最高速的slave上当某个链路被重新接上,或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个 client发起ARP应答。下面介绍的updelay参数必须被设置为某个大于等于switch(交换机)转发延时的值,从而保证发往对端的ARP应答 不会被switch(交换机)阻截。必要条件:条件1:ethtool支持获取每个slave的速率;条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个bond 中的slave都有一个唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址将会被新选出来的 curr_active_slave接管其实mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量。mode5和mode6不需要交换机端的设置,网卡能自动聚合。mode4需要支持802.3ad。mode0,mode2和mode3理论上需要静态聚合方式。但实测中mode0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。二、bond的配置实例1、首先要看是否支持bonding,大部分发行版都支持#&modinfo&bonding&|more
filename:&&&&&&&/lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/bonding/bonding.ko
author:&&&&&&&&&Thomas&Davis,&tadavis@lbl.gov&and&many&others
description:&&&&Ethernet&Channel&Bonding&Driver,&v3.6.0
version:&&&&&&&&3.6.0
license:&&&&&&&&GPL
srcversion:&&&&&353B1DCC57B
depends:&&&&&&&&8021q,ipv6
vermagic:&&&&&&&2.6.32-431.el6.x86_64&SMP&mod_unload&modversions如输出以上信息,则说明支持bonding,如果没有,说明内核不支持bonding,需要重新编译内核2、网卡配置文件两个物理网口分别是:eth0,eth1 绑定后的虚拟口是:bond0[root@jacken&~]#&cat&/etc/sysconfig/network-scripts/ifcfg-eth0&
DEVICE=eth0
HWADDR=EC:F4:BB:DC:4C:0C
TYPE=Ethernet
UUID=669f-4792-bd67-22c9d2c17acb
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
MASTER=bond0
[root@jacken&~]#&cat&/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
HWADDR=EC:F4:BB:DC:4C:0D
TYPE=Ethernet
UUID=1d2f30f4-b3f0-41a6-8c37-54f03115f7bd
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
MASTER=bond0
[root@jacken&~]#&cat&/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME='System&bond0'
TYPE=Ethernet
NM_CONTROLLED=no
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BONDING_OPTS='mode=1&miimon=100'
IPV6INIT=no开机自动加载模块到内核#echo&'alias&bond0&bonding'&&&&/etc/modprobe.d/dist.conf
#echo&'options&bonding&mode=0&miimon=200'&&&&/etc/modprobe.d/dist.conf
#echo&'ifenslave&bond0&eth0&eth1'&&&/etc/rc.localmiimon=100每100毫秒 (即0.1秒) 监测一次路连接状态,如果有一条线路不通就转入另一条线路; 的多网卡绑定功能使用的是内核中的"bonding"模块如果修改为其它模式,只需要在BONDING_OPTS中指定mode=Number即可。USERCTL=no --是否允许非root用户控制该设备查看bond0状态:可以看到调用的是哪几个物理网卡#cat /proc/net/bonding/bond0[root@compute05&~]#&&cat&/proc/net/bonding/bond0
Ethernet&Channel&Bonding&Driver:&v3.7.1&(April&27,&2011)
Bonding&Mode:&fault-tolerance&(active-backup)
Primary&Slave:&None
Currently&Active&Slave:&eth1
MII&Status:&up
MII&Polling&Interval&(ms):&100
Up&Delay&(ms):&0
Down&Delay&(ms):&0
Slave&Interface:&eth0
MII&Status:&up
Speed:&1000&Mbps
Duplex:&full
Link&Failure&Count:&0
Permanent&HW&addr:&ec:f4:bb:dc:4c:0c
Slave&queue&ID:&0
Slave&Interface:&eth1
MII&Status:&up
Speed:&1000&Mbps
Duplex:&full
Link&Failure&Count:&0
Permanent&HW&addr:&ec:f4:bb:dc:4c:0d
Slave&queue&ID:&0三、扩展上边是两个网卡(eth0、eth1)绑定成一个bond0,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,那么网口设置文件的设置方法和上面是一样的,只是/etc/modprobe.d/dist.conf文件就不能叠加了。正确的设置方法有两种:1、第一种alias&bond0&bonding
alias&bond1&bonding
options&bonding&max_bonds=2&miimon=200&mode=1这样所有的绑定只能使用一个mode了。2、第二种alias&bond0&bonding
options&bond0&miimon=100&mode=1
install&bond1&/sbin/modprobe&bonding&-o&bond1&miimon=100&mode=0
install&bond2&/sbin/modprobe&bonding&-o&bond2&miimon=100&mode=1
install&bond3&/sbin/modprobe&bonding&-o&bond3&miimon=100&mode=0这种方式不同的bond口可以设定为不同的mode,注意开机自动启动/etc/rc.d/rc.local文件的设置ifenslave&bond0&eth0&eth1
ifenslave&bond1&eth2&eth3
ifenslave&bond2&eth4&eth5
ifenslave&bond3&eth6&eth7本文出自 “一步步踏入Linux世界” 博客,请务必保留此出处http://linuxnote./0315

我要回帖

更多关于 linux bond 的文章

 

随机推荐