1Gbps 真的不够用了吗?或许吧。但是考虑到现在的路由器动不动就 AC1900、AC2600、AC3200,只接一根 gigabit 网线肯定是无法提供那么大带宽的。这时候就需要靠网络连接聚合(LAG,Link Aggregation Group)来提升速度了。原理很简单,一根网线 1Gbps,两跟网线就是 2Gbps,三根网线就是 3Gbps……
服务器当然也可以这样搞。于是最近热衷于淘垃圾的我,又打开 eBay,在垃圾堆里找了一块四口 gigabit 网卡。
Intel PRO/1000 PT Quad Port LP Server Adapter
是的,这块网卡就是垃圾。网卡本身早就停产了,PCIe 接口还是 1.1 版本的,Intel 官方也从今年开始不再支持这块网卡了。但是能用就行,虽然是 1.1 版本,PCIe 4x 也能提供 10Gbps 的带宽,用来驱动四个 gigabit 连接绰绰有余。
安装驱动
Intel 官方支持页面说最后包含这块网卡驱动的软件版本是 24.0,但实际上这块网卡就没有 Windows 10 驱动。官方 24.0 驱动包里给的是 Windows Server 2008 的驱动,正常来说是无法应用在 Win 10 系统上的。
但是 INF 可以改的啊。把旧版本驱动伪装成支持 Win 10,再重启系统去掉驱动签名验证,安装上 Intel 本家的驱动之后,运行起来没有任何问题。
在交换机端设置连接聚合
我用的是 Netgear 24 口交换机,需要登录到管理页面设置参与聚合的端口。
然后打开连接聚合组。
在服务器端设置连接聚合
由于这块网卡官方已经明确表示在 Windows 10 下面不支持 Teaming 功能,所以也无法按照官方教程在硬件属性页面上设置 Teaming,因为属性页上就没有 Teaming 一项。
好在 Intel 提供了 PowerShell 工具。
首先加载 Intel ANS 模块。
Import-Module -Name "C:\Program Files\Intel\Wired Networking\IntelNetCmdlets\IntelNetCmdlets"
然后设置 Teaming。这里只要把网卡名称复制粘贴上就行。至于 Teaming 的模式,因为我的交换机只支持最基本的静态 LAG,所以我就选了 StaticLinkAggregation。如果交换机支持动态 LAG,也可以使用 IEEE802_3adDynamicLinkAggregation 模式。
Get-IntelNetAdapter
New-IntelNetTeam
最后设置首选卡。
Set-IntelNetTeam -TeamName "TeamEthernet" -PrimaryAdapterName "Intel(R) PRO/1000 PT Quad Port LP Server Adapter" -SecondaryAdapterName "Intel(R) PRO/1000 PT Quad Port LP Server Adapter #2"
这样 Teaming 就设置好了。
结局
好了,现在我有一条 4Gbps 的连接了,下面的问题是如何能用满这 4Gbps,看来还需要再开发其他的新玩法。
后续
为什么没有使用 Broadcom 或者 Realtek 的四口网卡?
因为 Intel 这块网卡便宜啊!
其实同为 Intel 网卡,其他还能获得官方支持的型号,比如 Intel I350-T4,都要比 PRO/1000 系列网卡贵很多,价格大概是 2-3 倍的关系吧。
运行 PowerShell 时提示必须包括使用 Intel 网络技术的网卡?
这是因为驱动程序没有正确安装。这块网卡默认安装的是微软提供的驱动程序,需要手动更新为 Intel 驱动。更新之后有时需要重启才能生效。
交换机不支持连接聚合?
其实还有个折衷的方案:利用 Hyper-V 的虚拟交换机做聚合。这种聚合方式一般是为了提供网络冗余容错,也就是一条连接断掉了还有其他连接可以使用。目的并不是增加网络带宽。
使用这种聚合方式要先启用 Hyper-V 功能,然后使用 PowerShell 命令
New-NetSwitchTeam -Name "以太网组合" -TeamMembers "以太网 2","以太网 3","以太网 4","以太网 5"
注意这里使用的是网络连接名称,而不是网卡名称。
为什么不能用 New-NetLbfoTeam
因为 Windows 10 1809 更新之后去掉了对 LBFO 的支持。