【Openwrt】DNS污染分析,问题100%复现
本帖最后由 JasonB 于 2023-5-28 20:11 编辑本帖最后由 jasonbili 于 2023-5-26 22:07 编辑
A和B网络是两个独立的网络,没有任何物理连接。
在B网络下,软路由运行在虚拟机中,软路由作为旁路由,用软路由里的PW插件运行着魔法,手机的网关是软路由地址,手机上国外网站,显示手机的IP和DNS都是美国的。
在A网络下,软路由运行在虚拟机中,软路由作为旁路由,用软路由里的PW插件运行着魔法,手机的网关是软路由地址,手机上国外网站,显示手机的IP是美国的,但是DNS是国内的。
故障分析:
1、一开始以为是软路由设置问题,所以将B网络的软路由系统复制了,放到A网络的虚拟机里,问题依旧,显示手机的IP是美国的,但是DNS是国内的。(所以不是软路由设置问题)
2、将电脑网关改成软路由地址,显示电脑的IP是美国的,但是DNS是国内的。
3、将手机网关改成主路由地址,手机里的小火箭运行魔法(软路由和手机是同一个魔法节点),显示手机的IP和DNS都是美国的。同样方法在电脑上试了一下,显示电脑的IP和DNS都是美国的。
4、两个网络的手机都是静态IP和静态DNS,DNS是软路由地址。
5、无线路由(192.168.1.3)是运行在AP模式下的,主路由(192.168.1.1)是一个H3C企业路由器(是企业路由器导致这种问题?)
6、两个网络均没有IPV6环境。
问题分析:
1、请问这个现象属于DNS污染吗?
2、是什么导致出现DNS异常的呢?应该如何解决?
A的网络拓扑图如下
[睡觉]没啥有用的信息啊,PW插件我也没用过,
看一下两个网络里DHCP下发的DNS是啥呗,也要注意一下ipv6。 正常的B和A有什么不同呢 monkeylab 发表于 2023-5-26 22:32
没啥有用的信息啊,PW插件我也没用过,
看一下两个网络里DHCP下发的DNS是啥呗,也要注意一下ipv6。 ...
PW是passwall。
两个网络的手机都是静态IP和静态DNS,DNS是软路由地址。还需要什么信息,我补充一下。 同样遇到这个问题,没发现解决办法。估计是看对方是怎么测出DNS的。等大佬解惑。 JasonB 发表于 2023-5-26 23:25
PW是passwall。
两个网络的手机都是静态IP和静态DNS,DNS是软路由地址。还需要什么信息,我补充一下。 ...
两个环境都有ipv6嘛?我看到这个问题第一反应是一个网络有ipv6另一个没有,然后pw没有处理ipv6dns就会出问题。 iooo 发表于 2023-5-26 23:16
正常的B和A有什么不同呢
两个网络拓扑都是一样的,设置也一样。就是显示的DNS不一样。 可以试试把AB的网络WAN口互换 看看问题是否会交换 这不算DNS污染
DNS归属地检测有点意思 不知道手机是啥系统,安卓机的IPV6不能设置静态,建议路由关闭V6的DNS。 monkeylab 发表于 2023-5-26 23:43
两个环境都有ipv6嘛?我看到这个问题第一反应是一个网络有ipv6另一个没有,然后pw没有处理ipv6dns就会出 ...
A网络主路由的网络有提供IPV6,软路由魔法上网没有IPV6网络。B网络应该也一样,没有测。A和B的软路由设置完全一样,IPV6也禁用了。 chainofhonor 发表于 2023-5-26 23:48
可以试试把AB的网络WAN口互换 看看问题是否会交换
A和B网络不在同一个地方 rx_78gp02a 发表于 2023-5-26 23:50
不知道手机是啥系统,安卓机的IPV6不能设置静态,建议路由关闭V6的DNS。
IOS和安卓都有一样的问题。软路由已经禁用IPV6。 可能是 A路由的 IPv6 DNS 抢答了,建议下个 WiFi 墨盒看一下 IPv6 DNS 是否是主路由 openwrt默认会劫持dns 直接把所有的设备都手动设置dns,或许是最简单的方法?https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif AB网的主路由分别是什么,有无条件对调测试,主路由有无配置策略路由和dns代理或者分流之类的配置? 油管上有个人讲过这个DNS污染问题的,你可以去搜下 农夫三拳有点甜 发表于 2023-5-27 09:38
楼主这个图片使用什么软件画出来的??
看样子像visio 看看除了IPv4 WAN外是不是还有个IPv6 WAN? 1.可以试试清空软路由的DNS缓存,可能是dnsmasq的缓存有点问题
2.PW的DNS分流出问题,域名分流认为是国内于是用了国内DNS,返回的IP是国外然后再走了代理
3.建议不要用PW做DNS分流,openwrt上搭建adguard home直接替换openwrt上的dnsmasq,然后新建一台centos虚拟机专门安装mosdns分流,openwrt上的adguard home上游DNS指定这台centos的DNS服务器,这样是最不会出问题的 一群人在扯IPV6.压根不是IPV6的事情。看下企业路由的静态路由表,是否出现了另一个路由的信息 本帖最后由 taotao0210 于 2023-5-27 22:27 编辑
你这个和DNS劫持没关系啊,DNS劫持是指你从DNS服务器拿到了错误的IP地址数据导致不能正常访问网站(相当于拿到了错误的门牌号); 我看你的意思是你发出的请求指向了不同的DNS服务器,那还是你自己设置的问题啊,如果你希望用外面的DNS解析那就手动设置下呗 有可能是DNS劫持,比方有的地方移动会劫持8.8.8.8,其实是自己内网建的8.8.8.8。可能软路由的DNS插件返回最快DNS,导致返回了假的国外DNS。可以用软件测下响应时间,如果响应速度奇快,可能是运营商内建了假DNS服务器。 不建议使用谷歌和CloudFlare的公共DNS,数大招风。可以用9.9.9.9。 本帖最后由 Ownab 于 2023-5-28 16:14 编辑
使用DoT/DoH DNS
校验证书、SNI
做DNS分流
如果还是会遇到 SNI RST , 就直接上DoQ吧 fyc858 发表于 2023-5-27 20:39
1.可以试试清空软路由的DNS缓存,可能是dnsmasq的缓存有点问题
2.PW的DNS分流出问题,域名分流认为是国内于 ...
一开始以为是软路由设置问题,所以将B网络的软路由系统复制了,放到A网络的虚拟机里,问题依旧,显示手机的IP是美国的,但是DNS是国内的,所以应该不是软路由设置问题?
请问MOSDNS有图形化界面吗?命令行我都需要看教程。。。 本帖最后由 fyc858 于 2023-5-28 20:59 编辑
JasonB 发表于 2023-5-28 20:15
一开始以为是软路由设置问题,所以将B网络的软路由系统复制了,放到A网络的虚拟机里,问题依旧,显示手机 ...
https://apad.pro/easymosdns/
一键搭建,如果你的VPS服务器做了SNI反代用来进行DNS解锁可能会失效,需要手动配置一下,另外这个项目以后可能会被和谐,尤其是分流名单和gfwlist名单,所以最好是虚拟机装完以后手动改一下分流名单合gfwlist的更新地址然后导出vmdk,自己去github搜索一下 本帖最后由 IceyHeart 于 2023-5-29 15:26 编辑
从一楼信息完全看不出A和B的差异点在哪里啊,如何判断?
从结果来看,B产生了DNS泄露,就是在代理连接国外网站前,用直连线路去查询了这个国外网站的IP。这个问题涉及到DNS分流和白名单黑名单的设定。几个建议:1、推荐使用PW2,DNS分流功能比PW完善,一般来说配合白名单就不会产生DNS泄露;2、另外使用dns分流软件,可以用楼上推荐的,也可以用dnsmasq-full,加上国内CDN加速列表 https://github.com/felixonmars/dnsmasq-china-list
页:
[1]
2