介绍
在复杂的网络环境中,为了提高带宽、负载均衡和冗余备份,Linux 提供了 Bonding 技术。Bonding 技术允许将多个物理网络接口绑定在一起,形成一个逻辑接口,以提高网络性能和可用性。
Bonding 七种模式
Linux Bonding 支持多种模式,每种模式都有其独特的特性和应用场景。
俗称 | 配置简称 | 英文名 | 中文名 | 解释 |
---|---|---|---|---|
bond0 | balance-rr | Round-robin policy | 平衡轮询策略 | 传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力。 |
bond1 | active-backup | Active-backup policy | 活动备份策略 | 只有一个设备处于活动状态。一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。此模式提供了容错能力。 |
bond2 | balance-xor | XOR policy | 平衡策略 | 传输根据 (源MAC地址 xor 目标MAC地址) mod 设备数量 的布尔值选择传输设备。 此模式提供负载平衡和容错能力。 |
bond3 | broadcast | Broadcast policy | 广播策略 | 将所有数据包传输给所有设备。此模式提供了容错能力。 |
bond4 | 802.3ad | IEEE 802.3ad Dynamic link aggregation | IEEE 802.3ad 动态链接聚合 | 创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机也需启用 802.3ad 模式。 |
bond5 | balance-tlb | Adaptive transmit load balancing | 适配器传输负载均衡 | 通道绑定不需要专用的交换机支持。发出的流量根据当前负载分给每一个设备。由当前设备处理接收,如果接受的设 备传不通就用另一个设备接管当前设备正在处理的mac地址。 |
bond6 | balance-alb | Adaptive load balancing | 适配器负载均衡 | 包括mode5,由 ARP 协商完成接收的负载。bonding驱动程序截获 ARP在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。 |
- mode0,mode2 和 mode3 理论上需要静态聚合方式
- bond1,mode5 和 mode6 不需要交换机端的设置,网卡能自动聚合
- bond4 需要支持 802.3ad,配置交换机
1. Active-Backup 模式
在此模式下,只有一个网络接口是活动的,其他的是备份的。如果活动接口失效,备份接口会接管。这种模式适用于对网络连接的高可用性要求。
2. Balance-RR (Round Robin) 模式
数据包按照轮询的方式分发到所有可用的网络接口。这是一种基于轮询的负载均衡模式,但不能充分利用带宽。
3. 802.3ad (LACP) 模式
使用 Link Aggregation Control Protocol (LACP) 协议,将多个接口绑定在一起,提供负载均衡和冗余备份。需要交换机支持。
4. Balance-TLB (Transmit Load Balancing) 模式
基于当前网络流量状况进行数据包分发,提供负载均衡。
5. Balance-ALB (Adaptive Load Balancing) 模式
通过学习最佳路径来发送数据包,适用于动态网络环境。
配置步骤
步骤 1:安装 ifenslave 工具
sudo apt-get install ifenslave
步骤 2:编辑网络配置文件
编辑 /etc/network/interfaces
文件,添加 Bonding 配置:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp1s0
iface enp1s0 inet manual
bond-master bond0
auto enp2s0
iface enp2s0 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 172.17.2.148
netmask 255.255.255.0
gateway 172.17.2.1
dns-nameservers 8.8.8.8 8.8.4.4
slaves enp1s0 enp2s0
bond-mode 1
bond-miimon 100
bond-lacp-rate 1
auto enp3s0
iface enp3s0 inet manual
bond-master bond1
auto enp4s0
iface enp4s0 inet manual
bond-master bond1
auto bond1
iface bond1 inet static
address 172.17.17.229
netmask 255.255.255.0
gateway 172.17.17.1
slaves enp3s0 enp4s0
bond-mode 1
bond-miimon 100
bond-lacp-rate 1
post-up ip route add 10.100.0.0/16 via 10.100.41.1
post-up ip route add 10.254.254.0/24 via 10.100.41.1
步骤 3:重启网络服务
sudo service networking restart
总结
Linux Bonding 技术为网络管理员提供了强大的工具,用于提高网络性能和可用性。通过选择合适的模式,并正确配置,可以在复杂的网络环境中实现负载均衡和冗余备份,提供更加可靠的网络连接。