1. 概述
网络接口绑定(Network Interface Bonding),也称为链路聚合(Link Aggregation)或NIC Teaming,是将多个物理网络接口聚合成一个逻辑接口,以提高带宽和提供冗余性的技术。这种技术广泛应用于服务器和高性能计算环境中,以确保网络的高可用性和高性能。
2. 优势
- 增加带宽:通过聚合多个网络接口,整体带宽增加,从而提升网络吞吐量。
- 高可用性:在一个接口发生故障时,其他接口可以继续工作,确保网络连接的连续性。
- 负载均衡:数据流量可以在多个接口之间均衡分配,避免单一接口成为瓶颈。
- 简化管理:将多个接口管理为一个逻辑接口,简化了网络配置和管理。
3. Bonding 模式
Linux 支持多种 Bonding 模式,每种模式都有其独特的特点和应用场景:
- mode=0 (balance-rr):循环方式(Round-robin),每个数据包依次从每个接口发送。提供负载均衡和容错功能。
- mode=1 (active-backup):主备模式(Active-backup),一个接口为主接口,其他接口为备份接口。当主接口失败时,备份接口接管。提供高可用性。
- mode=2 (balance-xor):根据传输散列算法选择接口。提供负载均衡和容错功能。
- mode=3 (broadcast):广播模式,所有数据包通过所有接口发送。提供容错功能。
- mode=4 (802.3ad):动态链路聚合(LACP),需要交换机支持 IEEE 802.3ad。提供负载均衡和高可用性。
- mode=5 (balance-tlb):基于发送负载的自适应传输负载均衡(Adaptive Transmit Load Balancing)。无需特殊交换机支持。
- mode=6 (balance-alb):基于接收负载的自适应负载均衡(Adaptive Load Balancing)。无需特殊交换机支持。
4. 配置示例
以下是使用 systemd-networkd
配置 Bonding 的示例。
4.1. 配置物理接口
首先,配置要绑定的物理接口。例如,enp26s0f0
和 enp26s0f1
:
创建文件 /etc/systemd/network/10-enp26s0f0.network
:
1 | [Match] |
创建文件 /etc/systemd/network/10-enp26s0f1.network
:
1 | [Match] |
4.2. 配置 Bonding 接口
创建文件 /etc/systemd/network/bond0.netdev
来定义 Bonding 接口:
1 | [NetDev] |
4.3. 配置 Bonding 接口的网络设置
创建文件 /etc/systemd/network/10-bond0.network
来配置 Bonding 接口的网络设置:
1 | [Match] |
4.4. 应用配置
保存配置文件后,重新启动 systemd-networkd
服务以应用新的网络配置:
1 | sudo systemctl restart systemd-networkd |
4.5. 检查配置
或者查看具体接口的详细信息:
1 | # networkctl status bond0 |
5. 通过命令配置bond
5.1. 通过IP命令做bond
1 |
|
查看bond状态
1 | cat /proc/net/bonding/bond0 |
使用 modprobe 工具配置网络接口的 Bond(绑定)操作是另一种在 Linux 上设置链路聚合的方法。modprobe 用于加载和卸载内核模块,而 bonding 模块是用于实现网络接口绑定的内核模块。
赞赏一下