家中网络拓扑基本是这样的,用了一个旧笔记本做装Ubuntu做NAS,外接了8T的USB硬盘。Windows的台式机和MacBook Pro都使用WiFi接入局域网。
所以尝试使用端口聚合吃满访问Smb时的WiFi6的带宽。
802.3ad layer3+4模式
红米AX6000使用官方固件并开启SSH,实际上官方固件在WEB页面可以直接打开端口聚合,在Shell下可以看到开启后工作在802.3ad layer3+4模式下,各种模式的区别可以在下面的链接找到,这里不再叙述networking:bonding [Wiki] (linuxfoundation.org)
Ubuntu那边可以使用nmtui添加一个Bond,模式选8021ad,把需要的网卡添加到这个bond里。
但是这里配置后默认是layer2+3模式,对于相同MAC+IP只能走一个通道,所以还需要修改xmit_hash_policy=layer3+4,对于Ubuntu Desktop,NetworkManager的配置文件在/etc/NetworkManager/system-connections/,找到对应的配置文件并添加。
从路由器测试到Server的网络速率:
iperf3 -c 192.168.2.100 -b 0 -P 10 -t 30
iperf3 -c 192.168.2.100 -b 0 -P 10 -t 30 -R
这样看使用iperf3测试双向都有速度叠加。但是实际使用smb并不会叠加,因为这种场景下smb并不符合layer3+4的均衡规则,这个模式适合多终端同时使用的场景。
balance-rr 模式
这个模式下两张网卡会交替发包,理论上支持单链接的速度叠加。
Ubuntu那边还是比较方便,使用nmtui修改模式为balance-rr即可,注意需要重启网络。AX6000这边需要关闭原来的链路聚合功能,因为需要聚合的是路由器端口3和端口4,实际端口为eth0.1 eth0.2,所以聚合这两个端口。
ip link set bond0 type bond mode balance-rr
ip link set eth0.1 down
ip link set eth0.2 down
ip link set eth0.1 type bond_slave
ip link set eth0.2 type bond_slave
ip link set eth0.1 master bond0
ip link set eth0.2 master bond0
ip link set bond0 up
这样做还不够,需要把bond0添加到land中,修改/etc/config/network,去掉lan中的eth0.1 eth0.2并添加bond,最后重启网络/etc/init.d/network restart
config interface 'lan'
option force_link '1'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option multicast_querier '0'
option igmp_snooping '0'
option macaddr '44:df:65:6f:43:9e'
option ip6assign '64'
option ipaddr '192.168.2.1'
# option ifname 'eth0.1 eth0.2 eth0.3 eth0.4 eth0.6'
option ifname 'eth0.3 eth0.4 eth0.6 bond0'
还是从AX6000测试两个方向的网络速率:
可以看到速率还是有叠加,但是重新传输的包数量非常多,可能跟乱序有关。使用smb实际测试一下文件传输速度,非常低
SMB Multichannel
如果单用户使用大数据传输均使用SMB协议,可以直接使用SMB Multichannel功能。这个功能对交换机和网卡0配置,只需要在SMB Server的配置文件/etc/samba/smb.conf中添加
server multi channel support = yes
aio read size = 1
aio write size = 1
Windows端连接SMB后可以看到一张网卡的连接了SMB不同网卡的IP
下载:
上传:
比较奇特,上传的速率是叠加上了的,下载没有,可能是因为Client这边只有一张网卡。
MacOS?
测试环境:MacBook Pro M1Pro 14寸
MacOS也支持SMB多通道叠加,但是看水果的逻辑,单网卡是不会去Link多通道的。
测试了下SMB的文件传输性能,也符合预期、
不过我看了下WIFI的链接速率也只到1200Mbps。根据苹果给的指标,只有M2 14寸和16寸才有2400Mbps。
而且高负载的时候还要掉速,符合我对苹果一贯的刻板印象。