公寓俩AP信号相对好点,但有时只有1m的下行连接。几十K,现在京东最低10m才能流畅看(图)的时代约等于断网,谁差这点流量(不刷抖音肯定用不完)。还有俩AP信号时有时无,但只要连上,就很少出现1m的连接……

以前想象过mwan3多线,但电脑只有P2P下载,手机只有极少情形(同时更新系统/应用)才有用。但最近都在爬数据,简单的爬虫4线程能跑满50m,典型的高并发(100多RPS),而且时不时掉到几十K很扫兴,高性能/高可用都需要。或者说,后者是前者的基础,跳过1m下行连接就有机会几百K乃至过M了。

多拨?多路无线中继?

mwan3通常用来多拨,单线(macvlan虚拟多网卡)、双线(端口聚合以突破物理端口限制,千兆套餐达速1.2G的运营商预留带宽)或多线(千兆套餐只能多物理线路),很多人懒得动脑就沿用。

多路无线中继似乎更准确,然而,如果在低频以客户端模式连接(WWAN),低频的远程AP信号并不会被增强,中继应该用客户端(WDS)模式。OpenWRT默认的扫描/加入其它网络,就是非WDS/非无线中继客户端,而且没必要每路接入都开中继。扫描低频就知道如今信号相互干扰有多严重了。

实际上只是对多路无线接入进行负载均衡,也可称之为无线端口聚合,因为接入的无线网络以wwan虚拟端口存在。其实,接口(Interfaces)几乎都是虚拟端口:LAN(包含若干个局域网端口)、WAN、WAN6、WWAN。只有WAN和物理端口一一对应,也只因为默认单线接入。

无线还是有线接入?

一个路由器,一个频段虚拟多个WWAN,再负载均衡当然最好。然而我试了N次,不可行。一个频段可虚拟多个不同模式的无线网络,譬如分别基于客户端/接入点模式,但不能同时基于客户端(WWAN)模式。若同时接入不同的AP,一个掉线了才会连另一个。我有俩选择:

  1. 外接USB网卡接入多个AP:编译无线网卡驱动很麻烦。要一个一个搜芯片名,几乎没自觉标出这最关键信息的制造商……万恶的小螃蟹,8192德国和瑞典能分出俩驱动……8188刷了不识别(wifi detect/config),大家都说好的mt7601,试了俩网卡都不认……见识下多麻烦,一家厂一芯片就能折腾几十种驱动,这里还只是已“支持”有限的几种……就算相同芯片,做成网卡后,路由器也未必认……
  2. 只能用其它路由器,分别接入不同AP,再用网线多路接入主路由:如图MiR4A的LAN接入MW4530R的WAN,WAN旁边的LAN转为WAN接入另一路(DIR505),最右的LAN接电脑(蓝色扁平线)。MW4530R用了8年宝刀未老,MiR4A去年618都降到74,开源社区还没做完交换机功能……LuCI没交换机就没VLAN,就不能LAN转WAN,只能WAN+自身无线接入双路接入。而MW4530R可以接入五路,如果能接受不稳定的无线连接甚至可以接入六路(自身无线接入+5千兆口),最好的情况AP1可下行40m,大部分情况不超过20m,6路共120m,上上代WiFi的MW4530R不会成为瓶颈(2×2最大128m)——当然如果任一AP稳定40m下行,我也没必要这样折腾了……这事教育我们别乱扔过时电子产品,说不定哪天就有大用了,我刚好有仨上上代无线路由器……

LAN转WAN、配置mwan3

一开始参考WAN转LAN,然后反向操作。然而,所有的LAN在一个网段/VLAN,每一个WAN必须在一个单独的网段/VLAN。如果理解成WAN都在同一个VLAN,只要LAN改的WAN接上网线就断网了,如上图MiR4A的LAN接MW4530R的WAN(最左USB旁)……

搜了仨教程,广域网加速讲的最明白,附上我的分组:

CPU这列可以忽视,截这么宽只为保留添加的描述(左起第二列)。简单说就是LAN所在VLAN1(第一行)全都不标记(LAN 2/3/4),其它(除CPU)都关闭,每个WAN各占一VLAN并且不标记(原WAN/LAN1转的WAN1)。不在此VLAN的端口,在此VLAN中当然关闭了。有几路无线接入就有几个VLAN——自身无线接入(一个)+其它路由器有线接入(多个)=LAN网段(一个)+各WAN网段(多个)。

头晕就在于不标记/标记的区别,这是对CPU而言,系统/CPU根据标记的VLAN ID分隔不同网段。至于为什么要普通用户琢磨透,可能开发者想当然了吧,就现有功能而言完全多余。

划分好网段/VLAN还要新建接口(WAN1),并配置mwan3,照上面教程做即可。

三路无线接入:本机wwan、MiR4A接wan(掉线)、DIR505接lan1转的wan1。然而,即使MiR4A在线3小时,带宽倍增的目的并未实现。折腾的目的为保证满载4线程爬虫必需的带宽(50m),结果却才几十、几百K,反而不如原来的单路无线接入(wwan)。

而且MiR4A接wan、DIR505接lan1转的wan1分配的流量非常低。应该均匀分配,但百度IP会发现一定时间段内IP不会变。

“mwan3用标准Linux策略路由和负载均衡多路流量,流量的分配以每个IP连接为单位”

白折腾十多天……这就不只是域名只能利用一路接入……譬如www.qidian.com和m.qidian.com,尽管后端服务器绝不止DNS记录里几个IP,对用户而言IP都一样。

分给美国以外IPv4数量很稀缺,网站也用负载均衡,一个IP对应后端很多服务器。同一个IP后面的N个网站,都只能利用一路接入,而不管接入了多少路。除非再折腾对DNS进行负载均衡——大部分公共DNS只返回一个IP,可以搭建本地DNS收集所有记录,这样就可以通过多个IP利用多路带宽。

唯一的收获,只是增加了故障转移功能/failover,但还需要优化,现在彻底断网才会换端口,但无线连接变成了1m就该切换到别的无线接入。

然而,现实却没多少挑捡的机会,就流量而言,以前最好用的AP(wan)最近信号一向不佳,甚至不如时有时无的wan1……免费宽带能用就行了,至少现在做到了高可用……而且一个凑合(很少超2M)、一个最近够呛(很少超10m)、一个时有时无,没必要再折腾基于DNS的负载均衡,合并也增加不了多少带宽。

使用一段时间,并不如预想的“高可用”,多路接入反而更卡顿……