网卡绑定(Network Interface Card Bonding,也称为链路聚合或链路绑定)是一种将多个网络接口组合在一起使用的技术,以提供更高的网络带宽和冗余。Linux中支持多种不同的绑定模式,每种模式都有其特定的负载均衡策略和用途。以下是七种常用的绑定模式的简单解释:
- mode=0 (balance-rr) - 轮询模式:流量在各个接口间轮流发送,类似于轮盘赌,每张彩票(数据包)依次有机会中奖(被发送)。如果一个接口故障,其他接口继续工作。
- mode=1 (active-backup) - 主备模式:其中一个接口处于活跃状态处理所有流量,而其他接口作为备份待命。如果活跃接口出现故障,备用接口会接管其工作。
- mode=2 (balance-xor) - 基于MAC地址的负载均衡:流量根据源和目标MAC地址的最低有效位进行选择接口。这种方式确保具有相同MAC地址的流量总是通过相同的接口发送。
- mode=3 (broadcast) - 广播模式:所有数据包都被复制并发送到所有接口。这个模式增加了带宽使用量,但提供了高级别的冗余。
- mode=4 (802.3ad) - 动态链路聚合:通过与交换机之间使用LACP协议来动态协商聚合参数,并确定哪些链路用于传输数据。
- mode=5 (balance-tlb) - 基于传输哈希的负载均衡:结合了源和目标IP地址以及源和目标端口号的散列算法来决定数据包应该通过哪个接口发送。
- mode=6 (balance-alb) - 适应性负载均衡:类似于mode=0,但是它会考虑连接的持久性,试图保持连接的数据包通过相同的接口,以减少重新排序的需要。
这些模式帮助系统管理员根据网络需求和硬件能力来优化服务器的网络性能和可靠性。例如,如果您希望在某个接口故障时自动切换到备用接口,可以选择主备模式(mode=1)。如果您想增加服务器带宽并且交换机支持LACP,则可以选择动态链路聚合模式(mode=4)。
1. 使用 nmcli 命令创建 bond0,自动生成配置文件:
cd /etc/sysconfig/network-scripts/
sudo nmcli connection add type bond ifname bond2 mode 4
添加bond2后会再当前目录生成一个ifcfg-bond-bond2配置文件,打开这个文件填写ip,子网掩码,网关,dns等自己需要的参数。如下图:
将两个物理网卡聚合到bond2这个虚拟接口上,如下图:
sudo nmcli connection add type bond-slave ifname ens3f1 master bond2
sudo nmcli connection add type bond-slave ifname ens6f1 master bond2
这时当前目录下会产生连个文件,如下图:
首先,将这两个文件备份一下, 然后在对照同网段的ip的这个文件来修改,如果网卡有子接口的话,还会有子接口文件,注意:后面的vlan号,每个网卡都不一样,这些文件都要对照着同网段的ip的文件来改一下,如下图:
然后重启网络服务:
sudo systemctl restart NetworkManager
sudo nmcli con reload #重新加载网络配置
reboot #重启