openwrt-mos
openwrt-mos copied to clipboard
MosDNS作为ROS上游,但是ROS的DNS缓存会出现TTL几十秒后过期,并且ROS的DNS缓存记录会出现正常域名被解析到0.0.0.0
希望大佬在日理万机的生活中,挤出一点时间帮忙分析一下问题出现在哪里。
#网络架构: 主路由是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,并没有的到解决
我也遇见这个问题,中间再套个smartdns才行:ros-smartdns-mosdns就解决了0.0.0.0
现在故障应该修复了吧,毕竟mosdns都大版本更新了。
现在故障应该修复了吧,毕竟mosdns都大版本更新了。
我以前这几天刚改成ROS Dns指向openwrt的MOSDNS,也出现正常网站解析0.0.0.0的现象。
现在故障应该修复了吧,毕竟mosdns都大版本更新了。
我以前这几天刚改成ROS Dns指向openwrt的MOSDNS,也出现正常网站解析0.0.0.0的现象。
可能是DNS解析本身被干扰了,这个我真没遇到过。
抓了个包看了看,也发现了qtype 65的问题。
上网查了查,说是这种 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了,不知道你的管用不。