Bonding工作模式
linux bond mode=4工作原理
Linux bonding 是一种将多个网络接口绑定为一个逻辑接口的技术,以提高网络的可靠性、性能和带宽。
其中,mode=4 是IEEE 802.3ad 动态链接聚合(LACP)模式。
在mode=4 下,bonding 驱动会与交换机进行协商,以确定哪些slave 接口可以用于聚合,并建立一个聚合组。
聚合组中的每个slave 接口都会被配置为相同的速率和双工模式,并且会启用LACP 协议。
LACP 协议会在聚合组的每个slave 接口之间协商一个活动接口和一个或多个备份接口。
活动接口用于传输数据,而备份接口则处于待命状态,以便在活动接口出现故障时接替其工作。
当数据包到达聚合组时,bonding 驱动会根据其MAC 地址和聚合组中的活动接口列表,选择一个活动接口来传输该数据包。
如果活动接口出现故障,bonding 驱动会自动切换到备份接口,以确保数据的连续传输。
因此,mode=4 的工作原理主要是通过LACP 协议与交换机进行协商,建立一个聚合组,并在其中选择一个活动接口和一个或多个备份接口来传输数据。
这样可以提高网络的可靠性、性能和带宽,同时还可以实现负载均衡和容错。
Linux网卡Bonding配置
Linux⽹卡Bonding配置⼀、bonding技术简介 bonding(绑定)是⼀种将n个物理⽹卡在系统内部抽象(绑定)成⼀个逻辑⽹卡的技术,能够提升⽹络吞吐量、实现⽹络冗余、负载等功能,有很多优势。
Linux 系统下⽀持⽹络 Bonding,也叫 channel Bonding,它允许你将 2 个或者更多的⽹卡绑定到⼀起,成为⼀个新的逻辑⽹卡,从⽽实现故障切换或者负载均衡的功能,具体情况要取决于 mode 参数的具体配置。
Linux系统bonding技术是内核层⾯实现的,它是⼀个内核模块(驱动)。
使⽤它需要系统有这个模块, 我们可以modinfo命令查看下这个模块的信息, ⼀般来说都⽀持.modinfo bondingbonding的七种⼯作模式bonding技术提供了七种⼯作模式,在使⽤的时候需要指定⼀种,每种有各⾃的优缺点.balance-rr (mode=0) 默认, 有⾼可⽤ (容错) 和负载均衡的功能, 需要交换机的配置,每块⽹卡轮询发包 (流量分发⽐较均衡).active-backup (mode=1) 只有⾼可⽤ (容错) 功能, 不需要交换机配置, 这种模式只有⼀块⽹卡⼯作, 对外只有⼀个mac地址。
缺点是端⼝利⽤率⽐较低balance-xor (mode=2) 不常⽤broadcast (mode=3) 不常⽤802.3ad (mode=4) IEEE 802.3ad 动态链路聚合,需要交换机配置,没⽤过balance-tlb (mode=5) 不常⽤balance-alb (mode=6) 有⾼可⽤ ( 容错 )和负载均衡的功能,不需要交换机配置 (流量分发到每个接⼝不是特别均衡)详细说明请参考⽹络上其他资料,了解每种模式的特点根据⾃⼰的选择就⾏, ⼀般会⽤到0、1、4、6这⼏种模式。
⼆、RHEL6 下的 Boding 配置: 在所有的 RHEL 版本下,⽬前都不⽀持在 NetworkManager 服务协作下实现 Bonding 配置.所以要么直接关闭 NetworkManager 服务,并取消其开机启动,要么在所有涉及 Bonding 的⽹卡配置⽂件中(包含ethx 或者 bondY),显式地添加⼀⾏:NM_CONTROLLED=no 要配置⽹卡 Bonding,你必须在/etc/sysconfig/network-scripts/⽬录下建⽴逻辑⽹卡的配置⽂件 ifcfg-bondX,⼀般 X 从 0 开始,依次增加.具体的⽂件内容根据参与 Bonding 的⽹卡类型的不同⼜有所差别,以最最常见的 Ethernet 为例,配置⽂件⼤致是这样的:DEVICE=bond0IPADDR=192.168.0.1NETMASK=255.255.255.0ONBOOT=yesBOOTPROTO=noneUSERCTL=noBONDING_OPTS="bonding parameters separated by spaces"NM_CONTROLLED=no BONDING_OPTS 这⼀⾏填写你需要的 Bonding 模式,⽐如 BONDING_OPTS="miimon=100 mode=1" ,下⾯也会介绍⼏种常见的配置⽅式和它代表的意义,这⾥暂时不展开说明.为了⽅便称呼,我们把Bongding 后的逻辑⽹卡 bondX 称为主⽹卡(Master),参与 Bonding 的物理⽹卡 ethY 称为⼦⽹卡(Slave). 主⽹卡配置⽂件创建完毕以后,⼦⽹卡的配置⽂件也需要做相应的改变,主要是添加 MASTER=和SLAVE=这两项参数,我们假设 2 张⼦⽹卡为 eth0 和 eth1,那么他们的配置⽂件⼤致的样⼦会是这样⼦:DEVICE=ethXBOOTPROTO=noneONBOOT=yesMASTER=bond0SLAVE=yesUSERCTL=noNM_CONTROLLED=no 像这样,分别修改 ifcfg-eth0 和 ifcfg-eth1 配置⽂件,DEVICE=ethX 中的 X ⽤相应的值代替.然后我们重启⽹络服务.service network restart这样⼦,⼦⽹卡为 eth0 和 eth1,主⽹卡为 bond0,模式为 mode 1 的⽹络 Bonding 就完成了rhel6 bonding 实例展⽰系统: rhel6⽹卡: eth2、eth3bond0:10.200.100.90负载模式: mode1(active-backup) # 这⾥的负载模式为1,也就是主备模式.1、关闭和停⽌NetworkManager服务service NetworkManager stopchkconfig NetworkManager offps: 如果有装的话关闭它,如果报错说明没有装这个,那就不⽤管2、加载bonding模块modprobe --first-time bonding3、创建基于bond0接⼝的配置⽂件[root@rhel6.6 network-scripts]# cat ifcfg-bond0DEVICE=bond0BOOTPROTO=noneIPADDR=10.200.100.90NETMASK=255.255.255.0ONBOOT=yesNM_CONTROLLED=noUSERCTL=noBONDING_OPTS="mode=1 miimon=200"4、SLAVE⽹卡的配置⽂件两种⼦⽹卡的配置⽂件如下[root@rhel6.6 network-scripts]# cat ifcfg-eth2DEVICE=eth2#HWADDR=14:58:D0:5A:0F:76NM_CONTROLLED=no#UUID=3b718bed-e8d4-4b64-afdb-455c8c3ccf91ONBOOT=yes#NM_CONTROLLED=yesBOOTPROTO=noneMASTER=bond0SLAVE=yesUSERCTL=no[root@rhel6.6 network-scripts]# cat ifcfg-eth3DEVICE=eth3#HWADDR=14:58:D0:5A:0F:77NM_CONTROLLED=no#UUID=988835c2-8bfa-4788-9e8d-e898f68458f0ONBOOT=yes#NM_CONTROLLED=yesBOOTPROTO=noneMASTER=bond0SLAVE=yesUSERCTL=no5、bonding信息查看重启⽹络服务器后bonding⽣效[root@rhel6.6 network-scripts]# ip a4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000link/ether c4:34:6b:ac:5c:9e brd ff:ff:ff:ff:ff:ff5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000link/infiniband a0:00:03:00:fe:80:00:00:00:00:00:00:00:02:c9:03:00:0a:6f:ba brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff10: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UPlink/ether c4:34:6b:ac:5c:9e brd ff:ff:ff:ff:ff:ffinet 10.200.100.90/24 brd 10.212.225.255 scope global bond0inet6 fe80::c634:6bff:feac:5c9e/64 scope linkvalid_lft forever preferred_lft forever[root@rhel6.6 network-scripts]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)Bonding Mode: fault-tolerance (active-backup) # bond0接⼝采⽤mode1Primary Slave: NoneCurrently Active Slave: eth2MII Status: upMII Polling Interval (ms): 200Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth2MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: c4:34:6b:ac:5c:9eSlave queue ID: 0Slave Interface: eth3MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: c4:34:6b:ac:5c:9fSlave queue ID: 0进⾏⾼可⽤测试,拔掉其中的⼀条⽹线看丢包和延时情况, 然后在插回⽹线(模拟故障恢复),再看丢包和延时的情况.三、RedHat7配置bonding系统: Red Hat Enterprise Linux Server release 7.6 (Maipo)⽹卡: eno3、eno4bonding:bond0负载模式: mode1(active-backup)服务器上两张物理⽹卡eno3和eno4, 通过绑定成⼀个逻辑⽹卡bond0,bonding模式选择mode1注: ip地址配置在bond0上, 物理⽹卡不需要配置ip地址.1、关闭和停⽌NetworkManager服务RedHat7默认安装了NetworkManager,在配置前先关掉NetworkManager服务,否则可能会对bonding或造成问题。
WireBond工作基本知识介绍
pad
heat
lead
Formation of a second bond
pad
heat
lead
pad
heat
lead
pad
heat
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
Disconnection of the tail
pad
什麼是 WIRE BOND
鋁墊
銲金線
DIE
L/F
一. W/B 銲線基本理論 :
1. 目前我們電子產品銲接是採用固態銲接, 所謂固態銲接,就是金屬在未達熔解溫度 下之銲接。決定固態銲接的要素有那些?
二. BONDING (固態銲接)的四大基本要素 : 要如何才能得到最佳的銲接,主要要素如下
A. 壓力。(BOND FORCE) B. 振盪功率。(BOND POWER) C. 銲接時間。(BOND TIME) D. 銲接溫度。(TEMPERATURE)
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
pad
lead
Formation of a second bond
centos系统网口聚合(bonding)的配置
Memory:fba00000-fba20000
另外,还可以看/sys/class/net/下面的bonding驱动的模块参数的值,比如:
# cat /sys/class/net/bonding_masters
# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 50:B3:42:00:01:08
UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
USERCTL=no
然后再修改ifcfg-eth1~ifcfg-eth4文件的内容,记住,先将备份原来的ifcfg-eth1,以便于恢复配置,^_^,例如ifcfg-eth1的内容为:
#cat ifcfg-eth1
DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond2 #belong to bond2
SLAVE=yes #is bond1's slave
BOOTPROTO=none
文件ifcfg-eth2~ifcfg-eth4只需要修改对应的DEVIE后面的值即可,记住添加文件的可执行属性。
配置网口聚合的时候,我选择了两种模式:balance-rr和active-backup。balance-rr模式采用的是轮转算法(round-robin),即数据包会按顺序从第一个可用的绑定网口(即该聚合口的slave)到最后一个slave中传输,此时每个slave上都会有数据流量,而active-backup模式采用的是备份算法,此时只有一个slave是激活的,只有该salve上有数据流量,当该slave有问题不能正常工作时,其他的某个slave会被激活,
Bonding培训教材分析
GIANT ELECTRONICS LTD嘉音电子有限公司BONDING(邦定)培训教材第一章通用(特殊岗位)培训教材第一节 BONDING(邦定)基本原理一、 BONDING(邦定)组成部分1、印制线路板2、铝线3、芯片4、自动铝线焊线机--(焊接原理)超声波发生器超声波焊接原理:超声波焊接的能量是机械能而非热能,在超声波装置中,弹性震动是由高速交换电流驱动紧密磁力转换器的快速伸缩而产生,此高频压力波传送至钢嘴再由钢嘴将此震动能量转换至被焊接的材料上,钢嘴尖端与焊接平行的运动,包含一种材料上的电动剪切模式,整个的过程包括压力、重力以及钢嘴尖端附加的震动。
影响焊接程序的现象:1、在焊接过程中,焊接点高压力部分的弹性磁滞导致的温度上升。
2、金属结晶结构由于高频机械震动的变换,同时在做各种不同的焊接程序,有四个参数可以改变:⑪钢嘴⑫焊接压力(机械压力)⑬能量(输出功率)⑭焊接时间3、超声波焊线机是专为铝线设计,但是它的程序也可用在金线上。
二、BONDING(邦定)工艺生产流程BONDING(邦定)生产线流程:将微小的芯片IC用红胶粘贴在规定的PCB板位置处,烘干后,用1.25mil(31.75µm)或1.0mil(25.4µm)铝线在自动铝线焊线机上将芯片IC与PCB板线路(金手指)连接起来,然后用绝缘黑胶将芯片IC和金手指封盖后进入烘炉烘干固定。
1生产工艺流程图:2三、BONDING(邦定)生产的主要设备例: 生产一台机所需时间AB510-----(70×0.26+4+3)÷0.9AB520-----(70×0.21+0.8+3)÷0.95四、BONDING (邦定)生产材料及其使用1、印制线路板2、芯片IC3、红胶伟邦4、黑胶振基 URC5、铝线振基 C.C.C6、其它辅料红胶:储藏条件25℃6--8个月5℃12个月膠化条件25℃5--8min固化条件25℃50min红胶在使用前将其温度恢复到室温,才能使用。
Centos7下网卡bonding配置之mode4
Centos7下⽹卡bonding配置之mode4⼀、bonding技术bonding(绑定)是⼀种linux系统下的⽹卡绑定技术,可以把服务器上n个物理⽹卡在系统内部抽象(绑定)成⼀个逻辑上的⽹卡,能够提升⽹络吞吐量、实现⽹络冗余、负载等功能,有很多优势。
bonding技术是linux系统内核层⾯实现的,它是⼀个内核模块(驱动)。
使⽤它需要系统有这个模块, 我们可以modinfo命令查看下这个模块的信息, ⼀般来说都⽀持. modinfo bondingfilename: /lib/modules/3.10.0-957.1.3.el7.x86_64/kernel/drivers/net/bonding/bonding.ko.xzauthor: Thomas Davis, tadavis@ and many othersdescription: Ethernet Channel Bonding Driver, v3.7.1version: 3.7.1license: GPLalias: rtnl-link-bondretpoline: Yrhelversion: 7.6srcversion: 120C91D145D649655185C69depends:intree: Yvermagic: 3.10.0-957.1.3.el7.x86_64 SMP mod_unload modversionssigner: CentOS Linux kernel signing keysig_key: E7:CE:F3:61:3A:9B:8B:D0:12:FA:E7:49:82:72:15:9B:B1:87:9C:65sig_hashalgo: sha256parm: max_bonds:Max number of bonded devices (int)parm: tx_queues:Max number of transmit queues (default = 16) (int)parm: num_grat_arp:Number of peer notifications to send on failover event (alias of num_unsol_na) (int)parm: num_unsol_na:Number of peer notifications to send on failover event (alias of num_grat_arp) (int)parm: miimon:Link check interval in milliseconds (int)parm: updelay:Delay before considering link up, in milliseconds (int)parm: downdelay:Delay before considering link down, in milliseconds (int)parm: use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0for off, 1for on (default) (int)parm: mode:Mode of operation; 0for balance-rr, 1for active-backup, 2for balance-xor, 3for broadcast, 4for802.3ad, 5for balance-tlb, 6for balance-alb (charp)parm: primary:Primary network device to use (charp)parm: primary_reselect:Reselect primary slave once it comes up; 0for always (default), 1for only if speed of primary is better, 2for only on active slave failure (charp)parm: lacp_rate:LACPDU tx rate to request from 802.3ad partner; 0for slow, 1for fast (charp)parm: ad_select:802.3ad aggregation selection logic; 0for stable (default), 1for bandwidth, 2for count (charp)parm: min_links:Minimum number of available links before turning on carrier (int)parm: xmit_hash_policy:balance-alb, balance-tlb, balance-xor, 802.3ad hashing method; 0for layer 2 (default), 1for layer 3+4, 2for layer 2+3, 3for encap layer 2+3, 4for encap layer 3+4 (charp) parm: arp_interval:arp interval in milliseconds (int)parm: arp_ip_target:arp targets in n.n.n.n form (array of charp)parm: arp_validate:validate src/dst of ARP probes; 0for none (default), 1for active, 2for backup, 3for all (charp)parm: arp_all_targets:fail on any/all arp targets timeout; 0for any (default), 1for all (charp)parm: fail_over_mac:For active-backup, do not set all slaves to the same MAC; 0for none (default), 1for active, 2for follow (charp)parm: all_slaves_active:Keep all frames received on an interface by setting active flag for all slaves; 0for never (default), 1for always. (int)parm: resend_igmp:Number of IGMP membership reports to send on link failure (int)parm: packets_per_slave:Packets to send per slave in balance-rr mode; 0for a random slave, 1 packet per slave (default), >1 packets per slave. (int)parm: lp_interval:The number of seconds between instances where the bonding driver sends learning packets to each slaves peer switch. The default is 1. (uint)bonding的七种⼯作模式:bonding技术提供了七种⼯作模式,在使⽤的时候需要指定⼀种,每种有各⾃的优缺点.1. balance-rr (mode=0) 默认, 有⾼可⽤ (容错) 和负载均衡的功能, 需要交换机的配置,每块⽹卡轮询发包 (流量分发⽐较均衡).2. active-backup (mode=1) 只有⾼可⽤ (容错) 功能, 不需要交换机配置, 这种模式只有⼀块⽹卡⼯作, 对外只有⼀个mac地址。
band模式
“balance-alb”模式 介绍“balance-alb”模式的定义、性能和适用范围。在 N8500 的实际应用中,当客户端数 量超过 12 时,如果对端以太网交换机不支持 LACP 汇聚模式的端口聚合,且客户端业务流 量不均等,推荐使用“balance-alb”模式配置 Bonding 功能。
说明: slave 代表被绑定的网卡端口。
性能
优点 提倡公平分配,实现负载平衡 只要同一子网中的客户端数量超过网卡数量,所有的网卡就均有机会发送数据包, 共享所有的任务。避免了一块网卡长期发送数据,而导致其它网卡失效。此时每一 块网卡都能被使用,同时 CPU 的占用时间很少。 提供容错功能 当 Bonding 设备驱动检测到其中一块网卡出错时,该网卡会被 Bonding 驱动从 slave 设备链表中清除。它的传输任务将自动由链表中下一块网卡接管,因此不会影响数 据发送。 实现数据包发送的有序传输
介绍“balance-XOR”模式的定义、性能和适用范围。在 N8500 的实际应用中,当客户端数 量超过 12 时,如果对端以太网交换机不支持 LACP 汇聚模式的端口聚合,且客户端业务流 量均等,推荐使用“balance-XOR”模式配置 Bonding 功能。
定义
XOR 策略。 基于指定的传输 HASH 策略传输数据包。缺省的策略是:(源 MAC 地址 XOR 目标 MAC 地 址)% slave 数量。其他的传输策略可以通过“xmit_hash_policy”选项指定。
缺点 由于“802.3ad”模式的实现通过对端来分发流量(通过源 MAC 地址与目标 MAC 地址 的 XOR 值),所有外出流量将使用同一个网口设备,负载不均衡问题突出。 “802.3ad”模式要求所有设备在同样的速率和双工模式下进行聚合,限制了该模式 的S 引擎节点配置的是同构网卡(所有网卡的性能和处理能力均相
linux下网卡bond配置
Linux 7.x OS bond配置一、bonding技术bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负载等功能,有很多优势。
bonding技术是linux系统内核层面实现的,它是一个内核模块(驱动)。
使用它需要系统有这个模块, 我们可以modinfo命令查看下这个模块的信息, 一般来说都支持.# modinfo bondingfilename:/lib/modules/2.6.32-642.1.1.el6.x86_64/kernel/drivers/net/bonding/bonding.koauthor: Thomas Davis, tadavis@ and many othersdescription: Ethernet Channel Bonding Driver, v3.7.1version: 3.7.1license: GPLalias: rtnl-link-bondsrcversion: F6C1815876DCB3094C27C71depends:vermagic: 2.6.32-642.1.1.el6.x86_64 SMP mod_unloadmodversionsparm: max_bonds:Max number of bonded devices (int)parm: tx_queues:Max number of transmit queues (default = 16) (int)parm: num_grat_arp:Number of peer notifications to send on failover event (alias of num_unsol_na) (int)parm: num_unsol_na:Number of peer notifications to send on failover event (alias of num_grat_arp) (int)parm: miimon:Link check interval in milliseconds (int)parm: updelay:Delay before considering link up, in milliseconds (int)parm: downdelay:Delay before considering link down, in milliseconds (int)parm: use_carrier:Usenetif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default) (int)parm: mode:Mode of operation; 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)parm: primary:Primary network device to use (charp)parm: primary_reselect:Reselect primary slave once it comes up; 0 for always (default), 1 for only if speed of primary is better, 2 for only on active slave failure (charp) parm: lacp_rate:LACPDUtx rate to request from 802.3ad partner; 0 for slow, 1 for fast (charp)parm: ad_select:803.ad aggregation selection logic; 0 for stable (default), 1 for bandwidth, 2 for count (charp)parm: min_links:Minimum number of available links before turning on carrier (int)parm: xmit_hash_policy:balance-xor and 802.3ad hashing method; 0 for layer 2 (default), 1 for layer 3+4, 2 for layer 2+3 (charp)parm: arp_interval:arp interval in milliseconds (int)parm: arp_ip_target:arp targets in n.n.n.n form (array of charp)parm: arp_validate:validatesrc/dst of ARP probes; 0 for none (default), 1 for active, 2 for backup, 3 for all (charp)parm: arp_all_targets:fail on any/all arp targets timeout; 0 for any (default), 1 for all (charp)parm: fail_over_mac:For active-backup, do not set all slaves to the same MAC; 0 for none (default), 1 for active, 2 for follow (charp)parm: all_slaves_active:Keep all frames received on an interface by setting active flag for all slaves; 0 for never (default), 1 for always. (int)parm: resend_igmp:Number of IGMP membership reports to send on link failure (int)parm: packets_per_slave:Packets to send per slave in balance-rr mode; 0 for a random slave, 1 packet per slave (default), >1 packets per slave. (int)parm: lp_interval:The number of seconds between instances where the bonding driver sends learning packets to each slaves peer switch. The default is 1. (uint)modinfo bondingbonding的七种工作模式:bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点. 1.balance-rr (mode=0) 默认, 有高可用(容错) 和负载均衡的功能, 需要交换机的配置,每块网卡轮询发包(流量分发比较均衡).2.active-backup (mode=1) 只有高可用(容错) 功能, 不需要交换机配置, 这种模式只有一块网卡工作, 对外只有一个mac地址。
band模式
5.1.3 Bonding模式介绍
5.1.3.1“balance-rr”模式
5.1.3.2“active-backup”模式
5.1.3.3“balance-XOR”模式
5.1.3.4“broadcast”模式
5.1.3.5“802.3ad”模式
5.1.3.6“balance-tlb”模式
定义
XOR策略。
基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址XOR目标MAC地址)% slave数量。其他的传输策略可以通过“xmit_hash_policy”选项指定。
/说明:
slave代表被绑定的网卡端口。
性能
优点
提倡公平分配,实现负载平衡
只要同一子网中的客户端数量超过网卡数量,所有的网卡就均有机会发送数据包,共享所有的任务。避免了一块网卡长期发送数据,而导致其它网卡失效。此时每一块网卡都能被使用,同时CPU的占用时间很少。
性能
优点
网卡资源利用率高
由于设备链表中的每一块网卡都有机会发送数据包,因此Bonding设备中每一块网卡都能被使用。
实现负载平衡
在“802.3ad”模式下,多个网卡端口工作在同一个激活的聚合体下,共享相同的速率和双工模式。避免了一块网卡长期发送数据,而导致其它网卡失效。
提供容错功能
当Bonding设备驱动检测到其中一块网卡出错时,该网卡会被Bonding驱动从slave设备链表中清除。它的传输任务将自动由链表中下一块网卡接管,因此不会影响数据发送。
“broadcast”模式
介绍“broadcast”模式的定义、性能和适用范围。该模式针对特定需求使用,在N8500实际应用中使用得较少。
linux中bonding配置步骤详解
本文介绍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选项指定,此模式提供负载平衡和容错能力。
bonding配置和介绍
Linux 多网卡绑定网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6 常用的有三种mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.从原理分析一下(bond运行在mode 0下):mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解决办法是,两个网卡接入不同的交换机即可。
mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。
七种bond模式说明:第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略)特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。
Linux bonding源码分析
1. 目的本文档结合相关内核代码和对Linux 2.6.9内核中Bonding模块的三种主要工作模式的工作原理和流程。
在配置Bond模块时,除了资料[2],本文档也有一定的参考价值。
2. 内容本文档包含下列内容:* Bonding模块工作流程综述。
(第3节)* Bonding链路状态监控机制(mii模式、arp模式)描述。
(第4节)* Bonding模块三种主要工作模式:balance-rr、active- backup和broadcast相关代码分析。
(第5节)* Bonding模块关键数据结构和函数的代码分析。
(第5节)如果想了解bonding模块的原理和工作流程,请阅读3、4节,如果想进一步分析bonding 模块的代码,请阅读5节。
3. Bonding模块工作流程综述Bonding模块本质上是一个虚拟的网卡驱动(network device driver),只不过并没有真实的物理网卡与之对应,而是由这个虚拟网卡去“管辖”一系列的真实的物理网卡,所以它的代码结构和一般网卡驱动的代码结构非常类似,这是共性;除此之外,它还有自己的一些特性功能,例如特别的链路状态监控机制,绑定/解除绑定等。
3.1物理网卡的活动状态和链路状态在bonding模块中为每一个被绑定的物理网卡定义了两种活动状态和四种链路状态:注意,这里的链路状态和实际网卡真实的链路状态(是否故障、是否有网线连接)没有直接的关系,虽然bonding模块通过MII或者ARP侦测到实际网卡故障时也会改变自定义的链路状态值(例如从BOND_LINK_UP切换到BOND_LINK_FAIL随后切换到 BOND_LINK_DOWN状态),但是概念上应该把这两类链路状态区分开。
在本文档随后的内容中,除非特别指出,“链路状态”都指bonding模块自定义的链路状态。
活动状态:* BOND_STATE_ACTIVE:处于该状态的网卡是潜在的发送数据包的候选者* BOND_STATE_BACKUP:处于该状态的网卡在选择发送数据的网卡时被排除链路状态:* BOND_LINK_UP:上线状态(处于该状态的网卡是是潜在的发送数据包的候选者) * BOND_LINK_DOWN:故障状态* BOND_LINK_FAIL:网卡出现故障,向状态BOND_LINK_DOWN 切换中* BOND_LINK_BACK:网卡恢复,向状态BOND_LINK_UP切换中一个网卡必须活动状态为BOND_STATE_ACTIVE并且链路状态为 BOND_LINK_UP,才有可能作为发送数据包的候选者,注意,这里所说的数据包并不包含ARP请求,在使用ARP链路状态监控时,一个处于BOND_LINK_BACK状态的网卡也可能发送ARP请求。
七种网卡绑定模式详解
七种网卡绑定模式详解概览:目前网卡绑定mode共有七种(0~6)bond0、bond1、bond2、bond3、bond4、bond5、bond6常用的有三种:mode=0:平衡负载模式,有自动备援,但需要“Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
说明:需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里optionsbond0miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.从原理分析一下(bond运行在mode0下):mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解决办法是,两个网卡接入不同的交换机即可。
mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。
七种bond模式说明:第一种模式:mod=0 ,即:(balance-rr)Round-robin policy(平衡抡循环策略)特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降第二种模式:mod=1,即: (active-backup)Active-backup policy(主-备份策略)特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。
多网卡的7种bond模式原理详解
多网卡的7种bond模式原理Linux 多网卡绑定网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6常用的有三种mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.从原理分析一下(bond运行在mode 0下):mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解 决办法是,两个网卡接入不同的交换机即可。
mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。
七种bond模式说明:第一种模式:mod=0 ,即:(balancerr) Roundrobin policy(平衡抡循环策略)特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降第二种模式:mod=1,即: (activebackup) Activebackup policy(主备份策略)特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。
Linux多网卡bond中的几种mode
Linux多网卡bond中的几种mode一、文档目的编写本文档主要为了介绍以及整理bond中几种mode,为了方便以后工作查看而整理。
二、文档内容随着科学技术的日益革新,数据的安全性已经逐渐体现出了它的重要意义。
可以设想,当一个人所有的个人资料都不负存在,那是多么可怕的事情。
网络技术的深入使用,数据的网络化传输已经成为了重要,甚至主要的传输方式。
所以数据服务器能够正常提供网络服务是所有供应商都需要考虑的问题。
在这个背景下,单网卡的应用已经捉襟见肘,设备冗余技术的普及已是枝繁叶茂。
本文之后就引用Linux操作系统下的多网卡bonding技术来阐述这一容错概念。
负载均衡功能也是网卡bonding的另一个功能,它可以实现多网卡同时工作,提高系统网络处理的吞吐能力。
一、网卡的负载均衡模式(mode = BOND_MODE_ROUNDROBIN)1)建立bond虚设备建立一个ifcfg-bond0的设备,然后配置如下信息即可。
DEVICE=bond0BOOTPROTO=staticIPADDR=172.16.64.208NETMASK=255.255.224.0ONBOOT=yesTYPE=Ethernet2)配置接口文件由于使用一个虚拟的ip地址,所以,其他接口设备都不配置ip信息。
3)配置bonding工作方式打开/etc/modprobe.conf文件,将bonding的工作模式配置为如下模式。
alias bond0 bondingoptions bond0 mode=0 arp_interval=500 arp_ip_target=172.16.64.864)启动bonding需要添加路由来制定发送规则,这个可以自定义添加。
配置完后重启设备即可。
ifenslave bond0 eth0 eth1route add -net 0/0 gw 172.16.64.254bond0 Link encap:Ethernet HWaddr 00:14:10:70:00:25inet addr:172.16.64.208 Bcast:172.16.95.255 Mask:255.255.224.0inet6 addr: fe80::200:ff:fe00:0/64 Scope:LinkUP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1RX packets:39335 errors:0 dropped:0 overruns:0 frame:0TX packets:3178 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:3020656 (2.8 MiB) TX bytes:269722 (263.4 KiB)eth0 Link encap:Ethernet HWaddr 00:14:10:70:00:25UP BROADCAST RUNNING SLA VE MULTICAST MTU:1500 Metric:1RX packets:18208 errors:0 dropped:0 overruns:0 frame:0TX packets:5 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:1371589 (1.3 MiB) TX bytes:378 (378.0 b)eth1 Link encap:Ethernet HWaddr 00:14:10:70:00:25UP BROADCAST RUNNING SLA VE MULTICAST MTU:1500 Metric:1RX packets:21128 errors:0 dropped:0 overruns:0 frame:0TX packets:3174 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100RX bytes:1649127 (1.5 MiB) TX bytes:269498 (263.1 KiB)如上图所示,这种模式下bonding模块会将虚接口和所有的slave接口的MAC地址设置为一致。
bond详解
4.1、安装ifenslave
redhat默认一般已经安装。未安装的要先安装。
yum install ifenslave
4.2、让系统开机自动加载模块bonding
sudo sh -c "echo alias bond0 bonding >> /etc/modprobe.conf"
XOR策略:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,下文将会对之介绍。
该模式提供了负载均衡和容错机制。
broadcast 或者 3
balance-tlb 或者 5
自适应的传输负载均衡:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
必要条件:
----------------------------------------------------------------------------------------
In bonding version 2.6.2 or later, when a failover
occurs in active-backup mode, bonding will issue one
or more gratuitous ARPs on the newly active slave.
One gratuitous ARP is issued for the bonding master
Linux网卡bond配置详解
Linux⽹卡bond配置详解⽹卡bonding模式共有0、1、2、3、4、5、6共7种mode1、5、6不需要要交换机设置mode0、2、3、4需要交换机设置1、mode=0 (round-robin)轮询策略,数据包在每个slave⽹卡上都进⾏数据传输,以逐包形式在两个物理⽹卡上转发数据。
这种模式提供了数据的负载均衡和容错能⼒。
2、mode=1 (active-backup)主备策略,只有⼀个slave被激活,只有当active的slave的接⼝down时,才会激活其它slave接⼝。
主备模式下发⽣⼀次故障切换,在新激活的slave接⼝上会发送⼀个或者多个gratuitous ARP。
主salve接⼝上以及配置在接⼝上的所有VLAN接⼝都会发送gratuitous ARP,需要在这些接⼝上配置了⾄少⼀个IP地址。
VLAN接⼝上发送的的gratuitous ARP将会附上适当的VLAN id。
本模式提供容错能⼒。
3、mode=2(XOR)基于所选择的hash策略,本模式也提供负载均衡和容错能⼒4、mode=3(broadcast)⼴播策略,向所有的slave接⼝发送数据包,本模式提供容错能⼒5、mode=4(802.3ad)动态链路聚合,根据802.3ad标准利⽤所有的slave建⽴聚合链路。
slave接⼝的出⼝取决于传输的hash策略,默认策略是简单的XOR策略,⽽hash策略则可以通xmit_hash_policy选项配置。
前提:每个slave⽹卡⽀持ethtool获取速率和双⼯状态交换机⽀持IEEE 802.3ad标准(可能需要配置启⽤)IEEE 802.3ad 是执⾏的标准⽅法。
将多个适配器聚集到单独的虚拟适配器⽅⾯与“(EtherChannel)”的功能相同,能提供更⾼的防⽌发⽣故障。
例如,eth0 和 eth1 可以聚集到称作eth3 的 IEEE 802.3ad;然后⽤ IP 地址配置接⼝ eth3。
网卡的7种bond模式
⽹卡的7种bond模式⼀、bond模式 Mode=0(balance-rr) 表⽰负载分担round-robin,和交换机的聚合强制不协商的⽅式配合 Mode=1(active-backup) 表⽰主备模式,只有⼀块⽹卡是active,另外⼀块是备的standby,这时如果交换机配的是捆绑,将不能正常⼯作,因为交换机往两块⽹卡发包,有⼀半包是丢弃的 Mode=2(balance-xor) 表⽰XOR Hash负载分担,和交换机的聚合强制不协商⽅式配合。
(需要xmit_hash_policy) Mode=3(broadcast) 表⽰所有包从所有interface发出,这个不均衡,只有冗余机制...和交换机的聚合强制不协商⽅式配合 Mode=4(802.3ad) 表⽰⽀持802.3ad协议,和交换机的聚合LACP⽅式配合(需要xmit_hash_policy) Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进⾏发送,接收时使⽤当前轮到的slave Mode=6(balance-alb) 在5的tlb基础上增加了rlb⼆、交换机设置 mode 1、5、6不需要交换机设置 mode 0、2、3需要交换机设置静态聚合,mode 4需要交换机⽀持802.3ad三、⽹卡配置⽂件 2个物理⽹⼝分别是:eth0,eth1 绑定后的虚拟⼝是:bond0 服务器IP是:192.168.0.1001)修改eth0配置⽂件vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes2)修改eth1配置⽂件 vim /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes3)修改bond0配置⽂件 vim /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes4)修改bonding配置⽂件CentOS6追加写/etc/modprobe.d/dist.conf,CentOS7新建写/etc/modprobe.d/bonding.conf alias bond0 bondingoptions bond0 miimon=100 mode=65)加载bonding模块 modprobe bonding确认模块是否加载成功lsmod |grep bonding6)重启⽹络service network restart查看bondcat /proc/net/bonding/bond0四、设置多个bond1)多个bond⼝的模式设成相同alias bond0 bondingalias bond1 bondingoptions bonding max_bonds=2 miimon=100 mode=62)不同的bond⼝mode设成不⼀样alias bond0 bondingoptions bond0 miimon=100 mode=1install bond1 /sbin/modprobe bonding -o bond1 miimon=100 mode=0 miimon:监视⽹络链接的频度,单位是毫秒,我们设置的是100毫秒 max_bonds:配置的bond⼝个数 mode:bond模式,在⼀般的实际应⽤中,0和1⽤的⽐较多。
Centos7服务器Bond子接口配置文档
Centos7服务器Bond子接口配置文档目录Centos7服务器Bond子接口配置文档 (1)1.什么是bond? (2)2.为什么使用bond? (2)3.bonding的七种工作模式: (2)4.使用场景 (3)*5.Centos7配置bonding (3)5.1创建基于bond0接口的配置文件 (3)5.2 bond4下启动vlan子接口 (4)5.3 修改用于做bond的物理网卡接口的配置文件 (4)5.4 bonding模式4配置 (6)5.5 关闭和停止NetworkManager服务 (6)5.6 重启网络服务 (7)5.7 查看bond0的接口状态信息 (7)5.8 配置完成后重启测试ping网关 (9)1.什么是bond?CentOS7系统可以将多个网络接口绑定在一起,来作为单一的接口去给上层应用使用。
2.为什么使用bond?bong可以将多个网卡绑定到一起,可以让两个或多个接口作为一个接口,同时提高带宽,并提供网络链路的冗余,当有其中一块网卡故障的时候,不会中断服务器的业务。
3.bonding的七种工作模式:bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点.balance-rr (mode=0) 默认,有高可用 (容错) 和负载均衡的功能,需要交换机的配置,每块网卡轮询发包 (流量分发比较均衡). active-backup (mode=1) 只有高可用 (容错) 功能, 不需要交换机配置, 这种模式只有一块网卡工作, 对外只有一个mac地址。
缺点是端口利用率比较低balance-xor (mode=2) 不常用broadcast (mode=3) 不常用802.3ad (mode=4) IEEE 802.3ad动态链路聚合需要交换机配置balance-tlb (mode=5) 不常用balance-alb (mode=6) 有高可用 ( 容错 )和负载均衡的功能,不需要交换机配置 (流量分发到每个接口不是特别均衡)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
bonding的前提条件:网卡应该具备自己独立的BIOS芯片,并且各网卡芯片组型号相同。同一台服务器上的网卡毫无疑问是是符合这个条件的。
Bonding工作模式
bonding的模式一共有7种,常用的为0、1两种:
round-robin(balance-rr) 0 网卡的负载均衡模式
active-backup 1 网卡的容错模式
balance-xor 2 需要交换机支持
broadcast 3 广播模式
ieee802.3ad 4 动态链路聚合模式,需要交换机支持
mode-tlb 5 自适应模式
mode-alb 6 网卡虚拟化方式
mode=0表示load balancing(round-robin)为负载均衡方式,两块网卡都工作。在这种模式下,能在提供带宽bonding的原理:在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身MAC的以太网帧,过滤别的数据帧,以减轻驱动程序的负担;但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,bonding就运行在这种模式下,而且修改了驱动程序中的mac地址,将两块网卡的MAC地址改成相同,可以接收特定MAC的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
为方便理解bonding的配置及实现,顺便阐述一下Linux的网络接口及其配置文件。在 Linux 中,所有的网络通讯都发生在软件接口与物理网络设备之间。与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于 /etc/sysconfig/netwrok-scripts/ 目录下。网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置。接口配置文件的名称通常类似于 ifcfg-<name>,其中 <name> 与配置文件所控制的设备的名称相关。 在所有的网络接口中,最常用的就是以太网接口ifcfg-eth0,它是系统中第一块网卡的配置文件。虽然在不同的系统之间,文件的类型和数量并不一定相同,但各种的网络设备都需要用到这些文件保证设备的正常运作。bonding技术,就是通过配置文件建立绑定接口,从而实现多个物理网卡绑定到一个虚拟网卡。