#14063–Thinking about changing the primary language of this blog.

Just discovered that Google Translate did a good job in translating this blog…

I do want to increase my existence in the broader sense of “internet”, not just the close circle of Simplified Chinese users. It feels more restricted when I write something that I know only a handful of readers would notice and understand, and even more important, a handful of the former mentioned handful who could access these things freely.

The change may not proceed as my English writing is a total mess. And no matter what I do, I’m of a dying breed which is still living in the pre-2.0 days of Geocities and personal sites.

Resistance is futile. Especially you are bad at it.

#14049 – 网中神(kami caught in the net)

covid康复了应该干啥?

把全家的主干网络换掉!(死)

我家的网络本来是这样的:

Drawing1

为什么会有两个WAN?历史遗留问题:我家是城乡结合部,以前这片只有电信ADSL,后来有移动FTTH了以后就立马整了一个,加了一个TPLink的双WAN路由器做了双WAN分割(我不是很喜欢路由器上面做负载均衡,因为发现设置非常难做)。最后电信也提供FTTH了(搞活动把老娘骗了去),于是就形成了现在的双WAN局面。

原来出口路由和第二层NAT(家里其他人用)的WVR300是一样的,后来死掉一台(坏掉一个eth口好像)以后换了台电信定制的国产思科垃圾,转发性能几乎翻倍,真是不知从何说起。

家里的面积和楼层都偏多(死),因此单一WiFi热点覆盖是不可能的,之前用2.4GHz AP+Client+AP桥接的效果并不好,发现了SF1200这种200块钱不到的双频设备以后转用了5GHz Backbone+2.4GHz Cover的设置。(在这之前用过思科的fat AP蘑菇头,覆盖神奇糟糕……)

我自己的第二层NAT是一台垃圾成色的石头RT-N16。之前我的NAT是同一家的WL-500GP,热点也是他们家的RT-N12,不过N12的ddwrt一直工作不稳定,后来换思科蘑菇头AP不久就换了N16将自己的主干升级到GBE。

那台N16真的是垃圾成色,主板的腐蚀斑相当广大……

这样的配置一直用到了上个星期的某天。然后我做了一件很愚蠢的事情:清洁。

就是拖把捅了一下放这些乱七八糟东西的下方而已!

然后就不知道哪根线松了,整个网络忽然变得完全不能忍受,我的LAN内部丢包神奇严重,WiFi生活不能自理,就连几乎不用维护的另外一套NAT系统和主干NAT好像都在发瘟……

好吧,大概是网线松了,我的网线都是之前20年从不同渠道收集回来的各种乱七八糟的玩意,用在GBE上能跑出速度本身就是奇迹了。买了新网线,全部换了一下,有线和另外一个二层NAT基本上稳定了,但是我这边的WiFi不知道为啥还是不堪入目……

结果我做了对网络基础设施能做的最蠢的事情:刷新版固件。gl.inet的固件说实话并不算很糟糕,但是升级固件真的不能偷懒保存已有的设置记录……又折腾了好些天,恢复了两次出厂设置,才把SF1200的3.203升级到3.215,顺便成功配置好了之前3.203上完全不能正常运行的SNMP服务,可以在服务器上统一用PRTG记录这些设备的运行情况。

我的5GHz远端的Client+AP在升级之后一直有2.4GHz Cover不能连接到LAN的问题,后来发现是自己傻X在整理interface的时候将sta-bridge(类似这样的名字)干掉了,所以5GHz和2.4GHz之间的桥接就废了……

在外面跑来跑去的时候用的GL-E750也升级到3.215,自己修改的WiFi开关和脚本也是生活不能自理,后来修改了一下好像好了一点点,不过直到今天感觉还是不如以前……


搞完一轮以后,我还是看啥啥不顺眼……

首先N16的网口真的很flaky,稍微碰一下就松了。毕竟是腐蚀成那样的东西……

此外就是我家的出口其实早就被运营商“升级”到了200-300Mbits/s的带宽,从出口到第一层NAT的线都是GBE,但是第一层到第二层之间只有100M的链接,好像还真有点浪费,家里的人也经常嚷嚷网不好(虽然我是觉得国内什么网都不好使)……

于是决定下血本全面更新。

本来东西是一起下单买的,但是最近的物流真的非常神奇,所以我先收到了自己那层的NAT的更新设备:GL-AX1800。

