Windows NIC Teaming与Linux NIC Bonding基础全解析
Windows系统下的NIC teaming技术与Linux系统下的NIC bonding技术类似,两者都是将多个网卡在逻辑上绑定为一个虚拟网卡,并在外部显示同一个MAC地址。两种技术同时具有负载均衡和容错能力,最终目标都是为了实现网络更高性能与网络冗余,本文将对这两种技术进行一一介绍。
了解Windows操作系统下的NIC Teaming技术
什么是Windows NIC Teaming
NIC Teaming在微软领域中也被称为负载均衡/故障转移(LBFO)。它能将同一主机/服务器中多个物理网卡绑定到一个“组(team)”,使它们在逻辑上成为单个网卡。连接成组的网卡对外显示为一个或多个虚拟网卡,共享相同的IP地址。
Windows NIC Teaming有多少种模式?
现在市面上的网卡有很多,Intel网卡是其中一种多用户选择的主流网卡。Intel NIC teaming有以下几种模式:
AFT(适配器容错)模式:网卡组可配置为AFT模式,此模式可为服务器的网络连接提供自动冗余。当主网卡发生故障,备用网卡将接替主网卡继续工作。
注意:
①此模式适用于任何交换机;
②所有组内网卡必须连接到相同的子网;
③每组支持2-8个网卡。
SFT(交换机容错)模式:当两个网卡分别连接到不同的交换机时,SFT模式可提供两个网卡之间的故障转移。
注意:
①网卡在不同的交换机上工作;
②所有组内网卡必须连接到相同的子网;
③在创建SFT组时需要启用STP(生成树)协议;
④每组支持2个网卡。
ALB(自适应负载均衡)模式:此模式提供负载均衡和网卡容错,负载均衡在ALB组内可启用或禁用,默认为启用。
注意:适用于所有交换机。
VMLB(虚拟机负载均衡)模式:VMLB模式为绑定到同一组接口的虚拟机之间提供传输和接收流量的负载均衡,同时在交换机端口、跳线或网卡故障时提供容错功能。
注意:适用于所有交换机。
FEC(快速以太通道/链路聚合)模式:FEC模式提供负载平衡适配器容错(仅针对路由协议),有助于提高传输与接收吞吐量。
注意:
①需要具有FEC链路聚合功能的交换机;
②每组支持2-8个网卡。
GEC(以太网通道/链路聚合)模式:GEC模式是对FEC模式的千兆扩展。
注意:所有组内网卡必须以千兆速度运行。
SLA(静态链路聚合)模式:SLA模式已经取代了FEC和GEC两个版本。
注意:
①SLA模式下的网卡应以相同的速度运行,并连接到具有静态链接聚合功能的交换机;
②如果网卡的速率不一致,网卡组的速率将由其中的最小网卡速率决定;
③每组支持2-8个网卡。
动态链路聚合(IEEE 802.3ad)模式:动态链路聚合模式通过使用混合速度网卡的动态链路聚合来创建一/多个网卡组,该模式提供了容错性,有助于提高传输和接收吞吐量。
注意:交换机需要支持IEEE 802.3ad标准。
MVT(多供应商协作)模式:该模式使得不同厂家的网卡可以在同一个网卡组中工作。
了解Linux操作系统下的NIC Bonding
什么是Linux NIC Bonding?
在Linux操作系统中,NIC Bonding是指将多个网络接口聚合成为一个逻辑接口的过程,即两个或多个网卡组合和连接充当一个网卡。注意,配置绑定的前提之一是网络交换机支持EtherChannel。
Linux NIC Bonding有多少种模式?
绑定网卡的性能表现取决于所采用的模式。各模式一般可以提供容错和负载均衡服务。关于Linux NIC Bonding七种模式的说明详见下表。
模式 | 策略 | 容错 | 负载均衡 | 功能&说明 |
---|---|---|---|---|
mode=0(balance-rr) | Round-robin策略 | 支持 | 支持 | 此模式为默认模式,数据包以循环模式按顺序从第一个可用的slave网卡到最后一个可用的slave网卡进行传输和接收。 |
mode=1(active-backup) | Active-backup主备策略 | 支持 | 不支持 | 只有一个slave网卡处于活动状态,另外一个slave网卡作为备用,当处于活动状态的网卡不能工作时,备用网卡将转为活动slave网卡开始工作。在有N个网络接口的情况下,资源利用率为1/N。 |
mode=2(balance-xor) | XOR策略 | 支持 | 支持 | 一旦网卡和匹配的设备建立连接,将始终由这块网卡与目的MAC进行传输和接收,以确保MAC地址保持不变。 |
mode=3(broadcast) | 广播策略 | 支持 | 不支持 | 所有的数据包在全部的slave接口上发送的,但资源利用率低。通常用于特定情景,如金融业等追求可靠性的网络环境中。 |
mode=4(802.3ad) | IEEE 802.3ad 动态链路策略 | 支持 | 支持 | 可创建共享相同速度和双工设置的聚合组,需要和支持IEEE 802.3ad动态链路聚合的交换机配合。 |
mode=5(balance-tlb) | 适配器传输负载均衡策略 | 支持 | 支持 | 根据每个slave接口上的负载来分配传出流量,而传入的流量则由当前的slave接口接收,对交换机没有特定的要求。 |
mode=6(balance-alb) | 适配器适应性负载均衡策略 | 支持 | 支持 | 与mode=5相比增加了数据接收负载均衡功能,这一功能通过ARP协商得以实现,对交换机没有特定要求。 |
注意: 1. 一个bonding接口只能指定一种模式; 2. mode=0、mode=2、mode=3理论上需要静态聚合; 3. mode=4需要支持802.3ad; 4. mode=1、mode=5、mode=6不需要对交换机进行配置; 5. 模式的选择取决于网络拓扑结构、连接性能的要求以及slave设备的特性。 通常,以下模式用于单交换机拓扑结构:mode=0 (balance-rr)、mode= 2 (balance-xor)、mode= 4 (802.3)、mode= 5 (balance-tlb)、mode= 6 (balance-alb),mode=1 (active-backup)和mode=3 (broadcast)适用于多交换机拓扑结构。 |
常见疑问
NIC teaming和NIC bonding能否提高交换机与服务器连接的带宽?
很多用户会误以为链路聚合可以增加带宽,当三个网卡分别以1Gbps的速度工作时,网卡组显示的速度是3Gbps,会让人以为速率成了三倍,但其实网速并没有提升,只是三个独立的1Gbps链路而已。
更重要的是,选择链路聚合应该根据网络链路弹性考虑,而不是总可用吞吐量。例如,当通过2Gbps聚合链接将文件从一台电脑传输到另一台时,总传输速率最多只能达到1Gbps。当传输两个文件时,聚合带宽的好处将会显现出来,链路聚合增加了 “道路”的数量,但没有改变速度限制。
NIC teaming和NIC bonding对用户有什么作用?
简单来说NIC teaming和NIC bonding的作用就是负载均衡和容错。
负载均衡:传出流量根据可用物理网卡之间的目标地址自动负载均衡,传入流量则由交换机将流量路由到服务器,主机和服务器不具备控制物理网卡流量的能力。
容错:如果出现底层物理网卡故障或其跳线未插拔的情况,主机或服务器将检测到故障,并自动将流量转移到绑定的另一个网卡上,从而避免由于单点故障导致整个网络连接中断。
图1:负载均衡与容错
网卡组利用负载均衡和容错的优势,有助于优化带宽,防止网卡故障时造成连接损失。