继续和 DNS 搏斗

/ dousha

透明的东西,只有一头撞上去的时候才会感知到它的存在。

刚刚上期我们和 DNS 搏斗了一番,现在我们又得搏斗了。如果说之前只是例行的 DNS 污染,现在则是直接按白名单解析了:几乎所有域名的 DNS 查询都会直接吃一个 Server failed. 而且这一把还会顺带把向其他服务器的 DNS 查询给一并拦截——不仅限 8.8.8.8, 阿里云的 223.5.5.5 也会被一并污染,厉害得不止一星半点。

我已经用 drill 工具排查过,如果直接使用光猫下发的 DNS 的话,真的是屁都解析不出来。咱不说国外服务,国内服务也是一片红灯。而且就算手动指定 DNS 服务器,还是只能吃 Server failed.

$ drill dsstudio.tech @223.5.5.5
;; ->>HEADER<<- opcode: QUERY, rcode: SERVFAIL, id: 40296
;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; dsstudio.tech.       IN      A

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 6669 msec
;; SERVER: 223.5.5.5
;; WHEN: Fri May  2 04:42:15 2025
;; MSG SIZE  rcvd: 31

一般遇到这种情况,我会怀疑是不是宽带费忘交了。结果一查宽带费还有一百多。

好吧,该修网络了。

谁在拦截 DNS 解析?

按惯性思维,这个时候要开始骂联通/电信/移动以及那个墙了。我一开始也是这么想的,但仔细排查之后发现其实不然。毕竟,真要干这种事情未免太激进了:它还顺便把许多国内的服务都给干趴了,真要是出现这种大动作也没理由网上一点反应都没有啊!

有些透明的东西,只有在它出问题的时候才会被感知到。而运行在路由器上的魔法工具,就是一个有能力劫持所有设备的 DNS 查询的工具。

嗯,结果是工具一关,解析(至少是国内部分)恢复正常。

一场精彩的钢筋蹩前轮

可能的问题

大概是 DNS 死锁吧。透明工具需要先解析出远端的地址,而解析这个行为又需要有一个可用的远端来提供(因为与 1.1.1.1 通联需要这个行为)。如果路由器重启,就有一定概率陷入到这样一个怪状态当中,导致除了预先定义的一些地址可用以外,其他 DNS 解析全部都被憋死。

那就只能选择不劫持局域网的 DNS, 并按照这篇博文的方案设置好 NAS 来提供域名解析服务。这样至少可以保证上面猜测的死锁问题不会发生。

正在加载评论……

发表评论

您的评论将由管理员审核后方可公开显示。

Your comments will be submitted to a human moderator and will only be shown publicly after approval.