AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1026315
Accepted
Collin Barrett
Collin Barrett
Asked: 2020-07-23 09:13:25 +0800 CST2020-07-23 09:13:25 +0800 CST 2020-07-23 09:13:25 +0800 CST

dnsmasq 缓存 NOERROR,答案为:0,权限:0

  • 772

我使用阻止某些域的公共 DNS 提供商 (nextdns.io)。这些被阻止的域在dig-ed 时会返回如下响应:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63541
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.com.               IN      A

;; Query time: 66 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Jul 22 12:03:25 CDT 2020
;; MSG SIZE  rcvd: 33

我在 DD-WRT 路由器上使用 dnsmasq 来处理来自本地网络上设备的所有 DNS 查询。有没有办法配置 dnsmasqNOERROR用 0 ANSWER/缓存这些结果AUTHORITY?

查看日志,我可以看出我的上游 DNS 提供商继续受到我网络上的客户端试图频繁访问某些被阻止的域的攻击。

我浏览了 dnsmasq 手册页,但我看到的缓存/ttl 标志似乎对这些类型的响应没有影响,因为它们不是负面的(例如NXDOMAIN)可缓存的,但根本没有答案。我知道我可以通过添加类似的记录来显式处理我的 dnsmasq 配置中的某些域address=/.example.com/::,但我更愿意在我的 dnsmasq 添加一个缓存/ttl,以便在尝试从上游查询答案之前缓存 300 秒之类的没有答案再次。

domain-name-system dnsmasq
  • 1 1 个回答
  • 619 Views

1 个回答

  • Voted
  1. Best Answer
    Håkan Lindqvist
    2020-07-23T10:17:22+08:002020-07-23T10:17:22+08:00

    NODATA缓存方面的主要问题是,这是某种形式的损坏响应(根据建议的意图,我认为损坏了)。

    DNS 缓存基于一些 TTL,对于肯定响应,RRSet TTL,对于否定响应,缓存 TTL 基于SOA该部分中的记录AUTHORITY(特别是使用的 TTL MIN(SOA TTL, SOA.MINIMUM))。

    无论是否定响应NXDOMAIN还是NODATA(NOERROR带空ANSWER),这些响应类型始终在该部分中具有相关SOA记录。AUTHORITY

    如果过滤 DNS 提供商也为过滤的域提供有效响应(即,正确的NXDOMAIN或NODATA响应),那当然会更好。

    解决这个问题并不一定很简单,因为这不是一种应该存在的响应类型,也不一定有一个选项来捕捉这种情况。

    但是,您正在使用dnsmasq,根据dnsmasq 手册,它有一个似乎可以处理这种情况的设置:

    --neg-ttl=<time>
    来自上游服务器的否定回复通常在 dnsmasq 用于缓存的 SOA 记录中包含生存时间信息。如果上游服务器的回复省略了此信息,dnsmasq 不会缓存回复。这个选项给出了一个默认的生存时间(以秒为单位),即使在没有 SOA 记录的情况下,dnsmasq 也会使用它来缓存否定回复。

    • 3

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve