轶哥

妄图改变世界的全栈程序员。

win10链路聚合,双网卡带宽叠加负载均衡
  •   更新:2021-02-06 10:31:36
  •   首发:2021-02-05 19:03:23
  •   教程
  •   25606

设备具有两个及以上网卡就有可能实现链路聚合,进行带宽叠加。windows平台提供了一些链路聚合的实现方案。

链路聚合方案

  1. 双网卡都设置同样的跃点数(Metric)。需要符合链接速度,参阅
  2. NetSwitchTeam(推荐)
  3. NIC 组合(仅windows server平台)
  4. Intel® PROSet(仅用于Intel部分网卡,需要驱动支持。详见官方文档,不再赘述)

方案说明

设置相同跃点数

任务管理器中看到两个网卡都有数据流量,这并非说明操作系统支持自动带宽叠加,这是默认策略导致的。

例如操作系统会发送简单的请求以判断网络连接的可用性。这就可能导致看到两个网卡都有少量的数据流量。

在默认情况下,无论路由优先级(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实现多通道负载均衡。

%E8%B7%83%E7%82%B9%E6%95%B0.png

若要配置跃点数,请执行以下操作:

  1. 右下角网络图标右键或打开系统设置界面,点击 **"网络和Internet"**,选择 "更改适配器选项"
  2. 右键单击网络接口,然后选择"属性"。
  3. 单击 INTERNET 协议版本4 (TCP/IPv4) ,然后选择"属性"。
  4. 在"常规" 选项卡上,选择 "高级"。
  5. 若要指定跃点数,请在 "IP设置" 选项卡上清除 "自动跃点" 复选框,然后在 "接口跃点数" 字段中输入 您需要的指定的跃点数

通过Windows PowerShell(管理员)执行route print,可以查询路由表,其中明确标明了各个接口的跃点数

NetSwitchTeam

NetSwitchTeam是实现win10链路聚合的推荐方案。同样的,该方案不会叠加内网点对点传输的速率。

通过Windows PowerShell(管理员),执行Get-NetAdapter查看当前网卡列表详情。

NetAdapter.png

创建一个NetSwitchTeam

PS C:\>New-NetSwitchTeam -Name "SwitchTeam01" -TeamMembers "Ethernet 2","Ethernet 3"

Ethernet 2Ethernet 3就是Get-NetAdapter得到的Name值,可以是中文,例如以太网 4

image.png

此时访问网络连接状态,可以看到SwitchTeam01的速度是2.0Gbps

SwitchTeam01.png

此时通过外网测速能够看到明显的叠加效果。

360.JPG

删除switch team

PS C:\>Remove-NetSwitchTeam -Name "SwitchTeam01"

更多

NIC 组合可以获得更佳的网络负载均衡和故障转移能力。但是目前只适用于windows server服务器操作系统。如果有兴趣可以研究在win10中进行实现。

无论何种带宽叠加方案,都依赖于上层设备带宽支持。例如将两个1G的网卡进行链路聚合,需要交换机至少为2.5G交换机。

打赏
交流区(30)
民谣狗

设置跃点数成功叠加网络,移动1000m+电信200m,下载速度120m/s。不过如果我玩lol网游选择电信区,电脑是否会优先选择电信连接游戏服务器?

2021年9月6日 06:16回复
轶哥

不会的。如果要实现这样的需求,需要使用爱快openwrt mwan3之类的分流路由器软件。

2021年9月6日 06:31回复
Baby雨菲兒

你好轶哥,我用的爱快路由做小区宽带,用户那边的网速一直上不去,请问能不能给技术指导一下。

2021年11月3日 02:21回复
轶哥

您好,爱快公众号可以咨询爱快在线客服,很多问题的咨询都是免费的,他们非常专业。我对小区宽带网速问题没有研究过哈。

2021年11月3日 02:34回复
Baby雨菲兒

好的轶哥,感谢回复。

2021年11月3日 06:05回复
Curtis

如果使用 New-NetSwitchTeam 聚合 Add-VMNetworkAdapter -ManagementOS -Name net2 -Switch S1 hyper-v虚拟交换机开出来的网卡,聚合之后的SwitchTeam01又申请了一个ip,相当于聚合无效又变成一个网卡的速度了

2022年10月23日 03:43回复
Curtis

其他的网卡根本不走数据不知道怎么回事

image.png

2022年10月23日 03:46回复
轶哥

该方案不会叠加内网点对点传输的速率。是使用类似迅雷的并发传输吗?

2022年10月23日 03:51回复
Curtis

该方案不会叠加内网点对点传输的速率。是使用类似迅雷的并发传输吗?

是的,迅雷,并行四项下载

2022年10月23日 03:52回复
轶哥

方便再详细描述一下你的网络架构吗?

2022年10月23日 03:57回复
Curtis

方便再详细描述一下你的网络架构吗?

嗯嗯,我希望能深入交流一下,感谢。

网络拓补图如下:

image.png

2022年10月23日 04:09回复
Curtis

方便再详细描述一下你的网络架构吗?

是这样的,交换机那边有个流控,每个ip只能获得10mbps的网速,我希望通过虚拟网卡进行多播,然后再通过链路聚合进行提速

2022年10月23日 04:11回复
Curtis

方便再详细描述一下你的网络架构吗?

这里用curl测速是可以同时并发的

image.png

2022年10月23日 05:00回复
轶哥

我详细看过了,按你的需求应该配置对了。通过curl可以聚合的话,估计就是迅雷配置的问题了。也许流控系统阻止了迅雷?

2022年10月23日 05:18回复
Curtis

我详细看过了,按你的需求应该配置对了。通过curl可以聚合的话,估计就是迅雷配置的问题了。也许流控系统阻止了迅雷?

不不不,这个curl测速的时候我取消了聚合。如果开启聚合之后curl也是一样的,跑步到这么高,还是老样子只有一个网卡的速度10mbps

2022年10月23日 05:19回复
轶哥

按说交换机不应该申请IP。要不取消聚合、删除交换机,设置各个网卡跃点数一致,再试试迅雷。

2022年10月23日 05:31回复
Curtis

按说交换机不应该申请IP。要不取消聚合、删除交换机,设置各个网卡跃点数一致,再试试迅雷。

hyper-v虚拟交换机并没有申请ip。申请IP的是switchTeam,并且不是申请了新的ip,它是直接复制了一个成员网卡的参数(ip、mac都一样)

取消聚合,跃点数一致的方案一我试过了,系统似乎只会选择一个网卡

image.png

聚合三个网卡并留下两个网卡之后,我再试了下idm和迅雷

image.png

image.png

2022年10月23日 05:36回复
Curtis

按说交换机不应该申请IP。要不取消聚合、删除交换机,设置各个网卡跃点数一致,再试试迅雷。

抱歉,拓补图应该是这样,S1是hyper-v创建虚拟交换机之后默认创建的第一个虚拟网卡(它会直接接替物理网卡的所有参数)。hyper-v虚拟交换机名称为 vEthernet (Default Switch)

image.png

2022年10月23日 05:44回复
Curtis

我详细看过了,按你的需求应该配置对了。通过curl可以聚合的话,估计就是迅雷配置的问题了。也许流控系统阻止了迅雷?

curl可以跑得同的原因是我指定每个下载的出口网卡

curl --interface,强制每个请求到指定的网卡

2022年10月23日 05:49回复
Curtis

按说交换机不应该申请IP。要不取消聚合、删除交换机,设置各个网卡跃点数一致,再试试迅雷。

刚才我又接入了一个物理网卡,测试发现虚拟网卡之间使用跃点数和nic teaming方案都无效。但是任意个数虚拟网卡(这些虚拟网卡是在一块物理网卡上开辟的)结合另一块物理网卡均可实现聚合,但是速度和单独聚合这两块物理网卡效果一致。那也就是这些虚拟网卡都是摆设

2022年10月23日 06:42回复
轶哥

刚出去做核酸了。 你说这种情况我是第一次遇到,正如你描述的一样,如果是多张物理网卡可以实现聚合。至于为什么一张虚拟网卡和一张物理网卡聚合可以而多张不行,这个我也不太清楚。不好意思。不过你的需求,或许可以考虑购置网管型交换机,有一种交换模式是无需对端开启聚合的情况下来聚合网速的。

2022年10月23日 07:46回复
Curtis

刚出去做核酸了。 你说这种情况我是第一次遇到,正如你描述的一样,如果是多张物理网卡可以实现聚合。至于为什么一张虚拟网卡和一张物理网卡聚合可以而多张不行,这个我也不太清楚。不好意思。不过你的需求,或许可以考虑购置网管型交换机,有一种交换模式是无需对端开启聚合的情况下来聚合网速的。

好的感谢

2022年10月23日 07:56回复
Curtis

我测试了Windows server 2019,在创建 NIC teaming 中一直出现

New-NetLbfoTeam : The parameter is incorrect. 搜了一下午好像没找到解决方案

image.png

image.png

image.png

2022年10月23日 09:00回复
轶哥

可以尝试调整一下每个接口的Teaming mode试试。我对这方面没有研究,无法给出进一步建议,不好意思。

2022年10月23日 10:10回复
NEO

我的NAS开启了lacp,交换机同时也支持lacp,我现在win11双网卡已经找不到NIC的解决方案了(New-NetLbfoTeam和Intel的PROSTET都不支持win11)。现在想内网访问NAS叠加只能用smb3,但是需要取消NAS和交换机的LACP设置(NAS变为两个IP),这样外网访问NAS就没有叠加提速了。轶哥有没有一个这种的方案能够同时实现内外网提速。或者win11有没有LACP的解决方案?

2022年10月26日 06:24回复
轶哥

NAS是1G+1G吗?如果是这样的话,可以购买支持lacp的2.5g交换机。

2022年10月26日 06:51回复
NEO

NAS,PC,交换机都是1G的,NAS,PC都是双网卡连接到交换机。用smb3可以达到2G,用NetSwitchTeam只能达到1G。

那意思是我换个2.5G的lacp交换机的话,在不用smb3的情况下,配置使用NetSwitchTeam可以实现2G网速传输吗?

2022年10月27日 02:45回复
NEO

NAS,PC,交换机都是1G的,NAS,PC都是双网卡连接到交换机。用smb3可以达到2G,用NetSwitchTeam只能达到1G。

那意思是我换个2.5G的lacp交换机的话,在不用smb3的情况下,配置使用NetSwitchTeam可以实现2G网速传输吗?

针对PC到NAS

2022年10月27日 02:46回复
轶哥

不可以。如果不用smb3,那么PC需要挂个2.5g口的网卡。

2022年10月27日 02:47回复
NEO

感谢👍

2022年10月27日 02:59回复
尚未登陆
发布
  上一篇 (Json Schema定义“既可以是对象,又可以是数组”)
下一篇 (brew安装python2)  

评论回复提醒