bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负载等功能。
bonding技术是linux系统内核层面实现的,它是一个内核模块(驱动)。
Bonding,其原理是讲多个物理网卡聚合成一个虚拟网卡,一张网卡正常工作,其余网卡作为备用,每隔一段时间(miimon=毫秒),向正常工作的网卡发一状态询问,若没回复,则认为其运行失败,然后就会启用备用网卡,但是IP地址不会改变。
$ modinfo bonding
filename: /lib/modules/5.2.18-200.fc30.x86_64/kernel/drivers/net/bonding/bonding.ko.xz
name: bonding
参数:
max_bonds: 绑定设备的最大数量 (int)
tx_queues: 最大传输队列 (default = 16) (int)
num_grat_arp: 故障转移事件时,要发送的对等通知数 ( num_unsol_na 的别名) (int)
num_unsol_na: 故障转移时间时,要发送的对等通知数 ( num_grat_arp 的别名) (int)
miimon: 链接检查间隔(毫秒) (int)
updelay: 考虑到链接启动前的延迟(毫秒) (int)
downdelay: 考虑到链接关闭前的延迟(毫秒) (int)
use_carrier: 使用 netif_carrier_ok (vs MII ioctls) in miimon; 0 关闭, 1 开启 (默认值) (int)
mode: 绑定的模式; 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)
primary: 要使用的主网络设备 (charp)
primary_reselect: 出现主从时重新选择主从; 0 for always (default), 1 for only if speed of primary is better, 2 for only on active slave failure (charp)
lacp_rate:LACPDU tx rate to request from 802.3ad partner; 0 for slow, 1 for fast (charp)
ad_select:802.3ad aggregation selection logic; 0 for stable (default), 1 for bandwidth, 2 for count (charp)
min_links: 启动 carrier 前可用链接的最小数量 (int)
xmit_hash_policy:balance-alb, balance-tlb, balance-xor, 802.3ad hashing method; 0 for layer 2 (default), 1 for layer 3+4, 2 for layer 2+3, 3 for encap layer 2+3, 4 for encap layer 3+4 (charp)
arp_interval: arp 间隔(毫秒) (int)
arp_ip_target: arp 目标( n.n.n.n 形式) (array of charp)
arp_validate: 验证 ARP probes src/dst; 0 for none (default), 1 for active, 2 for backup, 3 for all (charp)
arp_all_targets: 任何/所有 arp 目标超时时失败; 0 任何 (默认值), 1 所有(charp)
fail_over_mac: active-backup 模式下, 不将所有从属设备设置为同一个 MAC; 0 for none (default), 1 for active, 2 for follow (charp)
all_slaves_active: 通过为所有丛属设备设置活动标志,来保持接口上收到的所有帧; 0 从不 (默认值), 1 总是. (int)
resend_igmp: 链接失败时要发送的 IGMP membership 报告数 (int)
packets_per_slave: balance-rr 模式下每个从属设备要发送的包 ; 0 for a random slave, 1 packet per slave (default), >1 packets per slave. (int)
lp_interval: bonding 驱动给每个从属设备交换机发送学习包的实例间秒数. 默认值是 1. (uint)