也许您已经运行 Ubiquiti 的产品一段时间了,您对他们的库存问题、愚蠢的软件问题以及普遍缺乏质量感到失望。也许您将目光投向了 TP-Link Omada 生态系统。我来这里是为了警告你,栅栏那边的草并不更绿。事实上它可能是喷漆的。
首先,一些背景。我是家庭系统管理员 – 不是我的选择,而是因为没有其他人会这样做。当我拜访家人时,我必须修理他们的东西。有一些减速机类型,我尽力让他们满意。各种 ISP 开始销售远高于 1 Gbps 的服务。这通常是对称纤维材料。
这就是我支持的一个网站的情况,他们几年前现有的 Ubiquiti 东西在安装后就成了瓶颈。显然,他们希望尽可能获得这种超越演出的表演。这意味着一两个呆板的 Windoze 盒子,这带来了处理资源冲突的地狱景象,这是我 20 年来从未见过的。
但不,这不是这个。这是关于 TP-Link 的。有人指出这个生态系统可能是逃离 Ubiquiti 小丑镇的一个可能,所以这就是我这次买的东西:他们的一个网关盒(称其为路由器太客气了)、一个交换机和一个用于本地控制-这里没有云垃圾,谢谢。
每周都会有一些新的愚蠢的事情发生。首先,该交换机确实最适合企业的壁橱,而不是家里的任何地方。它有极小的风扇,一直在努力运转,并伴随着噪音。取代他们的人总是会遇到风扇错误,然后一年之内事情就会自行消失。 (也许无论哪种方式,开关都会自行失效——这一点尚无定论。)
他们的控制器软件的最新版本完全无法在 Safari 上运行。我的意思是,当然,它会加载,然后浏览器开始在 Javascript 中的某处执行一些指示可怕的大 O 爆炸因素的操作。每当您移动指针时,它都会每次挂起一分钟。或者,它会提示您不断下载文件。就像,你在做什么内容型脑损伤?显然,这种情况在 Firefox 或 Chrome 中不会发生,但这仍然表明他们在开发 Safari 时甚至对尝试登录 Safari 都给予了零的对待。您知道每个 Mac 和 iOS 设备都附带的浏览器吗?
因此,您必须回滚控制器才能摆脱这种混乱。这样做会擦除您的配置。对我来说幸运的是,我在将其拖到现场之前在自己的住所进行早期测试时发现了这一点,并且没有实际的配置丢失。
接下来,他们的 NAT 实现简直令人讨厌。通常对于这种东西,如果您从内部向外部发送数据包,源地址就会从 RFC 1918 或您在内部使用的任何内容更改为您在外部使用的任何内容。就这么多。 TP-Link 生态系统中还发生的情况是,它们也会破坏您的源端口。这会影响 UDP 和 TCP。
为什么这很重要?这使得 NAT 破洞技巧更难实现。通常,您可以做一些有趣的事情,例如通过精确排列端口来配置 WireGuard 从任一侧穿透。这将使两个站点无需通过第三个固定点即可相互连接。如果第三个位置出现故障并且您需要一个 OMFG 后门进入您的网络,这将非常方便!
如果源端口发生更改,则此操作不起作用。到那时,你必须求助于各种令人讨厌的生日悖论类型的东西来解决它,这需要实际工作来实现它并保持它的工作。我,我不想把 TailScale 到处放。但我离题了。
上周,发生了一件非常糟糕的事情,由于我在远程,只能从这里做有限的事情,所以我无法解决问题。 HomeKit 的东西停止工作了。我的意思是,从本地 WiFi 上查看房屋就是通常所说的“没有在线集线器”的事情。但是,更奇怪的是,该 wifi 上的 HomeKit *客户端* 也无法 *向外* 连接到其他地点!他们也得到了同样的结论,即其他 HomeKit 位置没有集线器……即使这些位置实际上很好并且对其他人有效。
唯一的共同点是穿越 Omada 驱动的网络。在这种情况下,我运气不错,因为有一台 Mac,我可以跳进去,然后屈服,而且我做到了。我认为苹果云的路由可能有些愚蠢,于是开始通过隧道分流所有流量。没有任何帮助……直到我还将 Mac 上的 DNS 解析切换为我控制的解析器,而不是使用 TP-Link 网关盒内的任何解析器。
一旦我这样做了,它又开始工作了。即使我关闭了隧道,它仍然继续。这对我来说已经足够了。我在几个 Raspberry Pi 上自由站立,更改了 DHCP 配置,以确保客户端可以通过它们而不是 ER8411 网关解决问题。这花了一段时间,但最终,一切都不再愚蠢了。
现在,这里有一个重要的警告:我不 100% 知道它是这个东西中的解析器。我不在现场,在不将自己踢出网络的情况下只能做这么多,因为我的访问是通过这些设备进行的。另外,我的故障排除能力也受到了这些废话的限制,还有另一个原因,我稍后会讲到。
然后就是今天早上发生的事情。我的一位负责此设置的 Pi 决定不运行其 WireGuard 链接之一。同一接口上的另一个链接(前往另一个外部主机)很好。其他界面上的其他链接都很好。另一个Pi的两个链接也很好。
只是这个特定的协会没有发挥作用。因此,我再次进入 tcpdump,从链接的两侧查看它。我从里面看到的交流一遍又一遍地看起来像这样:
their_internal_ip.AAAAA -> my_external_box.BBBBB:udp 数据 (无回复)
但从外界看来,事情是这样的:
their_external_ip.CCCCC -> my_external_box.BBBBB:udp 数据 my_external_box.BBBBB -> their_external_ip.CCCCC:udp 数据 their_external_ip -> my_external_box:ICMP 端口 CCCCC 无法访问
所以,是的,即使它刚刚从该端口向我发送流量,但在回复后,网关盒拒绝了它。这对我来说是“非常糟糕的 IP 连接跟踪设置和/或实现,它放弃了关联并且不知何故没有将其恢复”。
此 WG 链路两端都有保持活动状态。这没有任何借口。正如上面所做的那样,一旦数据包发出,就应该在防火墙中建立它。但 ICMP 错误表明情况并非如此。
请注意,端口无法访问错误并非来自 Pi 本身。 Pi 只发送实际流量,不知道为什么没有得到任何响应。 WG 不会自行切换源端口,因此它只是不断地用头撞墙……一遍又一遍。
这让我感到沮丧:我想通过 ssh 进入该死的网关,看看他们做了什么,把事情搞砸了。我花了一段时间才找到启用 ssh 的旋钮,一旦打开,我发现了最大的侮辱:这是一个完全中性的界面。你不能做任何有用的事情。它是 busybox,“ip”实用程序,显然可以让您在采用过程不起作用时将其指向控制器。
苏?须藤?忘掉它。你甚至没有 /proc 在那里 – 所以没有 ps,没有 w。您无法运行 dmesg,因为它不存在(并且它们可能无论如何都会锁定内核环形缓冲区)。你是一个 luser,你将永远无法从这个设置中做任何有用的事情。
当受到追问时,技术支持人员会告诉人们,使用控制器时不支持此类操作 – 也就是说,基于网络的愚蠢尖头 UI 会进行设置并将其推送到设备。你知道,最新版本的 Safari 上就崩溃了。他们_故意_把你锁在门外。
最后,我还没有遇到过这个问题,因为这个网站的 ISP 在提供对整个互联网的访问方面仍处于黑暗时代,但听起来他们没有做任何类型的 IPv6 防火墙。因此,如果您的 ISP 打开了该功能并且您突然获得了分配,请留意世界!这是您网络上的狂野西部!
那么,让我们回顾一下这里的糟糕之处。
0. 开关噪音非常大。
1. 他们最新版本的控制器无法在 Safari 中运行。
2.当控制器确实很糟糕时,你不能轻易地回滚控制器。您最好在升级之前保存旧版本的配置,以防万一您必须返回。而且,如果你从未运行过那个特定的旧版本,那么你就完蛋了。
3. 他们的 NAT 实现不必要地破坏了源端口。当然,有些场景需要它。他们不断地这样做。
4. *某些东西*严重破坏了 HomeKit 通信,将客户端的递归 DNS 服务从网关盒提供的任何服务中切换出来修复了它。这可能是一些糟糕的 DNS 转发器实现,但我目前无法确定。
5. NAT 今天早上显然丢弃了一个关联,并且从未将其放回。在重新启动隧道以在客户端上选择新的源端口之前,我无法启动隧道。完全荒谬。
6. 忘记使用 ssh 来解决问题。发动机罩被焊接封闭。当其他物体之一决定站起来咬你敏感的地方时,你永远不会知道到底发生了什么。
7. 根据其他人在不同地方的报告,他们显然没有 IPv6 防火墙。 (这是我自己还没有真正遇到过的唯一一个……)
那么现在怎么办?老实说,我正在考虑回到 90 年代所做的事情:构建自己的 Linux 机器,并具有足够的马力来处理相关网络。它当时有效,现在又会有效。事情仍然会破裂,但至少我能够利用我的实际经验来做一些有用的事情。现在,我什么也做不了。我的手被绑住了。
为什么我认为这些小丑知道该怎么做?我曾在这个世界之内和之外待过,很明显他们没有。看看这些产品到底有多糟糕。