V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
eason1874
V2EX  ›  全球工单系统

DNSPod DoH 延迟大,偶尔解析出错,包括腾讯系域名

  •  
  •   eason1874 · 58 天前 · 1682 次点击
    这是一个创建于 58 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不久前重新配置了路由,增加了 dnscrypt-proxy 负责局域网内设备解析,因为对 dnspod 印象比较好所以用了这家 doh

    然后手机 app 时不时出现图片空白(没加载),需要刷新才能加载成功,排查后发现居然是 dnspod doh 的问题

    看解析日志,dnspod doh 响应在 20ms 以内的不到 10%,大部分是 40ms 到 100ms ,偶尔会超过 1000ms 和失败

    更换到 alidns doh ,大部分解析时间能保持在 20ms 以内,手机 app 图片空白现象消失

    我想着解析腾讯系域名用 dnspod 应该会比 alidns 要准确,更换 alidns 时专门配置了例外,让 dnspod 解析腾讯系域名,结果微信服务出现部分图片空白,然后我取消掉例外配置让腾讯系域名也由 alidns 解析反而正常了

    最初使用的是域名地址 https://doh.pub/dns-query ,发现异常后在 dnspod 官网找到 ip 地址更换测试,包括 https://1.12.12.12/dns-queryhttps://120.53.53.53/dns-query ,都是一样慢和小概率出错

    使用的网络是广东移动宽带

    @naizhao

    23 条回复    2022-06-20 15:11:41 +08:00
    johnjiang85
        1
    johnjiang85  
       58 天前
    doh.pub 目前国内除了东北之外,其他地区已经都是指向 120.53.53.53 和 1.12.12.12 ,是同一套。
    dot.pub 国内已经全量切到 120.53.53.53 和 1.12.12.12 。
    已经反馈相关同学,后面看下

    目前 dns.pub 还指向老的公测系统,可以使用 https://dns.pub/dns-query 来对比下。但是后期 dns.pub 会仅作为官网域名使用,doh 和 dot 等功能后期会下线。
    Buges
        2
    Buges  
       58 天前 via Android
    境内 doh 的意义何在?既不能解决污染问题,也不能解决隐私问题,还会劣化运营商提供的就近接入。
    Kobayashi
        3
    Kobayashi  
       58 天前 via Android
    @johnjiang85 怪不得我用 dot.pub 解析 B 站 CDN 返回了东北电信的地址……
    Lightbright
        4
    Lightbright  
       58 天前 via Android
    @Buges 请问如何解决运营商干扰导致的订阅更新失败问题,如何解决部分地区监视全 ip 段 53 端口劫持跳转反诈问题。阿里的 dns 目前虽然有 gfw 的污染,但也仅限于此,没有各地运营商别的骚操作
    eason1874
        5
    eason1874  
    OP
       58 天前
    @johnjiang85 #1 试用了一会儿 dns.pub 这个地址,一样慢,比 alidns 慢了得有两三倍

    @Buges #2 doh 能解决地方运营商自己搞的污染,虽然现在很少了,但还是想尽量避免得到他们的关心
    totoro625
        6
    totoro625  
       58 天前
    我配置的是 adguardhome ,国内大部分走的用的 dnspod 的专业版 https://doh-userid.doh.pub/dns-query 有的时候会遇到 HSTS 的 error
    其他的
    dnspod 解析腾讯系
    alidns 解析阿里系
    cloudflare 、nextdns 解析国外
    Buges
        7
    Buges  
       58 天前 via Android
    @Lightbright 订阅当然是走代理更新,只有 cn 网站直连也没见过反炸跳转。
    除非你错误的配置 dns ,比如使用 clash 官方推荐的配置或机场托管的配置为了分流把所有域名全部发送给境内解析服务器(暴露你访问的所有境外网站),或者用境内解析服务器解析订阅链接域名 /节点本身域名(暴露你在使用代理的事实)(当然订阅走代理,订阅链接域名和节点域名全部走代理解析也不能隐瞒使用代理的事实,但起码 dns 日志查不到)
    另外多说一句,防止污染本身没有任何意义。污染只是 block ,就算解决 block 但解决不了背后的 log ,而后者是更严肃的问题。你根本不应该发出任何会可能导致 block 的行为,更不应该使用 chinadns 之类的工具“解决”这种 block 。
    如果你担心某个请求会被(无论现在还是未来,无论运营商还是 doh )污染,那你根本就不该发出这个请求,因为 log 始终存在。
    别看今天闹得欢,小心今后拉清单。
    billytom
        8
    billytom  
       58 天前 via iPhone
    国内 DOH 用 dns.alidns.com 是常识,EDNS 的支持很完善,然后稳定性和各地域的 cdn 都做得不错
    longxk
        9
    longxk  
       58 天前
    @Buges 比如在公司内网这种场景,不使用加密 DNS 服务器的话,岂不是很容易被发现在摸鱼?
    Lightbright
        10
    Lightbright  
       58 天前
    @Buges 额,据我所知,某些时候,需要不得不使用本地网络更新订阅地址,比如某些时候节点全挂了。。

    关于跳转反诈的问题,额,我记得 v 站之前就有好几个例子。

    关于你说的有 log 问题,clash 这个代理软件默认就是有本地 dns 查询,包括节点使用的域名的 dns 解析,按照目前这个软件的使用量,看起来也没啥问题。

    如果非要解决这个问题,不如在本地搞一个 dns 服务器,内置 gfw list ,然后直接在本地过滤掉所有敏感域名,让代理软件自动 fallback 。。

    总的来看,上 doh 可能不够,但是不上肯定不行,哈哈
    Buges
        11
    Buges  
       58 天前 via Android
    @Lightbright 境内网站(已备案)没有跳反炸的吧,跳的都是没墙的境外网站。
    初始化 bootstrap 的时候确实需要临时解析一下,最好能通过有 ip 的代理 /尚未被墙的境外 doh/dot 。但 bootstrap 以后就不应该再直连获取和解析节点了,多搞几家备用。
    log 问题还是那句话:别看今天闹得欢,小心今后拉清单。现在是给你返回个污染的结果,谁知道以后会不会变成照着 log 挨个请喝茶呢。
    gfwlist 不可靠,因为总有新的网站被墙,访问这些尚未被墙的网站也是一个 bad signal 。

    总的来说就是境内解析器只用来解析境内网站,运营商 dns 的优化是最好的。bootstrap 可以专门配置一些 doh 。
    Buges
        12
    Buges  
       58 天前 via Android
    @longxk 这确实是一个适合的场景,不过如果你司部署了 dpi ,照样也白搭,ech 还遥遥无期呢。
    popzuk
        13
    popzuk  
       58 天前 via iPhone
    啥时候 odoh 能普及呢
    popzuk
        14
    popzuk  
       58 天前 via iPhone
    log 的问题,有没有代理软件可以将 doh 代理,设置 edns 获得就近 IP 呢?
    popzuk
        15
    popzuk  
       58 天前 via iPhone
    等 odoh 和 ech 普及之后,运营商就只能监控到 IP 地址而已了吧。
    Love4Taylor
        16
    Love4Taylor  
       58 天前 via iPhone
    我也会这样,也是移动。之前还遇到过 dnspod 动不动 502 的日志。
    longxk
        17
    longxk  
       58 天前
    @Buges 即使有 DPI 也没法知道我访问了什么网站吧
    Buges
        18
    Buges  
       58 天前 via Android
    @longxk 明文 SNI 啊。墙的 dns 污染和 SNI 阻断,对应的就是 dns 记录和 DPI 。
    johnjiang85
        19
    johnjiang85  
       57 天前
    @eason1874
    两个问题

    #1 部分解析失败需要重试的问题,反馈是公测环境切换到正式环境的 1.12.12.12 和 120.53.53.53 之后,正式环境高负载导致的,上周四、五有部分调整来优化,但是后期还是需要扩容来解决。

    #2 解析慢于 ali 的 doh 的原因主要是阿里的公共 DNS 使用了乐观 DNS 缓存,即使缓存中记录 TTL 过期也会返回过期的记录,然后再去重新递归请求。
    DNSPod 的公共 DNS 未使用乐观 DNS 缓存策略,如果请求时缓存已过期不会返回给客户端,需要重新递归进行返回;如果请求时缓存记录的 TTL 已经过去了 75%,会将缓存中的记录返回给客户端,同时对该域名进行递归提前预取。
    两种策略的优略很明显,乐观 DNS 响应快,但是经常出现解析记录迟迟无法更新的问题,可以见本社区的多个相关帖子反馈。
    非乐观 DNS 则相反,两种策略如何选择就是见仁见智,看实际需求选择。
    乐观 DNS 缓存策略内部讨论多次,目前暂时没有支持,后续是否支持及时间不确定。
    johnjiang85
        20
    johnjiang85  
       57 天前
    虽然乐观 DNS 解析确实快,但是相比解析错误,我们认为初次解析延迟个几十 ms 是更可以接受的
    johnjiang85
        21
    johnjiang85  
       57 天前
    后期也许会考虑其他的折衷策略,来优化解析速度。

    目前的话同时使用 DNSPod 的权威尊享版解析套餐,可以开启解析记录共享到专业版的公共 DNS (包括专业版 DoH/DoT/HttpDNS )来省略递归过程,请求直接返回。
    eason1874
        22
    eason1874  
    OP
       57 天前
    @johnjiang85 我也倾向结果准确性比更短的延迟要重要,我优先选择 dnspod 而不是 alidns 就是因为以前用 alidns 出现过百度个别子站解析出错,用 dnspod 就没问题,所以一直对 dnspod 印象比 alidns 好

    如果说延迟大不是 bug ,而是为了准确性做的让步,我觉得可以接受。用了 dnspod doh 两个月,感觉这点延迟差距对日常使用没明显影响,主要问题是偶尔的解析失败

    很多 app 图片(比如 B 站视频封面、微博国际版图片)加载没 fallback ,域名解析失败就空白无图,得重新进入或者点击查看图片重新加载才能看到,用起来太难受。希望尽快扩容吧
    johnjiang85
        23
    johnjiang85  
       57 天前
    @eason1874 好的,可以临时先使用老版本,dns.pub ,短期内还不会下线,解析准确度上是要高于正式的版本的,容量也是足够的,因为之前的大部分流量已经切到 1.12.12.12 和 120.53.53.53 上了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3878 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:05 · PVG 18:05 · LAX 03:05 · JFK 06:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.