Windows 双网卡链路聚合解决方案
- 链路聚合
- 方案1:Metric
- 介绍
- 操作
- 方案2:NetSwitchTeam
- 介绍
- 操作
- 方案3:NIC
- 介绍
- 操作
- 方案4:Intel® PROSet
链路聚合
指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。
方案1:Metric
介绍
-
在任务管理器中看到两个网卡都有数据流量,这并非说明操作系统支持自动带宽叠加,这是默认策略导致的。
-
例如操作系统会发送简单的请求以判断网络连接的可用性。这就可能导致看到两个网卡都有少量的数据流量。
-
在默认情况下,无论路由优先级(Metric)如何,所有的操作系统都会优先访问对应网卡默认网关所在的网段。例如网卡1的默认网关是192.168.1.1,网卡2的默认网关是10.10.10.1,而子网掩码都是255.255.255.0,此时我们访问10.10.10.2,则系统默认直接由网卡2进行访问。这就是路由表的默认规则。因此我们设置外网使用哪个网卡,就是设置到指定网关地址Metric最低的网卡即可。
-
在windows操作系统中,如果两个网卡速率相同,设置相同跃点数的方案可以实现负载均衡和外网带宽叠加,但是点对点速率不会有提升。例如内网传输文件到NAS的速度不会有叠加,但是在迅雷下载的时候速度会有明显提升。如果希望内网传输文件到NAS的速度进行叠加,可以在NAS和win10中同时启用SMB3.0实现多通道负载均衡。
操作
-
首先在本地电脑查看路由信息,拿win10系统举例子,在左下角开始菜单,点击右键,打开命令窗口。
-
在命令窗口输入:route print 查看它的跃点数,如果两个数不一样,说明电脑只是用了一个网卡。我的一个是55,一个是25。
-
修改成相同的跃点数,系统就让两个网卡一起工作,带宽叠加使用,网速起飞。
- 右击鼠标属性;
- 选择internet版本协议IPv4;
- 再点击属性;
- 弹窗选择高级;
- 取消勾选;
-
同样的方法,把第二个网卡跃点数也改成跟之前网卡相同的跃点数即可。
-
再次命令窗口输入:route print 查看它的跃点数,两个网卡的就会相同。
-
在任务管理器中查看性能,有线和WIFI在同时工作。
方案2:NetSwitchTeam
介绍
- NetSwitchTeam是实现链路聚合的推荐方案。同样的,该方案不会叠加内网点对点传输的速率。
操作
- 通过Windows PowerShell(管理员),执行Get-NetAdapter查看当前网卡列表详情。
- 创建一个NetSwitchTeam:
New-NetSwitchTeam -Name "SwitchTeam01" -TeamMembers "Ethernet 2","Ethernet 3"
Ethernet 2和Ethernet 3就是Get-NetAdapter得到的Name值,可以是中文,例如以太网 4。
-
此时访问网络连接状态,可以看到SwitchTeam01的速度是2.0Gbps。
-
此时通过外网测速能够看到明显的叠加效果。
在一个SwitchTeam以内的两个网卡是自动相互协助的,不需要再点击切换到Team。 -
删除聚合使用
Remove-NetSwitchTeam –Name "SwitchTeam01"
方案3:NIC
介绍
-
此方案仅支持 Windows Server 平台
-
什么是NIC组合
简单来讲,NIC组合就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址。 微软NIC组合,也称为负载平衡/故障转移 (LBFO),允许多个网络适配器组合成一个,这样做的目的可以带来带宽聚合、解决网络连接失败过程中的故障转移;它应用于Windows Server 2012的所有版本中,包括核心版和图形界面完全版;NIC组合在 Windows 8 中是不可用的,但是 NIC组合的用户界面和 NIC组合的 Windows PowerShell Cmdlet命令行 都可以运行 Windows 8, 以便于 Windows 8 PC 可以用于管理一个或多个 Windows Server 2012主机上的NIC组合。利用NIC组合技术,除了可以提高网络速度以外,还可以实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。如图所示,NIC实现的具体功能:
1)带宽聚合提高网络速度并在不同网卡之间进行负载均衡
2)进行流量故障转移,以防止在网络组件发生故障时失去连接。
-
NIC组合要求:
NIC 组合允许多个网络适配器组合成一个,该适配器可以用于分离使用 VLAN 的流量,对于集群服务器可支持多组(比如业务组和私网心跳组)。通过故障转移提供故障保护的所有模式都至少需要两个以太网网络适配器。Windows Server 2012 在一个组中可支持多达 32 个网络适配器 -
成组模式:
-
静态成组(IEEE 802.3ad draft v1):此模式配置交换机和主机之间需要哪种链接组合形式,由于这是一个静态配置的解决方案有任何附加协议,所以就不会因为交换机或主机因为电缆的插入错误或其它错误而导致组合的形成。此种模式中,网卡可以工作于不同的速度,就是说可以用不通速度的网卡建立组合, 但同样要求交换机完全支持IEEE 802.3ad 标准,一般情况下,服务器级别的交换机通常支持此模式。
-
交换机独立:这是配置时的默认值,此模式不要求交换机参与组合配置,由于独立模式下的交换机不知道网卡是主机上组合一部分,网卡可以连接到不同的交换机。
-
LACA动态组合(IEEE 802.1ax, LACP):LACA动态组合是到同一台交换机的链路聚合,只不过不是静态配置的,而是动态构成(也就是自动协商)的。它是通过一种智能的链路协商协议LACP (Link Aggregation Control Protocol)来实现的。LACP原本用于交换机和交换机之间的链路聚合,启用了LACP协议的2台交换机会相互发送LACP的协商报文,当发现2者之间有多条可用的链路的时候,自动将这些链路组合成一条带宽更大的逻辑链路,从而利用负载均衡来实现加宽交换机间链路带宽的目的。
-
-
负载平衡模式:
-
地址哈希:默认,这是一个基于哈希算法的处理负载平衡的模式。
可以指定哈希函数的输入包括以下组件:
源和目的MAC地址
源和目标IP地址
源和目的TCP端口和源IP和目的IP地址、
启用该方式后,数据包到达Teaming后,会根据目的地址信息(MAC地址,IP地址和端口号)执行哈希算法,通过算法的结果,NIC Team决定由哪块物理网卡发送数据包。这种方式无法控制流量的走向,如果有大量数据是流向一个目标地址,那么只会通过一块物理网卡来发送。 -
Hyper-v端口:
由于虚拟机有独立的 MAC 地址,它的MAC地址或端口可以根据流量将它连接到的Hyper-V交换机,使用这个方案的虚拟化还有一个优势,因为相邻的交换机总是能看到一个特定的MAC地址对一个且只有一个连接的端口,交换机将基于目标 MAC (VM MAC) 地址的多个链路上分发入口负载(通信量从交换机到主机),如果主机只有几台虚拟机,当虚拟机的队列(VMQs)被用作一个队列可以放置在特定的达到流量预期NIC上,这是特别有用的,此模式对负载平衡来说,十分精确。这种模式也总是将限制在一个单独的 VM (亦即,从单个交换机端口的通信量) 到一个单一的界面上的可用带宽。Windows Server 2012以Hyper-V 交换机端口作为标识符,而不是源MAC地址,在某些情况下,在交换机上的端口上,虚拟机可以使用一个以上的MAC地址。
Hyper-V的模式,与无法控制的地址哈希相比,这种方式效率更高,数据会通过绑定虚拟网卡的不同物理网卡传输,同时这种绑定是基于每个虚拟网卡,而不是每台虚拟机的。如果是使用Hyper-V外部虚拟交换机建议选择这种方式。 -
动态
这种方式是在Windows Server 2012 R2中新引入的方式,也是最优化的方式,数据会被平分到所有的成员网卡上,最大效率的利用带宽。
其它属性——备用适配器:
可以让其中的一个网卡当备用网卡;也可以让所有网卡都处于活动状态。
-
操作
* 默认情况下,NIC组合是禁用的,如下:
- 将其启用,然后进行新建NIC组合
- 点击组中“任务”—新建。选择需要组合的网卡,其他属性中,设定交换机独立及哈希地址。
- 配置成功后:
- 我们再来看一下网络连接情况:两个以太网变成了 NEW NIC,即NIC组合。
-
然后再设置NEW NIC的IP地址、掩码和网关等信息就可以正常通信联网了。
另外Windows Server 2012 R2 中的网卡捆绑还能用于虚拟机。这样虚拟机即可通过虚拟网络适配器连接到多个 Hyper-V 交换机,就算该交换机下的一个网络适配器断开也能维持连接。在使用单根 I/O 虚拟化(SR-IOV)等功能时,这一特性尤为重要,因为 SR-IOV 通讯并不通过 Hyper-V 交换机传输,因此无法受到 Hyper-V 交换机中网卡捆绑的保护。通过对虚拟机本身进行捆绑,管理员可设置最多两个 Hyper-V 交换机,每个连接到一个支持 SR-IOV 的专用网络适配器。这样即可实现:-
每个虚拟机通过支持 SR-IOV 的一个或多个网络适配器安装虚拟 Function,随后一旦有网络适配器断开,虚拟机依然可从主要虚拟 Function 故障转移到后备虚拟 Function。
-
或者虚拟机可通过一个网络适配器获得一个虚拟 Function,并通过非虚拟 Function 网络适配器连接到其他交换机。如果关联虚拟 Function 的网络适配器断开,通讯即可不断开直接故障转移到其他交换机。
-
-
备用适配器下,默认为“无(所有网络适配器处于活动状态,即active-active)”
如果管理员希望网络接口具有VLAN功能,则点击“默认VLAN”以打开VLAN对话框以便选择相应的VLAN ID -
最后就是使用Windows PowerShell也可以创建NIC Teaming
- 以管理员身份打开Windows PowerShell
- 使用“Get-NetAdapter”查询当前主机所有网卡信息
- 使用“New-NetLbfoTeam”命令将NIC1和NIC2添加到NIC组“AppNIC”中
- 使用“Get-NetLbfoTeam”查看NIC Teaming信息
- 使用“Set- NetLbfoTeam”修改NIC Teaming成组模式
- 使用“Set- NetLbfoTeam”修改NIC Teaming负载平衡模式
- 使用一下命令设置NIC Teaming的模式为交换机独立模式,负载平衡模式为Transporports(地址哈希)
- 使用“Get-NetLbfoTeammember”查看NIC Teaming网络适配器状态,当前显示的active-active
- 使用“Set-NetLbfoTeammember”修改NIC为standby模式
方案4:Intel® PROSet
* 右键网卡的属性,打开配置,点击分组,进行设置-模式的话一般选择下面的三个选项:1.负载均衡(次选)英文名称为Load Balance 2.动态链路聚合(优选)英语:Dynamic Link Aggregation3.静态链路聚合* 选择好模式之后,选择主设备和副设备,然后确定即可。设置好分组之后,要更新对应网卡英特尔官网驱动。