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

关于 openwrt 里的 dnsmasq,所用的 DNS server 到底是哪个

  •  
  •   wanmyj 2022-11-09 10:45:44 +08:00 3446 次点击
    这是一个创建于 1069 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT ,openwrt 里使用 dnsmasq 作为内网的 DNS server 和 DHCP server ,但是我理解 dnsmasq 总要找一个外网的 DNS server 作为上游

    现在的问题是,怎么看 dnsmasq 到底把哪个外网的 DNS server 作为上游?

    /etc/ppp/resolv.conf 里确实可以看到电信 PPPOE 通告的两个 DNS ,116.x.x.x 180.x.x.x,但不确定 dnsmasq 是否使用这两个地址

    /etc/dnsmasq.conf 里面没有填写任何 server 的信息,也没有 resolv-file 的信息,只有一行 log-facility

    以上请教 V 友

    17 条回复    2022-11-18 00:17:30 +08:00
    hefish
        1
    hefish  
       2022-11-09 10:49:56 +08:00
    pppoe 的话,应该用的就是获取到的 dns 吧。
    wanmyj
        2
    wanmyj  
    OP
       2022-11-09 10:53:26 +08:00
    @hefish 我也是这么理解的,但是怎么看 dnsmasq 到底使用哪个 dns server 是我一直想问的
    Greenm
        3
    Greenm  
       2022-11-09 10:58:11 +08:00
    不确定的话,可以用 dig +trace example.com 来看查询的顺序和细节。
    ashong
        4
    ashong  
       2022-11-09 10:58:55 +08:00
    server="dns server"

    就是 dnsmasq 用的上游服务器

    如果没有设置就会用自动下发的 dns server
    hefish
        5
    hefish  
       2022-11-09 11:05:10 +08:00   1
    openwrt 的 dnsmasq.conf 好像是在 /tmp 里面。拨号完成后,会更新 dnsmasq.conf 的。
    ashong
        6
    ashong  
       2022-11-09 11:13:54 +08:00   1
    ps 看看 dnsmasql.conf 具体位置

    一般在 /var/etc/dnsmasq.conf.xxxx , 是根据 /etc/config/dhcp 生成的
    wanmyj
        7
    wanmyj  
    OP
       2022-11-09 11:15:07 +08:00
    root@OpenWrt:~# dig +trace qq.com

    ; <<>> DiG 9.18.1 <<>> +trace qq.com
    ;; global options: +cmd
    . 406137 IN NS d.root-servers.net.
    . 406137 IN NS a.root-servers.net.
    . 406137 IN NS c.root-servers.net.
    . 406137 IN NS k.root-servers.net.
    . 406137 IN NS g.root-servers.net.
    . 406137 IN NS e.root-servers.net.
    . 406137 IN NS i.root-servers.net.
    . 406137 IN NS f.root-servers.net.
    . 406137 IN NS j.root-servers.net.
    . 406137 IN NS m.root-servers.net.
    . 406137 IN NS h.root-servers.net.
    . 406137 IN NS b.root-servers.net.
    . 406137 IN NS l.root-servers.net.
    ;; Received 267 bytes from 127.0.0.1#53(127.0.0.1) in 7 ms

    com. 172800 IN NS e.gtld-servers.net.
    com. 172800 IN NS b.gtld-servers.net.
    com. 172800 IN NS j.gtld-servers.net.
    com. 172800 IN NS m.gtld-servers.net.
    com. 172800 IN NS i.gtld-servers.net.
    com. 172800 IN NS f.gtld-servers.net.
    com. 172800 IN NS a.gtld-servers.net.
    com. 172800 IN NS g.gtld-servers.net.
    com. 172800 IN NS h.gtld-servers.net.
    com. 172800 IN NS l.gtld-servers.net.
    com. 172800 IN NS k.gtld-servers.net.
    com. 172800 IN NS c.gtld-servers.net.
    com. 172800 IN NS d.gtld-servers.net.
    com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
    com. 86400 IN RRSIG DS 8 1 86400 20221121170000 20221108160000 18733 . ZgW2dKMBP6rqIgQSGN5uzFhNFZuIPUg7JrkXzgE9VKh68LOIuQlFgTTV xt3Sz4ytgru8JWcwCHgiqCTjbaN3WeHcrDVf0ItG0Az/01ofBWfoAu9S 1JFYcOrYkTUidn8R4vROkwzsTrZMirnB/4yrA4MD5thWVBr3IczcnFto DbADuw8Qy/RUEUfcu+LcQ4Ge+OzIP8eE1T6+nbMRqFZBSMFoBO1w0Mmk xNGyEclfFkymQ4CsYxnvYVstljpLqh1OhoAEwY6D+0cSh9dKNQ5LKhgq UXqfJ+zmdcvL+cVvMjfcB0Wj6/hmEkpEp1ISawlTjFUDgiKNZxiow02r JL4tsw==
    ;; Received 1166 bytes from 192.58.128.30#53(j.root-servers.net) in 207 ms

    qq.com. 172800 IN NS ns1.qq.com.
    qq.com. 172800 IN NS ns2.qq.com.
    qq.com. 172800 IN NS ns3.qq.com.
    qq.com. 172800 IN NS ns4.qq.com.
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q2D6NI4I7EQH8NA30NS61O48UL8G5 NS SOA RRSIG DNSKEY NSEC3PARAM
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20221115052452 20221108041452 53929 com. I6WchJ68DWfxK/dUcVdCPHXEP0j/JONgBdU1cV0eK1CLYVDNVYJes0sH WIgBHteIuwGPCQR3a9ZIbfhfMLcYmKYfVVko0XwMOVXRzsgT0VDTXzxt xXRDdCC/MJkFVVKOMtG3EWlqZADXJEEqfYhY1Jcz+BBdkDsbxRfppJLy MqjGtAoiZoGz5je4DuZaCYtCT4b8j+F1w9pUenEHBVxoUw==
    J976NFATTQBBQVJN3D1JJ5I441I469H9.com. 86400 IN NSEC3 1 1 0 - J976V9IM8597ALLH81MQKOSCKFOC08F5 NS DS RRSIG
    J976NFATTQBBQVJN3D1JJ5I441I469H9.com. 86400 IN RRSIG NSEC3 8 2 86400 20221115070531 20221108055531 53929 com. OwNX8t8CWSGut3yCdam0g5AEc2AfBt7CHYoW1roQNMs5rS/l6CK2fMMY Ph08FKbWc27ttFBQNnnI379oPCGlEn5ISte8Sc+/V3imR6V+wrc9WFkS mRKW6xbWujl1QuWSqy9UjpG0ny0k7IphifuckeBrKLMhSS9mGETk63u2 XKMcFMVDBt14J0V02i69lLsZSwg/YQWM3LgfduYBEm/KHA==
    ;; Received 952 bytes from 192.41.162.30#53(l.gtld-servers.net) in 143 ms

    qq.com. 600 IN A 61.129.7.47
    qq.com. 600 IN A 183.3.226.35
    qq.com. 600 IN A 203.205.254.157
    qq.com. 600 IN A 123.151.137.18
    qq.com. 86400 IN NS ns3.qq.com.
    qq.com. 86400 IN NS ns4.qq.com.
    qq.com. 86400 IN NS ns1.qq.com.
    qq.com. 86400 IN NS ns2.qq.com.
    ;; Received 171 bytes from 203.205.220.251#53(ns1.qq.com) in 359 ms


    @Greenm 这个结果看起来,应该是没有用 pppoe 下发的 DNS server ?
    @ashong dnsmasq.conf 里并没有 server="dns server" 这一行
    wanmyj
        8
    wanmyj  
    OP
       2022-11-09 11:20:35 +08:00
    @hefish @Greenm @ashong 多谢 V 友,找到了配置文件,在这里

    root@OpenWrt:~# find / -name dnsmasq.conf.*
    /tmp/etc/dnsmasq.conf.cfg01411c
    root@OpenWrt:~# cat /tmp/etc/dnsmasq.conf.cfg01411c
    # auto-generated config file from /etc/config/dhcp
    conf-file=/etc/dnsmasq.conf
    dhcp-authoritative
    domain-needed
    localise-queries
    read-ethers
    enable-ubus=dnsmasq
    expand-hosts
    bind-dynamic
    local-service
    filter-aaaa
    port=53
    domain=lan
    local=/lan/
    addn-hosts=/tmp/hosts
    dhcp-leasefile=/tmp/dhcp.leases
    resolv-file=/tmp/resolv.conf.d/resolv.conf.auto
    stop-dns-rebind
    rebind-localhost-ok
    dhcp-broadcast=tag:needs-broadcast
    conf-dir=/tmp/dnsmasq.d
    user=dnsmasq
    group=dnsmasq


    dhcp-ignore-names=tag:dhcp_bogus_hostname
    conf-file=/usr/share/dnsmasq/dhcpbogushostname.conf

    srv-host=_vlmcs._tcp,OpenWrt,1688,0,100

    bogus-priv
    conf-file=/usr/share/dnsmasq/rfc6761.conf
    dhcp-range=set:lan,192.168.5.100,192.168.5.249,255.255.255.0,12h
    no-dhcp-interface=pppoe-wan


    root@OpenWrt:~# cat /tmp/resolv.conf.d/resolv.conf.auto
    # Interface wan_6
    nameserver 240e:58:--------------------------
    nameserver 240e:58:----------------
    # Interface wan
    nameserver 116.228.111.118
    nameserver 180.168.255.18
    wanmyj
        9
    wanmyj  
    OP
       2022-11-09 11:24:16 +08:00
    但还是奇怪为什么 dig +trace example.com 会直接去根 DNSserver 请求,而不是去 116.x.x.x 这个 ISP DNS server 请求?
    hefish
        10
    hefish  
       2022-11-09 11:30:09 +08:00
    指定了 resolv-file=/tmp/resolv.conf.d/resolv.conf.auto 这个就应该可以了吧。
    julyclyde
        11
    julyclyde  
       2022-11-09 16:09:44 +08:00
    @Greenm dig+trace 是客户端的行为,不是 dns 服务器的行为
    julyclyde
        12
    julyclyde  
       2022-11-09 16:11:52 +08:00
    @wanmyj dig +trace 先向 127 查询了根,然后才去根查询
    wanmyj
        13
    wanmyj  
    OP
       2022-11-09 17:16:08 +08:00
    @julyclyde thanks for clarification. 是的,我后来也搜了下 dig +trace 的用法,它的作用就从根开始查。而不是我预想的先查 dnsmasq ,dnsmasq 如果没缓存则 dnsmasq 去查 ISP DNS ,如果没有再查根。
    baobao1270
        14
    baobao1270  
       2022-11-10 06:32:12 +08:00
    使用的是 /etc/resolv.conf 的服务器,默认是 PPPoE 下发的服务器,如果你自己在 LAN 填了 DNS ,会都使用。
    但是这个 dnsmasq 不是必须的,可以去 DHCP 设置里把 DNS 地址改成别的。比如我就改了 1.1.1.1
    wonderblank
        15
    wonderblank  
       2022-11-15 14:02:56 +08:00
    我的是强制的,直接重定向到我的 DNS 服务器。

    ```
    root@main:~# nft list ruleset | grep DNS
    iifname "br-lan" meta l4proto { tcp, udp } th dport 53 counter packets 9765 bytes 686829 ip saddr != 10.0.10.53 dnat ip to 10.0.10.53 comment "DNS"
    oifname "br-lan" meta l4proto { tcp, udp } th dport 53 ip daddr 10.0.10.53 counter packets 8793 bytes 600911 snat ip to 10.0.10.1 comment "DNS"
    ```
    wanmyj
        16
    wanmyj  
    OP
       2022-11-17 23:52:50 +08:00
    给后来人参考,我用 tcpdump 抓 DNS 包 wan 口筛选 53 端口始终是没有报文,最后发现是因为二层用了 PPPOE 的协议

    如果用 PPPOE 拨号,tcpdump 的抓包要注意修改一下加 pppoes 字段,参考

    tcpdump -n -i eth1 -c 100 pppoes and port 53
    slowman
        17
    slowman  
       2022-11-18 00:17:30 +08:00
    @wanmyj 不是啊,你直接 -i pppoe-wan 呐。懵逼
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2642 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:21 PVG 23:21 LAX 08:21 JFK 11:21
    Do have faith in what you're doing.
    ubao 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