openwrt dns 处理流程求助 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
WizardLeo
4.03D
V2EX    OpenWrt

openwrt dns 处理流程求助

  •  
  •   WizardLeo 2023-07-11 17:37:56 +08:00 2877 次点击
    这是一个创建于 898 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,op 目前 openwrt 的 dns 是 adg 负责国内,passwall 内启用 chinadns-ng ,远程 dns 用 cf 的 dns 。
    adg 端口设置成 5553 ,重定向选择为“作为 dnsmasq 的上游服务器”。
    目前使用情况一切正常

    但是按理说 clinet 的 dns 请求应该先到 adg 处理,再到 dnsmasq 转发,最后到 passwall 分流。为什么 adg 内没有外网域名解析 dns 的记录?
    挺好奇 dns 在这一整套流程中是如何处理的。

    顺带还有一个问题,现在网页打开速度变快了(至少心理上是这样),但经常网页第一次打不开并显示是 dns 解析问题,刷新或者几秒钟后自己恢复,同时 adg 日志显示正常返回了解析结果。这是什么情况?
    10 条回复    2023-07-19 11:31:48 +08:00
    fish3125
        1
    fish3125  
       2023-07-11 17:53:34 +08:00 via iPhone
    因为默认端口是 53.
    mohumohu
        2
    mohumohu  
       2023-07-11 18:12:12 +08:00
    openwrt 的插件和防火墙规则会互相影响,所见未必是所得,单独把 DNS 分离出来跑最好。
    Bingchunmoli
        3
    Bingchunmoli  
       2023-07-11 19:40:18 +08:00 via Android   1
    @mohumohu 正解,不过作为 dnsmasq 的上游服务器指的是 53 端口一般是 dnsmasq 转发到 ad 的。然后看你 passwall 怎么配置哪个端口也是从 dnsmasq 转发吗那有可能规则互相覆盖的问题
    WizardLeo
        4
    WizardLeo  
    OP
       2023-07-11 20:55:09 +08:00
    这不应该是"作为 dnsmasq 的下游服务器"嘛?有点混乱,能不能请大佬稍微理一下整个逻辑,感谢!
    WizardLeo
        5
    WizardLeo  
    OP
       2023-07-11 20:57:02 +08:00
    iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
    iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
    这两条我没注释掉,不过我觉得 adg 的 5553 端口应该和这里的 53 端口关系不太大?请大佬细嗦
    neroxps
        6
    neroxps  
       2023-07-11 22:53:04 +08:00
    你要知道 openwrt 深度绑定 dnsmasq 所以 dnsmasq 基本上就是监听在 53 对外提供服务。然后一切的 dns 流量都是进到 dnsmasq 再分给其他 dns 上游应用。

    uci show dhcp 看看自己的配置。防火墙配置也看看。openwrt web 上的一个按钮,背后不知道干了啥。我个人喜欢看配置,看脚本,web 的那句话真心不知道他背后干了啥。
    Jacksu
        7
    Jacksu  
       2023-07-13 11:01:15 +08:00   1
    你的 adgh 设置了重定向选择为“作为 dnsmasq 的上游服务器”
    那么解析流程就是客户端请求-路由器 dnsmasq ( 53 端口)收到请求发给 adgh ,然后 adgh 再向它的上游请求。
    而 dnsmasq 请求的时候会收到 chinadns-ng 分流影响,导致部分请求并不会发给 adgh ,而是给到 chinadns-ng 配置的服务器处理了。
    Jacksu
        8
    Jacksu  
       2023-07-13 11:04:11 +08:00   1
    正确的做法就是直接把 adgh 监听 53 ,也就是替代 dnsmasq 处理局域网,然后它的上游可以配置为 dnsmasq 的端口(享受 chinadns-ng 的分流处理)
    但这样一来,你得处理下替代 dnsmasq 后导致的其他插件兼容问题。
    WizardLeo
        9
    WizardLeo  
    OP
       2023-07-13 14:03:45 +08:00
    @Jacksu 感谢大佬回复!这下听懂了,但多一个 dnsmasq 用来分流应该不会增加太多延迟吧?既然替换掉 dnsmasq 可能会出一系列插件兼容性问题,那就暂时先不换了。
    ZOZOZO
        10
    ZOZOZO  
       2023-07-19 11:31:48 +08:00
    楼上都说的很清楚,整个流程就是:
    访问设备发起 DNS UDP 请求( 53 端口)( 53 端口被 dnsmasq 在系统默认层面截胡) dnsmasq 准备解析(你设置了转发到 ADG )ADG 查询 DNS返回 IP 到访问设备。
    建议:系统默认 dns 服务器不要替换别的,不然你就别 freedom 外出了。相关插件基本都依赖 dnsmasq 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1023 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 713ms UTC 23:21 PVG 07:21 LAX 15:21 JFK 18:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86