家庭网络出口劫持排查记


要说Homelab的话,能说个一天一夜还停不下来。作为系列里的第一篇文章,竟然是一个排错文。

Homelab和和普通数据中心一样,硬件部分也分三大件:计算、存储、网络。在计算机硬件极其便宜、存储极其便宜、家用宽带也极其便宜的情况下,家庭数据中心的主要成本还是运营成本,即人的维护成本。

这不,家庭的主路由器又出问题了。

为了测试Nessus的扫描能力,又不想在公司的管控环境中做这个事情,于是在家庭的PVE中克隆了一个虚拟机装上Nessus,一扫描发现不对了。竟然所有的端口都是开放的!

太长不看版

关掉爱快的 开启增强分流功能即可

背景

家里在之前使用的是 R4S,一个比较热门的国产软路由,刷了openwrt固件,但是有一天晚上,回家之后竟然不能上网!

具体表现为LAN-LAN可通,LAN->WAN不可通,路由器到WAN可通。

遇上第二天又有ddl,当晚又得恢复网络又得赶工作进度,真是十分心塞。于是紧急下单了一台iKuai的企业级路由器。

https://pic.imfht.com/image/54491ed2fb3f168d1eae7eaa34ddefc95fd868f83652e4c19a62d4e34fdca3c1.png

机器本身不错,做工也结实,各种有用没用的功能也很齐全,但是竟然出现了端口全开的故障,TCP通信被劫持了。

回到家,抓包分析之。

问题复现/排错

测试方式:在LAN口的机器(192.168.11.8)上使用nc 连接 1.1.1.2 的1112端口,同时在爱快路由器上抓包。

从iKuai的WAN口数据看,一切正常,公网的出口尝试连接1.1.1.2 的1112端口(一肯定不开放的端口),对方无响应之后触发重传。
https://pic.imfht.com/image/2539f1a93f2beddf7c0f04f925255dcae2b04fb254d0e4cf5bda66f922ac1eaa.png
对iKuai的LAN口进行抓包,这个抓包数据看就不正常了,如下图,竟然返回了Syn+ACK。
https://pic.imfht.com/image/ac21462c57de136b37611931c943f17bc5f9782e36b63834a176bce096cfbb5b.png

百思不得其解,从爱快后台中找各种开关,也没有思路。就在差点要放弃的时候。发现一个隐蔽开关,开启增强分流。没错,关掉这个就好了。

https://pic.imfht.com/image/485f16e8139a57899985fc648b8001c88ea0aa46a3692a531221ad37c28cc9c0.png

这个增强分流的方式,我估计是:路由器LAN口劫持TCP流量,在WAN口自己维护一个流量状态机,然后按需转发给对应的LAN地址。

这种破坏TCP协议栈的东西,显然存在应用的兼容性问题:LAN口TCP握手成功之后,会尝试发送数据包,进行TCP重传等一系列行为,影响程序性能,造成网络内无用的数据包传输。

结语

Homelab极致的成本优化带来了很多的维护成本。后续我也抛弃了性能赢弱的爱快路由器,换上了更为纯粹的TPLink企业级一款企业级路由器。我在下篇文章再来聊这个新的路由器,好不好,以及为什么好。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注