Linux下的网卡绑定技术(通常称为bonding或NIC Teaming)的主要作用包括:
冗余:
- 提供网络冗余,通过将两个或更多的物理网卡组合成一个逻辑接口,当其中任何一个网卡失效时,另一个网卡仍然可以维持网络连接,从而提高了网络的可用性和可靠性。
负载均衡:
- 根据不同的绑定模式(例如,balance-rr, balance-xor, active-backup等),可以在多个物理接口之间分配网络流量,以增加带宽和处理能力,减轻单个网卡的负载压力,提升网络性能。
故障切换:
- 当主用网卡发生故障时,备份网卡可以在几乎没有明显中断的情况下自动接管通信,保证关键服务的持续运行。
链路聚合:
- 与支持链路聚合功能的交换机配合使用,可实现多条链路间的带宽叠加,进一步提升网络吞吐量。
服务质量优化:
- 在某些高级配置中,可以根据特定的策略或优先级来选择最佳路径发送数据包,以适应不同应用程序对网络质量的不同需求。
• 轮询策略(round robin),mode=0,按照设备顺序依次传输数据包,提供负载均衡和容错能力
• 主备策略(active-backup),mode=1,只有主网卡处于工作状态,备网卡处于备用状态,主网卡坏掉后备网卡开始工作,提供容错能力
• 异或策略(load balancing (xor)),mode=2,根据源MAC地址和目的MAC地址进行异或计算的结果来选择传输设备,提供负载均衡和容错能力
• 广播策略(fault-tolerance (broadcast)),mode=3,将所有数据包传输给所有接口通过全部设备来传输所有数据,一个报文会复制两份通过bond下的两个网卡分别发送出去,提供高容错能力
• 动态链接聚合(lacp),mode=4,按照802.3ad协议的聚合自动配置来共享相同的传输速度,网卡带宽最高可以翻倍,链路聚合控制协议(LACP)自动通知交换机聚合哪些端口,需要交换机支持 802.3ad协议,提供容错能力
• 输出负载均衡模式(transmit load balancing),mode=5,输出负载均衡模式,只有输出实现负载均衡,输入数据时则只选定其中一块网卡接收,需要网卡和驱动支持ethtool命令
• 输入/输出负载均衡模式(adaptive load balancing),mode=6,输入和输出都实现负载均衡,需要网卡和驱动支持ethtool命令