Smallthing

Results 57 comments of Smallthing

> 关于你说的 `dnsmasq会递归解析上游返回的CNAME记录`,我认为也不成立。 > > 这一点可以通过dnsmasq的log来验证(可以看前面的dnsmasq日志输出)。 > > 而且以我的认知来理解,我不认为dns中间件会做这种处理(也不需要);因为dnsmasq/chinadns-ng使用的上游通常都是**递归DNS**(也就是公共dns服务器),若**权威服务器**(拥有此域名的服务器)返回CNAME记录,则**递归DNS**会进行递归解析操作,拿到最终IP后,才会作为单个response,将其交给下游。这里的下游,也就是dnsmasq/chinadns-ng。因此并不需要这些**dnsmasq/chinadns-ng**来执行递归操作。 > > 举个最简单的例子,dig baidu.com > > ``` > $ dig www.baidu.com > > ; DiG 9.18.12 www.baidu.com > ;; global options:...

将dnsmasq的本地缓存时间改为10秒后测试多次,终于得到稳定复现的方法。 如果是我dnsmasq的配置问题(正在寻找解决方案),不知道有没有网友可以提供正确的配置。 **POWERSHELL:** ``` PS C:\Users\XXXXXX> nslookup www.halowaypoint.com 10.1.1.1 服务器: RT-AC86U-XXXX Address: 10.1.1.1 非权威应答: 名称: part-0018.t-0009.fdv2-t-msedge.net Addresses: 13.107.238.46 13.107.237.46 Aliases: www.halowaypoint.com waypoint-web-prod-gcb2d6gegzardhg0.z01.azurefd.net star-azurefd-prod.trafficmanager.net shed.dual-low.part-0018.t-0009.fdv2-t-msedge.net PS C:\Users\XXXXXX> nslookup shed.dual-low.part-0018.t-0009.fdv2-t-msedge.net 服务器: RT-AC86U-XXXX...

简单的说,微软的某些特殊应用可能会记录最终的那个cname 第一次:访问该域名,CHINADNS-NG过滤掉了AAAA记录。DNSMASQ内部也一样没有获得AAAA。 第二次:当app内部直接向dnsmasq请求最后一个cname(我使用nslookup模拟)时,因为这个cname没有在gfwlist里面,没有发往trustdns,而是正常解析了,于是chinadns-ng里面,原始域名是没有AAAA的,而树的末端最终CNAME有AAAA。于是(不知道为啥,可能是我配置问题?)dnsmasq会使用这个cname的缓存内的AAAA直接覆盖掉上一个空白的(被过滤的)AAAA记录。 第三次:之后直接解析www.halowaypoint.com会直接得到AAAA记录。 幻想:如果可以在chinadns-ng这一头彻底解决这个问题就完美了,可能会增加复杂度,如,在使用--no-ipv6=gt等参数时,gfwlist递归出来的cname加入临时gfwlist,确保结果去除AAAA的完美。或者简单粗暴的去掉cname直接返回一个a记录(不知道会不会导致软件兼容性问题?)

[https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2017q1/011194.html](url) [https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2017q1/011068.html](url) 粗看了一些 应该是dnsmasq的“行为” 在不能修改dnsmasq的情况下,是否可以增加一个选项以便在chinadns-ng里面处理掉特定名单下面递归的cname(动态加入名单)呢,非常感谢!

> 其实有个看起来不太优雅但确实有效的办法,那就是将这些CNAME加入gfwlist.txt,无非就是花些时间收集这些域名(甚至到时候你可以维护一个这样的域名列表,方便大家使用,哈哈)。因为域名这东西,我想应该也不会经常改动。 > > > 应该只需要收集到二级域名(最多也就3级感觉)。如:`fdv2-t-msedge.net`、`trafficmanager.net`、`azurefd.net` 我现在就是这么做的,但其实也有几个问题,一个是这些 cname 里面其实有国内 cdn,另一个 fdv2-t 这种还真他妈的会变。。。感觉是 azure 云的负载均衡器 我想了又想还是觉得最简单粗暴的脏脏的选项就够用,即增加一个选项,修改 respone 中的 cname 类型为 a 。这样最终应用就不会知道这是个 cname,也就不会向 dnsmasq 请求 cname,即使请求了,他和原始域名的 a 记录也是两个东西,没有对应关系,不会被覆盖。

> 哦我知道了,a请求的时候带了cname回去 是的 粗暴的解法就是gfwlist的域名,no-ipv6的时候 去掉这个cname

pbs.twimg.com -> dualstack.twimg.twitter.map.fastly.net auth0.openai.com -> openai-cd-x0fecetbbtd3bmdw.edge.tenants.openai.auth0app.com 也出现了这种情况,感觉会越来越多

实际我使用-d chn 只是不需要ipset想要完全跳过这个流程而已 ( 有自己的一套分流 ) 如果可以有更好的解决方案都好. 甚至-d可以是纯A 纯AAAA 默认A+AAAA

> > 实际我使用-d chn 只是不需要ipset想要完全跳过这个流程而已 ( 有自己的一套分流 ) 如果可以有更好的解决方案都好. > > 嗯,我理解使用 -d 的目的。所以可以看看上面的“取巧办法”,应该可以解决问题(同样不会查询ipset,因为加载chnlist.txt仅仅为了no-ipv6过滤tag:none域名) 感觉这个会影响一些质量还不错的教育网论文网站之类的 ipv6直连(两个列表两不沾的那种)

#119 有望进入2.0吗,感谢 不是催更,就问问