openwrt-mos icon indicating copy to clipboard operation
openwrt-mos copied to clipboard

MosDNS作为ROS上游,但是ROS的DNS缓存会出现TTL几十秒后过期,并且ROS的DNS缓存记录会出现正常域名被解析到0.0.0.0

Open gebilaozhaodezhaijidi opened this issue 2 years ago • 5 comments

希望大佬在日理万机的生活中,挤出一点时间帮忙分析一下问题出现在哪里。

#网络架构: 主路由是ROS,旁路由固件是lean大源码并且加入的此项目的源码所编译的固件,MosDNS在OpenWrt中作为国内外DNS分流并且重定向到5335,国内通过修改library.sh内上游地址为127.0.0.1:5336,5336服务是AdGuard Home,作为国内DNS请求服务器,远程DNS为默认的8.8.4.4,并且ssr插件强制代理。

#问题现象: 如果ROS的DNS地址填写为OpenWrt地址,ROS的DNS缓存列表就会出现大量正常网站的TTL几十秒后过期,并且缓存记录会出现正常域名被解析到0.0.0.0,并非广告域名,有些网站第一次被正确解析,第二次或者换浏览器访问同一网站就会提示DNS错误,如果ROS设置劫持DNS请求并转发到OP或者PC机DNS直接填写OP,就不会出现上述现象。

#排查过程: 排查发现,如果禁用def_config_orig.yaml内qtype65相关插件,可以解决第二次请求打不开网页的问题,但是TTL几十秒后过期及正常域名被解析到0.0.0.0,并没有的到解决

WechatIMG129

屏幕快照 2022-11-12 下午6 29 35

gebilaozhaodezhaijidi avatar Nov 12 '22 10:11 gebilaozhaodezhaijidi

我也遇见这个问题,中间再套个smartdns才行:ros-smartdns-mosdns就解决了0.0.0.0

jcxq520 avatar Feb 28 '23 11:02 jcxq520

现在故障应该修复了吧,毕竟mosdns都大版本更新了。

daiaji avatar Mar 19 '24 10:03 daiaji

现在故障应该修复了吧,毕竟mosdns都大版本更新了。

我以前这几天刚改成ROS Dns指向openwrt的MOSDNS,也出现正常网站解析0.0.0.0的现象。

lengfwong avatar Apr 01 '24 07:04 lengfwong

现在故障应该修复了吧,毕竟mosdns都大版本更新了。

我以前这几天刚改成ROS Dns指向openwrt的MOSDNS,也出现正常网站解析0.0.0.0的现象。

可能是DNS解析本身被干扰了,这个我真没遇到过。

daiaji avatar Apr 01 '24 08:04 daiaji

抓了个包看了看,也发现了qtype 65的问题。 image 上网查了查,说是这种 qtype 65 HTTPS DNS查询是Apple 的IOS和Chrome浏览器会使用的加密DNS查询,Mosdns应该不支持。我用Mosdns自定义配置中这一段

- tag: query_is_reject_domain
    type: sequence
    args:
      - matches: qname $blocklist
        exec: reject 3
      - matches: qname $adlist
        exec: reject 3
      - matches:
        - qtype 12
        - qname $local_ptr
        exec: reject 3
      - matches: qtype 65
        exec: reject 3

调到查询域名sequence的前面,再看Ros 中DNS cache没有域名解析成0.0.0.0了,不知道你的管用不。

lengfwong avatar Apr 01 '24 16:04 lengfwong