WiFi 6和我没关系,因为我放这个东西的地方不适合提供任何信号覆盖,我原来的WiFi覆盖也尚算可用。和N16相比的话,这机器的转发性能还算可以,软件稳定性也比之前刷的openwrt好一点。

安稳了两天,因为不可抗力(快递公司说的)延误了很多天绕了小半个珠三角才来的TL-R479GP-AC也来了。本来真的不是很想用TPLink,但是多WAN解决方案里最省心的就是这玩意(我没空折腾软路由和各种软路由系统)……

将原来的设备参数转过去(LAN IP设置,带宽限制,诸如此类),一台放在主干,一台放在家里人用的NAT,几乎是即插即用。有线测速也没有让我失望,全GBE的主干和分NAT的带宽全出来了。家里人那边有一个远端AP不好用,索性拿掉了,似乎对覆盖影响也不大。

现在的网络拓扑就成了这样:

Drawing2

然后我的真正的麻烦才开始……


我的一对Thinkpad X1 Yoga Gen 3之前手贱换了烟条的AX201,因为我要比水果牛逼(死),而且有消息说AX201在信号上的表现比8260(之前用的WiFi网卡)要好很多,于是买了一对换了。

然而一直都跑不出啥速度,而且我的笔记本在床上用的时候有非常神奇的问题:方向和网速有关……机器竖起来放在某个墙角的方向的话网速会变得极端缓慢。无线宽带测速的结果也非常亮眼……地慢。

发现iperf3是一个非常简单地就能用起来的工具之后,我在AX1800以及第一个SF1200上装了iperf3服务端,然后用笔记本测速,居然连802.11a/g的速度都跑不出来……

然后换回去之前的8260,主观上似乎有些进步,但是iperf3的测速还是在同一个水平上,于是又换回去AX201……

结果这个星期一上班的时候无聊用上班的电脑测一下到随身路由器的WiFi速度,发现是我平时整天用的机器的2倍……

#@!%$%#@……

左思右想,只能想到一个问题了:这个机器的辅助天线的插头插进去的时候就感觉不大对劲,而且当初撕掉4G天线的时候好像伤到了铜箔……

换!……幸好家里有备件,但是换A壳(直接换天线其实和换A壳工作量差不多,还要设法从外壳上完整分离那个脆弱的铜箔天线)花了我接近1.5个小时。

然后好像真的好了一些些,至少能跑出接近11g的速度了……

11g的速度,20年前的水准……算了。


教训?

1.千万不要手贱升级固件!!!!!!!!

2.WiFi天线的质量很重要。

3.网线一定要插紧……

下次更新大概是2030年前后,为了解决2038问题。

假设还有2038甚至2030……


关于GL-E750的硬件开关改成5GHz WiFi开关的办法(2.4GHz也能用,修改一下wifidevice的interface名称):

1.修改/usr/bin/switchaction:(自己找对应的地方修改,我不认识怎么写代码)

toggle_tor(){
         local action=$1
         if [ “$action” = “OFF” ];then
                 uci set wireless.@wifi-device[0].disabled=1
                 uci set wireless.@wifi-iface[0].disabled=1
         else
                 uci set wireless.@wifi-device[0].disabled=0
                 uci set wireless.@wifi-iface[0].disabled=0
         fi
         uci commit wireless
         wifi
}

在下方toggle_tor ON的地方修改代码如下:
“tor”)
         device=$(uci -q get wireless.@wifi-device[0].disabled)
         ap=$(uci -q get wireless.@wifi-iface[0].disabled)
         if [ “$device” = “1” -o “$ap” = “1” ]; then
                 toggle_tor ON
         fi
;;

在下方toggle_tor OFF的地方修改代码如下:

“tor”)
         device=$(uci -q get wireless.@wifi-device[0].disabled)
         ap=$(uci -q get wireless.@wifi-iface[0].disabled)
         if [ “$device” = “0” -o “$ap” = “0” ]; then
                 toggle_tor OFF
         fi
;;

3.215版本的代码会定期检查开关状态而且重新执行这部分代码,所以可以看到其他条目里的代码都有check_vpn这一项,就是为了不用重复执行启用或取消VPN的功能导致网络中断。如果不加上检测wifi是否被停用的部分,wifi的信号会很不稳定。

2.(可选)修改/usr/bin/switch_queue:

“tor”)
         e750-mcu ”                Turning WiFi ON”
;;

“tor”)
         e750-mcu ”                Turning WiFi OFF”
;;
“*”)

3.在gl.inet的定制界面里将侧方开关的功能修改为启用/停用tor。

4.最好重启。